[Openmp-commits] [PATCH] D82718: [OpenMP] Use primary context in CUDA plugin
Ye Luo via Phabricator via Openmp-commits
openmp-commits at lists.llvm.org
Mon Jun 29 20:24:48 PDT 2020
ye-luo updated this revision to Diff 274318.
ye-luo edited the summary of this revision.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D82718/new/
https://reviews.llvm.org/D82718
Files:
openmp/libomptarget/plugins/cuda/src/rtl.cpp
Index: openmp/libomptarget/plugins/cuda/src/rtl.cpp
===================================================================
--- openmp/libomptarget/plugins/cuda/src/rtl.cpp
+++ openmp/libomptarget/plugins/cuda/src/rtl.cpp
@@ -385,9 +385,15 @@
for (DeviceDataTy &D : DeviceData) {
// Destroy context
- if (D.Context)
- checkResult(cuCtxDestroy(D.Context),
- "Error returned from cuCtxDestroy\n");
+ if (D.Context) {
+ checkResult(cuCtxSetCurrent(D.Context),
+ "Error returned from cuCtxSetCurrent\n");
+ CUdevice Device;
+ checkResult(cuCtxGetDevice(&Device),
+ "Error returned from cuCtxGetDevice\n");
+ checkResult(cuDevicePrimaryCtxRelease(Device),
+ "Error returned from cuDevicePrimaryCtxRelease\n");
+ }
}
}
@@ -408,10 +414,10 @@
if (!checkResult(Err, "Error returned from cuDeviceGet\n"))
return OFFLOAD_FAIL;
- // Create the context and save it to use whenever this device is selected.
- Err = cuCtxCreate(&DeviceData[DeviceId].Context, CU_CTX_SCHED_BLOCKING_SYNC,
- Device);
- if (!checkResult(Err, "Error returned from cuCtxCreate\n"))
+ // Retain the per device primary context and save it to use whenever this
+ // device is selected.
+ Err = cuDevicePrimaryCtxRetain(&DeviceData[DeviceId].Context, Device);
+ if (!checkResult(Err, "Error returned from cuDevicePrimaryCtxRetain\n"))
return OFFLOAD_FAIL;
Err = cuCtxSetCurrent(DeviceData[DeviceId].Context);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D82718.274318.patch
Type: text/x-patch
Size: 1584 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-commits/attachments/20200630/6d4c480c/attachment.bin>
More information about the Openmp-commits
mailing list