[Openmp-commits] [PATCH] D55773: [OpenMP][libomptarget] Use shared memory variable for tracking parallel level
Alexey Bataev via Phabricator via Openmp-commits
openmp-commits at lists.llvm.org
Wed Jan 9 06:22:57 PST 2019
ABataev added inline comments.
================
Comment at: libomptarget/deviceRTLs/nvptx/src/omptarget-nvptx.cu:98
setExecutionParameters(Spmd, RuntimeUninitialized);
- if (GetThreadIdInBlock() == 0) {
- int slot = smid() % MAX_SM;
- usedSlotIdx = slot;
- omptarget_nvptx_simpleThreadPrivateContext =
- omptarget_nvptx_device_simpleState[slot].Dequeue();
- }
- // FIXME: use __syncthreads instead when the function copy is fixed in LLVM.
- __SYNCTHREADS();
- omptarget_nvptx_simpleThreadPrivateContext->Init();
+ parallelLevel = 0;
return;
----------------
1. I think it is better to do this initialization in the single thread and you still need to synchronize the threads even in this situation to avoid data race.
2. Keep the initialization of the `usedSlotIdx`, it is used in other places.
Repository:
rOMP OpenMP
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D55773/new/
https://reviews.llvm.org/D55773
More information about the Openmp-commits
mailing list