CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
5.8 KiB
5.8 KiB
Changelog for rocSHMEM
Unreleased - rocSHMEM 3.6.0 for ROCm x.x.x
rocSHMEM 3.5.0 for ROCm 7.14
Added
- Added new APIs:
rocshmem_alignrocshmem_callocrocshmem_buffer_unregister_allrocshmem_buffer_register/unregisterfor GDA backendrocshmem_buffer_register_symmetricfor IPC and GDA backendsrocshmem_buffer_unregister_symmetricfor IPC and GDA backendsrocshmem_reduce_on_streamrocshmem_team_split_2D
- Added tile-granular RMA operations for the IPC backend
- Added host-initiated RMA operations in the IPC backend for the non-MPI bootstrapping path: put, get, fence, quiet, arithmetic AMOs, and P2P sync ops
- Added team creation using non-contiguous parent teams in the IPC backend
- Added Python bindings of memory-management APIs
- Added Python bindings coverage for team APIs
- Added support for GPU initiated operations using the SDMA engines
- Added ASAN build support
Changed
- Changed default
ROCSHMEM_DEBUG_LEVELfromWARNtoERROR - Performance optimizations:
- Separated put/get memcpy primitives to apply correct cache coherence semantics and fences
- Use constmem for backend variables and provider muxing
- Updated O(1) IPC availability check using pattern detection
rocSHMEM 3.4.0 for ROCm 7.13
Added
- Added new APIs:
rocshmem_quiet_on_streamrocshmem_sync_all_on_streamrocshmem_TYPENAME_alltoall_wgrocshmem_TYPENAME_alltoallv_wgrocshmem_team_my_perocshmem_team_n_pesrocshmem_barrierrocshmem_barrier_waverocshmem_barrier_wgrocshmem_buffer_registerrocshmem_buffer_unregisterrocshmem_info_get_versionrocshmem_info_get_namerocshmem_vendor_get_version_info
- Added library constants:
ROCSHMEM_MAJOR_VERSION,ROCSHMEM_MINOR_VERSION,ROCSHMEM_MAX_NAME_LEN,ROCSHMEM_VENDOR_STRING,ROCSHMEM_VERSION,ROCSHMEM_VENDOR_MAJOR_VERSION,ROCSHMEM_VENDOR_MINOR_VERSION,ROCSHMEM_VENDOR_PATCH_VERSION - Added vendor string and backend metadata to the
rocshmem_infooutput - Added
ROCSHMEM_TEAM_WORLDfor device code - Added
ROCSHMEM_TEAM_SHAREDpredefined team for PEs sharing a common memory domain (same node) - Added new environment variables:
OVERRIDE_NIC_FIRMWARE_CHECKROCSHMEM_GDA_NUM_QPS_PER_PE_DEFAULT_CTXROCSHMEM_GDA_NUM_QPS_PER_PE_USR_CTXROCSHMEM_MAX_SYMM_REGIONS
- Added VMM POSIX memory allocator (
USE_HEAP_DEVICE_VMM_POSIX)- Uses HIP Virtual Memory Management (VMM) APIs for fine-grained memory control
- Requires ROCm 7.0+ and Linux kernel 5.6+
- Not compatible with MPI-based initialization (use
ROCSHMEM_INIT_WITH_UNIQUEIDinstead)
Changed
- Use CQ collapsing for the Mellanox MLX5 GDA conduit
rocSHMEM 3.2.1 for ROCm 7.2.1
Added
- Warn if large BAR is not available
Resolved Issues
- GDA Backend will disable itself when no GDA compatible NICs are available rather than crashing
- Fix memory coherency issues on gfx1201
Known issues
- Only 64bit rocSHMEM atomic APIs are implemented for the GDA conduit
rocSHMEM 3.2.0 for ROCm 7.2.0
Added
- Added the GDA conduit for AMD Pensando IONIC
Changed
- Dependency libraries are loaded dynamically
- The following APIs now have an implementation for the GDA conduit
rocshmem_p- fetching atomics
rochsmem_<TYPE>_fetch_<op> - collective APIs
- The following APIs now have an implementation for the IPC conduit
rocshmem_<TYPE>_atomic_{and,or,xor,swap}rocshmem_<TYPE>_atomic_fetch_{and,or,xor,swap}
Known issues
- Only 64bit rocSHMEM atomic APIs are implemented for the GDA conduit
rocSHMEM 3.1.0 for ROCm 7.1.1
Added
- Allow for IPC, RO, GDA backends to be selected at runtime
- Added the GDA conduit for different NIC vendors
- Broadcom BNXT_RE (Thor 2)
- Mellanox MLX5 (IB and RoCE ConnectX-7)
- Added new APIs:
rocshmem_get_device_ctxrocshmem_ctx_pe_quietrocshmem_pe_quiet
Changed
- The following APIs have been deprecated:
rocshmem_wg_initrocshmem_wg_finalizerocshmem_wg_init_thread
rocshmem_ptrcan now return non-null pointer to a shared memory region when the IPC transport is available to reach that region. Previously, it would return a null pointer.ROCSHMEM_RO_DISABLE_IPCwas renamed toROCSHMEM_DISABLE_MIXED_IPC. This environment variable was not documented for prior releases. It is now documented to inform users who were using this undocumented feature.
Removed
- rocSHMEM no-longer requires rocPRIM and rocThrust as dependencies
- Removed MPI compile-time dependency
Known issues
- Only a subset of rocSHMEM APIs are implemented for the GDA conduit
rocSHMEM 3.0.0 for ROCm 7.0.0
Added
- Added the Reverse Offload conduit
- Added new APIs:
rocshmem_ctx_barrierrocshmem_ctx_barrier_waverocshmem_ctx_barrier_wgrocshmem_barrier_allrocshmem_barrier_all_waverocshmem_barrier_all_wgrocshmem_ctx_syncrocshmem_ctx_sync_waverocshmem_ctx_sync_wgrocshmem_sync_allrocshmem_sync_all_waverocshmem_sync_all_wgrocshmem_init_attrrocshmem_get_uniqueidrocshmem_set_attr_uniqueid_args
- Added dlmalloc based allocator
- Added XNACK support
- Added support for initialization with MPI communicators other than
MPI_COMM_WORLD
Changed
- Changed collective APIs to use
_wgsuffix rather than_wg_infix
Resolved Issues
- Resolved segfault in
rocshmem_wg_ctx_create, now provides nullptr if ctx cannot be created
rocSHMEM 2.0.1 for ROCm 6.4.2
Resolved Issues
- Resolved incorrect output for
rocshmem_ctx_my_peandrocshmem_ctx_n_pes - Resolved multi-team errors by providing team specific buffers in
rocshmem_ctx_wg_team_sync - Resolved missing implementation of
rocshmem_gfor IPC conduit