[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