[Openmp-commits] [PATCH] D87980: [OpenMP] Protect unrecogonized CUDA error code
Ye Luo via Phabricator via Openmp-commits
openmp-commits at lists.llvm.org
Mon Sep 21 09:33:53 PDT 2020
ye-luo updated this revision to Diff 293197.
ye-luo added a comment.
After a bit more experiment, the return status of cuGetErrorString can be more than CUDA_SUCCESS, CUDA_ERROR_INVALID_VALUE.
In this particular case when the CUDA is deinitialized, the error code cannot be translated by cuGetErrorString any more.
So now only print errStr with CUDA_SUCCESS.
Treat CUDA_ERROR_INVALID_VALUE different from generic !=CUDA_SUCCESS
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D87980/new/
https://reviews.llvm.org/D87980
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
@@ -30,9 +30,14 @@
#define CUDA_ERR_STRING(err) \
do { \
if (getDebugLevel() > 0) { \
- const char *errStr; \
- cuGetErrorString(err, &errStr); \
- DP("CUDA error is: %s\n", errStr); \
+ const char *errStr = nullptr; \
+ CUresult errStr_status = cuGetErrorString(err, &errStr); \
+ if (errStr_status == CUDA_ERROR_INVALID_VALUE) \
+ DP("unrecognized CUDA error code: %d\n", err); \
+ else if (errStr_status == CUDA_SUCCESS) \
+ DP("CUDA error is: %s\n", errStr); \
+ else \
+ DP("Unresolved cuGetErrorString return status: %d\n", errStr_status); \
} \
} while (false)
#else // OMPTARGET_DEBUG
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D87980.293197.patch
Type: text/x-patch
Size: 1512 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-commits/attachments/20200921/772a0ed4/attachment.bin>
More information about the Openmp-commits
mailing list