Skip to content
This repository has been archived by the owner on May 14, 2024. It is now read-only.

Commit

Permalink
Add/restore missing synchronization
Browse files Browse the repository at this point in the history
Change-Id: Ic1296c58fe984135697430aae66fdcbca84138d0
  • Loading branch information
b-sumner committed Jan 27, 2020
1 parent 8f441a8 commit c214a58
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions ockl/src/cg.cl
Original file line number Diff line number Diff line change
Expand Up @@ -126,16 +126,21 @@ __attribute__((convergent)) void
__ockl_multi_grid_sync(void)
{
__llvm_fence_sc_sys();
uint nwm1 = (uint)__ockl_get_num_groups(0) * (uint)__ockl_get_num_groups(1) * (uint)__ockl_get_num_groups(2) - 1;
bool cwwi = choose_one_workgroup_workitem();

if (cwwi)
__ockl_gws_barrier(nwm1, 0);

__builtin_amdgcn_s_barrier();

if (choose_one_grid_workitem()) {
__constant struct mg_info *m = (__constant struct mg_info *)get_mg_info_arg();
multi_grid_sync(m->mgs, m->num_grids);
}

if (choose_one_workgroup_workitem()) {
uint nwm1 = (uint)__ockl_get_num_groups(0) * (uint)__ockl_get_num_groups(1) * (uint)__ockl_get_num_groups(2) - 1;
if (cwwi)
__ockl_gws_barrier(nwm1, 0);
}

__builtin_amdgcn_s_barrier();
}
Expand Down

0 comments on commit c214a58

Please sign in to comment.