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
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
c652f58cef
Коммит
dc61bca066
@@ -161,11 +161,23 @@ __device__ void Context::barrier_all_wg() {
|
||||
}
|
||||
|
||||
__device__ void Context::barrier(rocshmem_team_t team) {
|
||||
ctxStats.incStat(NUM_BARRIER_ALL);
|
||||
ctxStats.incStat(NUM_BARRIER);
|
||||
|
||||
DISPATCH(barrier(team));
|
||||
}
|
||||
|
||||
__device__ void Context::barrier_wave(rocshmem_team_t team) {
|
||||
ctxStats.incStat(NUM_BARRIER_WAVE);
|
||||
|
||||
DISPATCH(barrier_wave(team));
|
||||
}
|
||||
|
||||
__device__ void Context::barrier_wg(rocshmem_team_t team) {
|
||||
ctxStats.incStat(NUM_BARRIER_WG);
|
||||
|
||||
DISPATCH(barrier_wg(team));
|
||||
}
|
||||
|
||||
__device__ void Context::sync_all() {
|
||||
ctxStats.incStat(NUM_SYNC_ALL);
|
||||
|
||||
@@ -184,8 +196,20 @@ __device__ void Context::sync_all_wg() {
|
||||
DISPATCH(sync_all_wg());
|
||||
}
|
||||
|
||||
__device__ void Context::sync(rocshmem_team_t team) {
|
||||
ctxStats.incStat(NUM_SYNC);
|
||||
|
||||
DISPATCH(sync(team));
|
||||
}
|
||||
|
||||
__device__ void Context::sync_wave(rocshmem_team_t team) {
|
||||
ctxStats.incStat(NUM_SYNC_WAVE);
|
||||
|
||||
DISPATCH(sync_wave(team));
|
||||
}
|
||||
|
||||
__device__ void Context::sync_wg(rocshmem_team_t team) {
|
||||
ctxStats.incStat(NUM_SYNC_ALL_WG);
|
||||
ctxStats.incStat(NUM_SYNC_WG);
|
||||
|
||||
DISPATCH(sync_wg(team));
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user