[Openmp-commits] [PATCH] D49204: [OpenMP][libomptarget] Fix data sharing and globalization infrastructure to work in SPMD mode

George Rokos via Phabricator via Openmp-commits openmp-commits at lists.llvm.org
Thu Jul 12 09:17:37 PDT 2018


grokos added inline comments.


================
Comment at: libomptarget/deviceRTLs/nvptx/src/data_sharing.cu:416
+        NewSize = DefaultSlotSize;
+      NewSlot = (__kmpc_data_sharing_slot *) malloc(
+          sizeof(__kmpc_data_sharing_slot) + NewSize);
----------------
Better use `SafeMalloc`.


================
Comment at: libomptarget/deviceRTLs/nvptx/src/omptarget-nvptx.h:295-296
+  INLINE __kmpc_data_sharing_slot *GetPreallocatedSlotAddr(int wid) {
+    // If this is invoked by the master thread of the master warp then intialize
+    // it with a smaller slot.
+    worker_rootS[wid].DataEnd =
----------------
Leftover comment from the previous implementation? In `data_sharing.cu` we said that for uniformity the master thread uses slots of the same size as the workers.


================
Comment at: libomptarget/deviceRTLs/nvptx/src/omptarget-nvptx.h:316
+      __kmpc_data_sharing_worker_slot_static worker_rootS[WARPSIZE];
   __align__(16) __kmpc_data_sharing_master_slot_static master_rootS[1];
 };
----------------
Is `master_rootS` still needed? From what I understand, all threads (master and workers) now use the same slot type, that's why `worker_rootS` was increased in size from `WARPSIZE-1` to `WARPSIZE`.


Repository:
  rOMP OpenMP

https://reviews.llvm.org/D49204





More information about the Openmp-commits mailing list