Graf commitů

86 Commity

Autor SHA1 Zpráva Datum
Aurelien Bouteiller 394b52c0ed func-tests: Don't rely on asserts to catch invalid argv/env params (#96)
[ROCm/rocshmem commit: 2bbe21db56]
2025-05-02 12:00:35 -04:00
Aurelien Bouteiller 19e98852af cleanup leftovers from SOS testers removal (#97)
Followup to pr#85

[ROCm/rocshmem commit: f0501550f7]
2025-05-02 11:59:52 -04:00
Aurelien Bouteiller 27d1189ff3 Substitute pow2bin allocator with a dlmalloc based allocator (#71)
* Add dlmalloc_strat allocator strategy
 - Use mspace variant to ease encapsulation
 - Make pow2bins and dlmalloc cmake selectable
* Add unit tester for dlmalloc, rework single_heap, pow2bins unit testers
accordingly
 - add dlmalloc get_used/get_avail, and have all strats allocators also have a get_used
 - Rework memallocator unit tests: bin size is per strat, alignment is verified in singleheap
* bugfix: dlmalloc exposed that the pingpong test would write past end of
allocation with -w 32
* iostream leakage/mixed usage of cerr and fprintf(stderr

---------

Signed-off-by: Aurelien Bouteiller <aurelien.bouteiller@amd.com>

[ROCm/rocshmem commit: b835de6cd5]
2025-05-01 11:55:23 -04:00
Yiltan 835de6be0e Added XNACK support (#94)
* Added xnack flags
* Updated examples compile command

[ROCm/rocshmem commit: edcd1ed57e]
2025-04-30 08:57:55 -04:00
Yiltan 8f135af156 Check RMA functional test data in GPU kernel (#91)
[ROCm/rocshmem commit: c81722c339]
2025-04-28 16:06:05 -04:00
Aurelien Bouteiller ccf6833c6f bugfix: do not dereference ctx during create_ctx if we did run out (#83)
[ROCm/rocshmem commit: 9befbe8293]
2025-04-16 10:37:44 -04:00
Avinash Kethineedi c4de6833f6 Add SPDX license identifiers and update copyright headers (#85)
* Update copyright information and add SPDX license identifier

* Update AUTHORS

* Remove `sos_tests`

[ROCm/rocshmem commit: f6ef19f5a9]
2025-04-15 15:37:53 -05:00
Brandon Potter a3a211a677 Cleanup unused code in repository (#75)
* Remove unused forward_list

* Remove unused __read_clock function

* Replace wallClk code with hip function

* Remove unused unit test for ipc

* Remove slab heap

* Remove unused EBO spinlock

[ROCm/rocshmem commit: 0fd628458c]
2025-04-10 14:47:24 -05:00
Avinash Kethineedi 41d5d739e2 Update collective APIs naming (#77)
* Update the naming convention for collective APIs to ensure consistency across the interface.

* Move all collective API declarations to rocshmem_COLL.hpp

* The following APIs were updated as part of this change:
  - `barrier`
  - `barrier_all`
  - `sync`
  - `sync_all`
  - `all_to_all`
  - `broadcast`
  - `fcollect`
  - `all_reduce`

* Update header file generation code for collective APIs

[ROCm/rocshmem commit: 68421895d6]
2025-04-10 12:14:47 -05: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
Yiltan 0cde5f53dc Update GTEST version (#68)
[ROCm/rocshmem commit: e16ca7a1e3]
2025-03-31 08:58:30 -04:00
Avinash Kethineedi 7a4d1ac064 Implement default RO context (#64)
* Allocate default context buffers and initialize queue for management

- Allocated the status flag, g return, and atomic return buffers for
  the default context.
- Initialized `AtomicWFQueueProxy` instances to manage these buffers
  efficiently for concurrent access.

* Update `BlockHandle` with default context buffers

* Add default context flag and update buffer retrieval functions

- Added a flag to distinguish the default context from other contexts.
- Modified return buffer functionns and `get_status_flag` function to accommodate
  the default context

* Add default context primitive tests

-  get, put, get_nbi, put_nbi, g, and p APIs.

[ROCm/rocshmem commit: 867519e1d0]
2025-03-25 18:51:54 -05:00
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