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

159 lines
5.8 KiB
Markdown

# 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