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]
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
0cde5f53dc
Коммит
426bbf525b
@@ -41,15 +41,6 @@ __global__ void SyncTest(int loop, int skip, long long int *start_time,
|
||||
|
||||
__syncthreads();
|
||||
switch (type) {
|
||||
case SyncAllTestType:
|
||||
/**
|
||||
* The function `rocshmem_ctx_wg_sync_all` should be called from only
|
||||
* one group within the grid to avoid unintended behavior.
|
||||
*/
|
||||
if (is_block_zero_in_grid()) {
|
||||
rocshmem_ctx_wg_sync_all(ctx);
|
||||
}
|
||||
break;
|
||||
case SyncTestType:
|
||||
rocshmem_ctx_wg_team_sync(ctx, teams[wg_id]);
|
||||
break;
|
||||
|
||||
Ссылка в новой задаче
Block a user