Commit Graph

53 Commits

Author SHA1 Message Date
Yiltan ea2df2aa26 Added sphinx dependencies (#84)
[ROCm/rocshmem commit: 5ee0c3407e]
2025-04-15 11:28:16 -04:00
Edgar Gabriel 5b22ddd1ff add new flag to build instructions (#78)
This flag is required to link a pytorch use-case correctly.
It doesn't seem to impact the rocSHMEM code.

[ROCm/rocshmem commit: 5e49567b6c]
2025-04-10 08:39:54 -05:00
Yiltan 4d6fd799ef Enable RO CI (#65)
[ROCm/rocshmem commit: 25e7109b64]
2025-04-08 16:12:22 -04:00
Avinash Kethineedi 9bd2b04899 Update Barrier and Sync APIs (#73)
* Add thread, wavefront, and workgroup-level `barrier` APIs in IPC and RO conduits; remove collectives on default context
 - Implemented `barrier` APIs for thread, wavefront, and workgroup scopes
 - Added support into both IPC and RO conduits
 - Added functional tests to cover all `barrier` APIs
 - Removed collective operations on default context

* Add thread, wavefront, and workgroup-level `sync` APIs in IPC and RO conduits.
  - Implemented `sync` APIs for thread, wavefront, and workgroup scopes
  - Added support into both IPC and RO conduits
  - Added functional tests to cover all `sync` APIs

* update naming convention for context-based `barrier` APIs

[ROCm/rocshmem commit: dc61bca066]
2025-04-08 11:25:31 -05:00
Avinash Kethineedi 426bbf525b Update Barrier_All and Sync_All APIs (#72)
* Fix deadlock in `rocshmem_ctx_wg_barrier_all` API in IPC conduit by adding per-context pSync buffers and context IDs
  - Added separate pSync buffers for each device context
  - Resolved deadlock when invoking barrier API (`rocshmem_ctx_wg_barrier_all`) concurrently from multiple contexts

* Update barrier_all functional tests for multi-context support

* Add thread, wavefront, and workgroup-level barrier_all APIs in IPC and RO conduits
  - Implemented barrier_all APIs at thread, wavefront, and workgroup granularity
  - Added support in both IPC and RO conduits
  - Updated functional tests to cover all `barrier_all` APIs

* Add thread, wavefront, and workgroup-level sync_all APIs in IPC and RO conduits
  - Implemented sync_all APIs for thread, wavefront, and workgroup scopes
  - Added support into both IPC and RO conduits
  - Added functional tests to cover all `sync_all` APIs

[ROCm/rocshmem commit: c652f58cef]
2025-04-02 11:58:55 -05:00
Edgar Gabriel 7aecbdec4d update README documentation for RO (#63)
* README: update documentation for RO support

update the README and the install_dependencies script to match the
requirements of the RO conduit.

* add CODEOWNERS file

[ROCm/rocshmem commit: 4e48c9748e]
2025-03-25 07:50:15 -05:00
Avinash Kethineedi baca5fd7a1 Fix/RO Backend Hang Issue (#53)
* Update HIP version check for compatibility with versions >= 5.5

* Update memory allocator for context BlockHandle
   - Replaced `HIPAllocator` with `HIPDefaultFinegrainedAllocator` for context `BlockHandle`.

* Update run commands for `rocshmem_g` and `rocshmem_p` functional tests

[ROCm/rocshmem commit: c16b0d6952]
2025-03-24 22:54:07 -05:00
Edgar Gabriel 1ee9b72449 add rocshmem_barrier() (#61)
* add team-barrier implementation

add a team-barrier API and implementation in the IPC and RO conduit.
Clean up some of the logic in the RO Conduit to distinguish between
sync, sync_all, barrier, and barrier_all.

* add team_barrier_tests to functional tests

[ROCm/rocshmem commit: bcbc42e78f]
2025-03-24 11:23:03 -05:00
Yiltan 1ed4512106 Removed GPU_IB (#59)
[ROCm/rocshmem commit: 658bf2a3b5]
2025-03-24 09:04:52 -04:00
Yiltan 6d6dccfebe Sync Reverse Offload Scripts (#52)
* Sync Reverse Offload scripts
- Disable IPC unit tests when IPC is not available in the rocSHMEM configuration

* Added missing ptr in ipc_policy

[ROCm/rocshmem commit: 3428957de9]
2025-03-19 14:31:07 -04:00
Yiltan c4b81768df Bug fix for PR43 (#54)
[ROCm/rocshmem commit: 7d9e82fb34]
2025-03-19 09:39:07 -04:00
Avinash Kethineedi e16bb62767 Update RMA functional tests (#50)
* Update primitive tests for multi-workgroup support

* Update workgroup primitive tests for multi-workgroup support

* Update workfront primitive tests for multi-workgroup support

* Update team based primitive tests for multi-workgroup support

* Update RMA functional tests to capture timing after quiet call
   - Modified RMA functional tests to record the time after a `quiet` call in thread, wavefront, and workgroup RMA calls.

* Improve error handling and memory management
   - Replaced `cout` with `cerr` for improved error reporting.
   - Ensured all allocated memory is freed when `rocshmem_malloc` fails.

* Update start time in primitive tests and latency calculations
   - Modified primitive tests to capture the earliest start time.
   - Updated latency calculations in functional tests.

* Remove `GetSwarmTester`

* Update start time in team primitive tests

* Invoke quiet call from a single thread within a block on a rocshmem context

[ROCm/rocshmem commit: aa3121a967]
2025-03-18 14:39:57 -05:00
Avinash Kethineedi 7f3879ff31 Refactor RO backend data structures (#49)
- Remove hdp and ipc pointers from BlockHandle, align RO stats with RO contexts

- Add run commands for `rocshmem_g` and `rocshmem_p` API tests in driver.sh

- Allocate rocshmem API return buffers based on number of device contexts.

- Associate status flag address with blocking calls and remove threadId dependency
   - Associated the status flag address with each blocking call request to notify the GPU thread.
   - Removed dependency on threadId for determining the appropriate status flag index.

- Move status flag buffer allocation to backend.

- Initialize allocated memeory to zero

[ROCm/rocshmem commit: df4ad2c04d]
2025-03-14 10:49:44 -05:00
Yiltan a16492cdf9 Added option to build only tests and link to an external rocshmem library (#43)
* Rearrange CMakefile

* Enable linking to external rocshmem library

* Minor fix for the functional test driver

* ROCSHMEM_HOME detection fixed

[ROCm/rocshmem commit: 96424a59a8]
2025-03-13 15:49:50 -04:00
Yiltan e1ed36e58f Sync develop with amd-mainline (#46)
* Update install_dependencies.sh

* Updated to ROCm repos

* Merge pull request #37 from ROCm/depBuild

locked specific version on ompi and ucx

* locked specific version on ompi and ucx

* [IPC] Fix ROCSHMEM_SIGNAL_ADD

* Generate CMake Package Configuration Files

---------

Co-authored-by: akolliasAMD <99202231+akolliasAMD@users.noreply.github.com>
Co-authored-by: akolliasAMD <akollias@amd.com>

[ROCm/rocshmem commit: 785e31aa48]
2025-02-18 12:30:34 -05:00
Yiltan Hassan Temucin e50460af83 Use the precalculated num_warps variable
[ROCm/rocshmem commit: b83ff2fa84]
2025-02-06 13:21:25 -06:00
Yiltan Hassan Temucin 257610bdc5 Validate signal after put signal operations
[ROCm/rocshmem commit: 8d74c7b73e]
2025-02-06 08:17:22 -06:00
Yiltan Hassan Temucin adf66d04f4 Updated RO builds script and functional test driver for multi-node support
[ROCm/rocshmem commit: 3a8b0d4647]
2025-01-23 16:46:19 -06:00
Yiltan fc8007bec6 Minor fixes for packaging
[ROCm/rocshmem commit: fa90f4b0ac]
2025-01-20 18:15:07 +00:00
Yiltan 61f5c61ab1 Update scripts/install_dependencies.sh
Co-authored-by: Avinash Kethineedi <avinash.kethineedi@amd.com>

[ROCm/rocshmem commit: 0fb673e186]
2025-01-16 13:38:08 -05:00
Yiltan Temucin b30ab63d2d Added script to install dependencies
[ROCm/rocshmem commit: 5de0371bec]
2025-01-16 10:06:39 -06:00
avinashkethineedi 7a0bf44b83 Updated driver.sh and tester.hpp with sequential numbering for test identification
* Enabled Ping Pong tests
* Removed test commands for multi-workgroup collective tests


[ROCm/rocshmem commit: 23172c9150]
2024-12-26 21:28:21 +00:00
Yiltan Temucin 758d2c78f0 Added timeout to unit tests
[ROCm/rocshmem commit: 98c164d72e]
2024-12-06 15:50:22 -06:00
Yiltan Temucin d7ca5edbf1 Update build scripts
- Only build for the machine we are on
- Saves CI time


[ROCm/rocshmem commit: d08ea96ea3]
2024-12-06 15:49:55 -06:00
avinashkethineedi 04daad3625 Merge branch PR #55 into naming_scheme
[ROCm/rocshmem commit: d8ce066adc]
2024-12-04 21:46:38 +00:00
Yiltan 9d059041e9 Merge pull request #57 from Yiltan/CI-fix-degeneratetiledfine
[CI Bug Fix] Updated gfilter flags for DegenerateTiledFine tests

[ROCm/rocshmem commit: 46dcfbbb9e]
2024-12-03 14:56:00 -05:00
Yiltan Temucin 0f6eb62aed Updated gfilter flags for new unit tests
[ROCm/rocshmem commit: 37fe71343f]
2024-11-26 13:51:29 -06:00
Brandon Potter 913ce47ef1 Use new naming scheme
[ROCm/rocshmem commit: fd8dbc7fb6]
2024-11-25 14:25:29 -06:00
Yiltan Temucin fe7fb26f50 Added functional tests
[ROCm/rocshmem commit: f710a301fe]
2024-11-22 15:36:17 -06:00
Yiltan Temucin eebb42950a Propergate errors from build scripts so CI doesn't silently fail
[ROCm/rocshmem commit: 4ad24b5aab]
2024-11-15 11:17:33 -06:00
Yiltan Temucin 97bac1004f Fixed bug in functional and unit tests driver.sh
- The driver previously did not propagate errors correctly
- Adjusted gtest filters

driver edit


[ROCm/rocshmem commit: 3f857718fd]
2024-11-15 10:50:31 -06:00
Yiltan Hassan Temucin 7f3dd33144 modified team based to_all -> reduce
[ROCm/rocshmem commit: 997eb69b5a]
2024-11-06 09:46:43 -06:00
Yiltan Hassan Temucin 9ae2320ac3 remove cooperative groups
[ROCm/rocshmem commit: fe767d9abf]
2024-10-30 20:10:21 +00:00
avinashkethineedi 10eb11c1d5 Use C++ iota function to reset buffers and use its values for verification
* Update functional test script to include new tests


[ROCm/rocshmem commit: 18a1bdd0ac]
2024-10-15 20:23:25 +00:00
Avinash Kethineedi 1a5536bfaa Merge branch 'ROCm:develop' into functional_tests/puts_gets
[ROCm/rocshmem commit: e981f61693]
2024-10-14 10:27:54 -05:00
Yiltan Hassan Temucin caa6d356c0 Added Cooperative Groups configure option and header
[ROCm/rocshmem commit: 63667a3167]
2024-10-09 13:11:12 -07:00
avinashkethineedi 7eec77ea17 Add script to run unit tests
[ROCm/rocshmem commit: c1bcf336b4]
2024-10-08 18:12:07 +00:00
Brandon Potter 24a527dcda Reset config options to original values
[ROCm/rocshmem commit: 56b2ed699b]
2024-09-27 11:17:11 -05:00
Brandon Potter 10d351b6a1 Intermediate commit for rebase
[ROCm/rocshmem commit: 2806e1be79]
2024-09-10 07:10:22 -07:00
Brandon Potter cec6ba91a0 Partial notifier
[ROCm/rocshmem commit: c4b7e0d91b]
2024-09-10 07:10:21 -07:00
Brandon Potter 94122cd208 Merge pull request #27 from ROCm/ipc_bringup
Ipc bringup

[ROCm/rocshmem commit: e9fb01ab6b]
2024-09-10 09:06:51 -05:00
avinashkethineedi 9532e084fc Add tilled version of puts and gets at wavefront level to the functional test suite
* Implemented tiled version of put*_wave and get*_wave functions
* Maintain single kernel that supports both tiled and untiled versions
* Disable IPC in the default RO build script


[ROCm/rocshmem commit: b6d31ac7ef]
2024-09-07 16:06:36 -07:00
avinashkethineedi 3d26792831 Add tilled version of puts and gets at the workgroup level to the functional test suite
[ROCm/rocshmem commit: d226922733]
2024-09-07 15:58:14 -07:00
avinashkethineedi 31c43bd58d add functional tests for puts and gets at wavefront level
* These functional tests are simple puts and gets, where every wave will get/put the same amount of data
* Enabled workgroup level puts and gets tests


[ROCm/rocshmem commit: ff954237dd]
2024-09-05 14:52:48 -07:00
avinashkethineedi 46176eeeff Comment out ping pong test
* ping pong test fails sporadically
* issues with roc_shmem_wait_until


[ROCm/rocshmem commit: 9c9ef4ffd3]
2024-08-28 12:40:51 -07:00
avinashkethineedi 60fb77de73 Add IPC backend
* add backend_ipc.{cpp & hpp}
* rename context_ipc.{cpp & hpp} to context_ipc_device.{cpp & hpp}
* add host interface to IPC backend
* add context_ipc_host.{cpp & hpp} to support host interface
* add USE_RO compile flag to enable support for single backend interface at a time
* add ipc_single script to build rocSHMEM with IPC backend


[ROCm/rocshmem commit: 49779863c2]
2024-08-14 22:59:02 -07:00
Brandon Potter bda68c964e Add ipc unit_tests
[ROCm/rocshmem commit: 58c5a98b5d]
2024-08-07 12:18:12 -07:00
Brandon Potter 13ba4a1894 Update functional_tests driver.sh script
[ROCm/rocshmem commit: ca36cc249e]
2024-07-15 08:45:41 -07:00
Brandon Potter aff61dc498 Create new ro_ipc config
[ROCm/rocshmem commit: 23f2983214]
2024-07-15 10:38:38 -05:00
Brandon Potter b0963b2f2c Remove CACHED_HEAP option
[ROCm/rocshmem commit: 39c5be18b1]
2024-07-15 10:18:20 -05:00