Files
TheRock/rocm-systems/projects/rocshmem/CHANGELOG.md
T
derek.holloway 7502bf64a4
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
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

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_align
    • rocshmem_calloc
    • rocshmem_buffer_unregister_all
    • rocshmem_buffer_register/unregister for GDA backend
    • rocshmem_buffer_register_symmetric for IPC and GDA backends
    • rocshmem_buffer_unregister_symmetric for IPC and GDA backends
    • rocshmem_reduce_on_stream
    • rocshmem_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_LEVEL from WARN to ERROR
  • 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_stream
    • rocshmem_sync_all_on_stream
    • rocshmem_TYPENAME_alltoall_wg
    • rocshmem_TYPENAME_alltoallv_wg
    • rocshmem_team_my_pe
    • rocshmem_team_n_pes
    • rocshmem_barrier
    • rocshmem_barrier_wave
    • rocshmem_barrier_wg
    • rocshmem_buffer_register
    • rocshmem_buffer_unregister
    • rocshmem_info_get_version
    • rocshmem_info_get_name
    • rocshmem_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_info output
  • Added ROCSHMEM_TEAM_WORLD for device code
  • Added ROCSHMEM_TEAM_SHARED predefined team for PEs sharing a common memory domain (same node)
  • Added new environment variables:
    • OVERRIDE_NIC_FIRMWARE_CHECK
    • ROCSHMEM_GDA_NUM_QPS_PER_PE_DEFAULT_CTX
    • ROCSHMEM_GDA_NUM_QPS_PER_PE_USR_CTX
    • ROCSHMEM_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_UNIQUEID instead)

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_ctx
    • rocshmem_ctx_pe_quiet
    • rocshmem_pe_quiet

Changed

  • The following APIs have been deprecated:
    • rocshmem_wg_init
    • rocshmem_wg_finalize
    • rocshmem_wg_init_thread
  • rocshmem_ptr can 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_IPC was renamed to ROCSHMEM_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_barrier
    • rocshmem_ctx_barrier_wave
    • rocshmem_ctx_barrier_wg
    • rocshmem_barrier_all
    • rocshmem_barrier_all_wave
    • rocshmem_barrier_all_wg
    • rocshmem_ctx_sync
    • rocshmem_ctx_sync_wave
    • rocshmem_ctx_sync_wg
    • rocshmem_sync_all
    • rocshmem_sync_all_wave
    • rocshmem_sync_all_wg
    • rocshmem_init_attr
    • rocshmem_get_uniqueid
    • rocshmem_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 _wg suffix 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_pe and rocshmem_ctx_n_pes
  • Resolved multi-team errors by providing team specific buffers in rocshmem_ctx_wg_team_sync
  • Resolved missing implementation of rocshmem_g for IPC conduit