Commit Graph

73 Commits

Author SHA1 Message Date
Avinash Kethineedi 370e2dda09 Add AtomicWFQueue implementation and tests (#62)
* feat: Add AtomicWFQueue implementation
  - Implemented wavefront-safe atomic FIFO queue ensuring first-come, first-serve order
  - Added efficient synchronization using atomics
  - Enhanced `dequeue` to wait until an element is available

* test: Add GTest for AtomicWFQueue
  - Implemented unit tests for AtomicWFQueue using GoogleTest framework
  - Added tests for `enqueue`, `dequeue`, and edge cases
  - Ensured synchronization behavior and correctness under concurrent conditions

* Add assert in `enqueue` and update atomics
  - Added an assert in the `enqueue` function to ensure it fails if the queue is full

[ROCm/rocshmem commit: b84b5638cf]
2025-03-25 00:45:19 -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 1380f43156 ROCm 6.4.0rc3 bug fix (#56)
[ROCm/rocshmem commit: 68a1646399]
2025-03-19 15:37:58 -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
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
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 95c4c0d428 Fix ROCm 6.4 warnings (#47)
* Removed __AMDGCN_WAVEFRONT_SIZE

* Added unit test to validate WF_SIZE

[ROCm/rocshmem commit: 487e5b7d0f]
2025-02-24 13:34:13 -05:00
Avinash Kethineedi 65b4ff4c41 Add multi work-group support for collective functional tests (#45)
- Added multi-work group support for the All-to-all, Fcollect, Broadcast, Barrier and Sync collective functional tests
- Renamed All-to-all and Fcollect tests to TeamAlltoAll and TeamFcollect

[ROCm/rocshmem commit: 57d60aa727]
2025-02-19 10:31:53 -06:00
avinashkethineedi dba989733f Update bandwidth and latency calculations
- Refined bandwidth and latency calculations for improved accuracy


[ROCm/rocshmem commit: c155636da4]
2025-02-17 06:18:46 +00: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 9317172fab Fix sigops functional test
- Ensure quiet is called on the correct context


[ROCm/rocshmem commit: bae1641311]
2025-02-04 13:30:31 -08: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
avinashkethineedi ca4142de78 Updated default case of functional tests with empty test
[ROCm/rocshmem commit: e40e6a63fa]
2024-12-26 19:33:23 +00:00
Avinash Kethineedi 2e59d60264 Merge pull request #19 from avinashkethineedi/teams_split_API
[ROCm/rocshmem commit: c5902afe28]
2024-12-23 20:42:09 +05:30
avinashkethineedi 7a8d464b3c Fix rocshmem_team_split_strided API
[ROCm/rocshmem commit: cb8b9094b4]
2024-12-21 18:16:42 +00:00
Yiltan Temucin d8a16962bf Commented function that fails functional tests
[ROCm/rocshmem commit: 83a588ee2b]
2024-12-20 14:48:54 -06:00
Brandon Potter 413114da9f Fix signal calculation bug for fine-tiled unit tests
[ROCm/rocshmem commit: b1f6621f33]
2024-12-19 18:34:47 +00:00
Yiltan Temucin 48605db5de Remove comparisons of signed to unsigned values
[ROCm/rocshmem commit: fa0858833e]
2024-12-12 10:21:08 -06:00
Yiltan Temucin 3164874941 Use ROCm-CMake
[ROCm/rocshmem commit: b60a460681]
2024-12-06 15:49:41 -06:00
avinashkethineedi 04daad3625 Merge branch PR #55 into naming_scheme
[ROCm/rocshmem commit: d8ce066adc]
2024-12-04 21:46:38 +00:00
Yiltan ab0be96680 Merge pull request #54 from Yiltan/sig-ops
Added SHMEM Signalling Operations

[ROCm/rocshmem commit: 0c5524d7df]
2024-11-26 15:38:12 -05:00
Brandon Potter 40016e0a9e Merge pull request #48 from BKP/ipc_fine_tiled_unit_11-04-24
Add tiled fine-grained unit tests

[ROCm/rocshmem commit: 46f0b42ac3]
2024-11-25 14:36:04 -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 07088f0f2b Merge pull request #49 from Yiltan/unit-tests-driver-bug
driver should now return a fail code if any of the mpirun's fail

[ROCm/rocshmem commit: 308816bc5e]
2024-11-22 16:35:36 -05:00
Yiltan Temucin 5ed5c4642e Explicitly require rocPRIM and rocThrust.
[ROCm/rocshmem commit: 50e46847c6]
2024-11-19 08:54:18 -06:00
Brandon Potter 4fed83a40b Update tests/unit_tests/ipc_impl_tiled_fine_gtest.cpp
Co-authored-by: Avinash Kethineedi <avinash.kethineedi@amd.com>

[ROCm/rocshmem commit: 03719bbb0e]
2024-11-14 13:08:20 -06:00
Yiltan Temucin 40e28826c9 converted roc_shmemx to roc_shmem
[ROCm/rocshmem commit: c2b736ef3d]
2024-11-12 08:37:56 -06:00
Yiltan Hassan Temucin 7f3dd33144 modified team based to_all -> reduce
[ROCm/rocshmem commit: 997eb69b5a]
2024-11-06 09:46:43 -06:00
avinashkethineedi 832dda25e6 Merge branch 'ROCm:develop' into active_set_APIs
[ROCm/rocshmem commit: b2b0d559cb]
2024-11-05 23:02:44 +00:00
Brandon Potter 17f9e07ecc Add tiled fine-grained unit tests
[ROCm/rocshmem commit: d241015e0f]
2024-11-04 17:16:07 -06:00
Brandon Potter 74dec9374d Convert simple fine tests into parameterized tests
[ROCm/rocshmem commit: 749d9f0781]
2024-11-04 10:46:50 -06:00
Yiltan Hassan Temucin 9ae2320ac3 remove cooperative groups
[ROCm/rocshmem commit: fe767d9abf]
2024-10-30 20:10:21 +00:00
avinashkethineedi daae6f4d60 Remove active-set-based broadcast test from the functional tests suite
[ROCm/rocshmem commit: 9a524046fe]
2024-10-29 16:18:46 +00:00
avinashkethineedi 5869709dac Update all_reduce algorithm to use internal put/get functions for updating pWrk and pSync arrays
* Change log_stride calcualtions to stride calculations
* Update all_reduce example code to use team based interface


[ROCm/rocshmem commit: abec29bd6a]
2024-10-28 22:10:18 +00:00
avinashkethineedi 4e71fa5d22 Remove active-set-based reduction test from the functional tests suite
[ROCm/rocshmem commit: e9484bbb86]
2024-10-28 21:22:46 +00:00
Yiltan da9466f7cc Merge pull request #44 from ROCm/fix-printing
Clean up functional tests output

[ROCm/rocshmem commit: 9885f984f6]
2024-10-28 15:45:28 -04:00
Yiltan Temucin 0ed689439b Cleaned up how we print the output
[ROCm/rocshmem commit: 9576ff6440]
2024-10-28 13:37:33 -05:00
Brandon Potter a032b41c20 Merge pull request #34 from BKP/ipc_parameterized_simple_tests_10-01-24
IPC Parameterized Simple Tests

[ROCm/rocshmem commit: 416dffa129]
2024-10-24 08:23:26 -05: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
Brandon Potter 7f19a42778 Merge branch 'ROCm:develop' into ipc_parameterized_simple_tests_10-01-24
[ROCm/rocshmem commit: ce0ca36d37]
2024-10-11 12:49:56 -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
Brandon Potter 8e44e5d458 Merge pull request #31 from BKP/ipc_bringup_fine_unit_09-26-24
Add IPC Simple Buffer Fine-grained Unit Tests

[ROCm/rocshmem commit: 787cf0ff3f]
2024-10-01 15:12:30 -05:00
avinashkethineedi 285ac5cab6 Add MPI_THREAD_MULTIPLE check
[ROCm/rocshmem commit: 2f0739d823]
2024-10-01 20:05:15 +00:00
Brandon Potter 44803b3ba1 Use gtest parameterized test macros for IPC simple
The IPC simple test fixtures had replicated code in many places.
This changeset removes most of the duplication in the relevant files.


[ROCm/rocshmem commit: 526811957b]
2024-10-01 14:57:21 -05:00
avinashkethineedi 0641a4a29e make MPI_Init and MPI_Finalize independent of the test fixtures
[ROCm/rocshmem commit: 0f7dc70894]
2024-10-01 18:33:36 +00:00
Brandon Potter 25d7d7fccd Change notifier max thread block value to account for MI300 CPX
[ROCm/rocshmem commit: db221b022a]
2024-09-27 11:17:53 -05:00
Brandon Potter 325ce3cba7 Bugfixes for the ipc unit tests
[ROCm/rocshmem commit: f85c46ec0a]
2024-09-26 13:40:05 -05:00