Skip to content

[NVSHMEM] Added migration support for 65 unique nvSHMEM APIs#2791

Merged
zhimingwang36 merged 1 commit into
oneapi-src:SYCLomaticfrom
TejaX-Alaghari:nvSHMEM
Jul 7, 2025
Merged

[NVSHMEM] Added migration support for 65 unique nvSHMEM APIs#2791
zhimingwang36 merged 1 commit into
oneapi-src:SYCLomaticfrom
TejaX-Alaghari:nvSHMEM

Conversation

@TejaX-Alaghari

Copy link
Copy Markdown
Contributor

This PR adds migration support for below new nvSHMEM APIs:

RMA

  • nvshmem_TYPE_put

  • nvshmem_TYPE_put_on_stream

  • nvshmem_TYPE_put_block

  • nvshmem_TYPE_put_warp

  • nvshmem_putSIZE

  • nvshmem_putSIZE_on_stream

  • nvshmem_putSIZE_block

  • nvshmem_putSIZE_warp

  • nvshmem_putmem

  • nvshmem_putmem_on_stream

  • nvshmem_putmem_block

  • nvshmem_putmem_warp

  • nvshmem_TYPE_p

  • nvshmem_TYPE_iput

  • nvshmem_TYPE_iput_on_stream

  • nvshmem_TYPE_iput_block

  • nvshmem_TYPE_iput_warp

  • nvshmem_iputSIZE

  • nvshmem_iputSIZE_on_stream

  • nvshmem_iputSIZE_block

  • nvshmem_iputSIZE_warp

  • nvshmem_TYPE_get

  • nvshmem_TYPE_get_on_stream

  • nvshmem_TYPE_get_block

  • nvshmem_TYPE_get_warp

  • nvshmem_getSIZE

  • nvshmem_getSIZE_block

  • nvshmem_getmem

  • nvshmem_getmem_block

  • nvshmem_TYPE_g

  • nvshmem_TYPE_iget

  • nvshmem_TYPE_iget_block

  • nvshmem_igetSIZE

  • nvshmem_igetSIZE_block

NBI RMA

  • nvshmem_TYPENAME_put_nbi

  • nvshmemx_TYPENAME_put_nbi_on_stream

  • nvshmemx_TYPENAME_put_nbi_block

  • nvshmemx_TYPENAME_put_nbi_warp

  • nvshmem_putSIZE_nbi

  • nvshmemx_putSIZE_nbi_on_stream

  • nvshmemx_putSIZE_nbi_block

  • nvshmemx_putSIZE_nbi_warp

  • nvshmem_putmem_nbi

  • nvshmemx_putmem_nbi_on_stream

  • nvshmemx_putmem_nbi_block

  • nvshmemx_putmem_nbi_warp

  • nvshmem_TYPENAME_get_nbi

  • nvshmemx_TYPENAME_get_nbi_on_stream

  • nvshmemx_TYPENAME_get_nbi_block

  • nvshmemx_TYPENAME_get_nbi_warp

  • nvshmem_getSIZE_nbi

  • nvshmemx_getSIZE_nbi_on_stream

  • nvshmemx_getSIZE_nbi_block

  • nvshmemx_getSIZE_nbi_warp

  • nvshmem_getmem_nbi

  • nvshmemx_getmem_nbi_on_stream

  • nvshmemx_getmem_nbi_block

  • nvshmemx_getmem_nbi_warp

Memory Ordering

  • nvshmem_fence
  • nvshmem_quiet
  • nvshmemx_quiet_on_stream

Signaling Operations

  • nvshmemi_amo_t
  • nvshmemi_cmp_type
  • nvshmem_signal_wait_until
  • nvshmem_putmem_signal_nbi
  • nvshmemx_signal_op

Collective Operations

  • nvshmemx_barrier_all_on_stream

@TejaX-Alaghari TejaX-Alaghari requested a review from a team as a code owner April 16, 2025 12:52
@TejaX-Alaghari TejaX-Alaghari changed the title [NVSHMEM] Added migration support for 500+ new nvSHMEM APIs [NVSHMEM] Added migration support for 65 unique nvSHMEM APIs Apr 16, 2025
Comment thread clang/lib/DPCT/RulesSHMEM/NVSHMEMAPIMigration.cpp Outdated
Comment thread clang/lib/DPCT/RulesSHMEM/NVSHMEMAPIMigration.cpp Outdated
Comment thread clang/runtime/dpct-rt/include/dpct/shmem_utils.hpp Outdated
Comment thread clang/runtime/dpct-rt/include/dpct/shmem_utils.hpp Outdated
Comment thread clang/runtime/dpct-rt/include/dpct/shmem_utils.hpp Outdated
Comment thread clang/runtime/dpct-rt/include/dpct/shmem_utils.hpp Outdated
Comment thread clang/runtime/dpct-rt/include/dpct/shmem_utils.hpp Outdated

namespace dpct::shmem {

/// Setup Operations

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
/// Setup Operations
/// Setup Operations

what end user can get from this ?

@TejaX-Alaghari TejaX-Alaghari Apr 29, 2025

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added these comments to serve as logical groupings of APIs for helper functions as there are many nvSHMEM APIs

As there are not many helper functions now, removed them

//===----------------------------------------------------------------------===//

#ifndef __DPCT_SHMEM_UTILS_HPP__
#define __DPCT_SHMEM_UTILS_HPP__

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no header file dependency for this header?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nvshmem header file is migrated to ishmem, so no new dependency is added in this utils header file

@tomflinda tomflinda left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@zhimingwang36 zhimingwang36 merged commit 3c116c3 into oneapi-src:SYCLomatic Jul 7, 2025
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants