]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Use cudaPeekAtLastError() instead of cudaGetLastError() in AssertCuda
authorBruno Turcksin <bruno.turcksin@gmail.com>
Sun, 26 Apr 2020 22:25:49 +0000 (18:25 -0400)
committerBruno Turcksin <bruno.turcksin@gmail.com>
Sun, 26 Apr 2020 22:25:49 +0000 (18:25 -0400)
cudaGetLastError reset the error code to success after being called.
Because the function is called multiple times in AssertCuda, the error
message is wrong.

include/deal.II/lac/affine_constraints.templates.h
include/deal.II/lac/precondition.h
include/deal.II/lac/vector_operations_internal.h
source/lac/cuda_sparse_matrix.cu
source/lac/cuda_vector.cu
tests/cuda/cuda_point.cu
tests/cuda/matrix_free_no_index_initialize.cu

index f6ffb99b6665a118c2dec153ead122393cef540c..d79ea8864ae6eadf400e1e58e9894f455d4e6f9c 100644 (file)
@@ -1926,7 +1926,7 @@ namespace internal
         constrained_local_dofs_device, n_constraints, vec.get_values());
 #  ifdef DEBUG
       // Check that the kernel was launched correctly
-      AssertCuda(cudaGetLastError());
+      AssertCuda(cudaPeekAtLastError());
       // Check that there was no problem during the execution of the kernel
       AssertCuda(cudaDeviceSynchronize());
 #  endif
index 9659ca120d3bcfbe456df91d20bd7ed8450dd885..295965cd63b0e4ba866321939503b38da158cbea 100644 (file)
@@ -2168,7 +2168,7 @@ namespace internal
 
 #    ifdef DEBUG
       // Check that the kernel was launched correctly
-      AssertCuda(cudaGetLastError());
+      AssertCuda(cudaPeekAtLastError());
       // Check that there was no problem during the execution of the kernel
       AssertCuda(cudaDeviceSynchronize());
 #    endif
index e1edb45e22f857deb38b1550ff5746ddad42fe95..e047bb23e98912c4ff8e2e264c1af1e0b7ac9e55 100644 (file)
@@ -2096,7 +2096,7 @@ namespace internal
 
 #  ifdef DEBUG
         // Check that the kernel was launched correctly
-        AssertCuda(cudaGetLastError());
+        AssertCuda(cudaPeekAtLastError());
         // Check that there was no problem during the execution of the kernel
         AssertCuda(cudaDeviceSynchronize());
 #  endif
@@ -2121,7 +2121,7 @@ namespace internal
 
 #  ifdef DEBUG
         // Check that the kernel was launched correctly
-        AssertCuda(cudaGetLastError());
+        AssertCuda(cudaPeekAtLastError());
         // Check that there was no problem during the execution of the kernel
         AssertCuda(cudaDeviceSynchronize());
 #  endif
@@ -2146,7 +2146,7 @@ namespace internal
 
 #  ifdef DEBUG
         // Check that the kernel was launched correctly
-        AssertCuda(cudaGetLastError());
+        AssertCuda(cudaPeekAtLastError());
         // Check that there was no problem during the execution of the kernel
         AssertCuda(cudaDeviceSynchronize());
 #  endif
@@ -2167,7 +2167,7 @@ namespace internal
 
 #  ifdef DEBUG
         // Check that the kernel was launched correctly
-        AssertCuda(cudaGetLastError());
+        AssertCuda(cudaPeekAtLastError());
         // Check that there was no problem during the execution of the kernel
         AssertCuda(cudaDeviceSynchronize());
 #  endif
@@ -2193,7 +2193,7 @@ namespace internal
 
 #  ifdef DEBUG
         // Check that the kernel was launched correctly
-        AssertCuda(cudaGetLastError());
+        AssertCuda(cudaPeekAtLastError());
         // Check that there was no problem during the execution of the kernel
         AssertCuda(cudaDeviceSynchronize());
 #  endif
@@ -2224,7 +2224,7 @@ namespace internal
 
 #  ifdef DEBUG
         // Check that the kernel was launched correctly
-        AssertCuda(cudaGetLastError());
+        AssertCuda(cudaPeekAtLastError());
         // Check that there was no problem during the execution of the kernel
         AssertCuda(cudaDeviceSynchronize());
 #  endif
@@ -2248,7 +2248,7 @@ namespace internal
 
 #  ifdef DEBUG
         // Check that the kernel was launched correctly
-        AssertCuda(cudaGetLastError());
+        AssertCuda(cudaPeekAtLastError());
         // Check that there was no problem during the execution of the kernel
         AssertCuda(cudaDeviceSynchronize());
 #  endif
@@ -2273,7 +2273,7 @@ namespace internal
 
 #  ifdef DEBUG
         // Check that the kernel was launched correctly
-        AssertCuda(cudaGetLastError());
+        AssertCuda(cudaPeekAtLastError());
         // Check that there was no problem during the execution of the kernel
         AssertCuda(cudaDeviceSynchronize());
 #  endif
@@ -2306,7 +2306,7 @@ namespace internal
 
 #  ifdef DEBUG
         // Check that the kernel was launched correctly
-        AssertCuda(cudaGetLastError());
+        AssertCuda(cudaPeekAtLastError());
         // Check that there was no problem during the execution of the kernel
         AssertCuda(cudaDeviceSynchronize());
 #  endif
@@ -2327,7 +2327,7 @@ namespace internal
 
 #  ifdef DEBUG
         // Check that the kernel was launched correctly
-        AssertCuda(cudaGetLastError());
+        AssertCuda(cudaPeekAtLastError());
         // Check that there was no problem during the execution of the kernel
         AssertCuda(cudaDeviceSynchronize());
 #  endif
@@ -2351,7 +2351,7 @@ namespace internal
 
 #  ifdef DEBUG
         // Check that the kernel was launched correctly
-        AssertCuda(cudaGetLastError());
+        AssertCuda(cudaPeekAtLastError());
         // Check that there was no problem during the execution of the kernel
         AssertCuda(cudaDeviceSynchronize());
 #  endif
@@ -2377,7 +2377,7 @@ namespace internal
 
 #  ifdef DEBUG
         // Check that the kernel was launched correctly
-        AssertCuda(cudaGetLastError());
+        AssertCuda(cudaPeekAtLastError());
         // Check that there was no problem during the execution of the kernel
         AssertCuda(cudaDeviceSynchronize());
 #  endif
@@ -2408,7 +2408,7 @@ namespace internal
 
 #  ifdef DEBUG
         // Check that the kernel was launched correctly
-        AssertCuda(cudaGetLastError());
+        AssertCuda(cudaPeekAtLastError());
         // Check that there was no problem during the execution of the kernel
         AssertCuda(cudaDeviceSynchronize());
 #  endif
@@ -2441,7 +2441,7 @@ namespace internal
 
 #  ifdef DEBUG
         // Check that the kernel was launched correctly
-        AssertCuda(cudaGetLastError());
+        AssertCuda(cudaPeekAtLastError());
         // Check that there was no problem during the execution of the kernel
         AssertCuda(cudaDeviceSynchronize());
 #  endif
index f6c8d3740750916a08dab8d0ea43963f33cc21fc..013159bfd3402c0c1e46b927a71ef05020ab6116 100644 (file)
@@ -345,7 +345,7 @@ namespace CUDAWrappers
 
 #  ifdef DEBUG
     // Check that the kernel was launched correctly
-    AssertCuda(cudaGetLastError());
+    AssertCuda(cudaPeekAtLastError());
     // Check that there was no problem during the execution of the kernel
     AssertCuda(cudaDeviceSynchronize());
 #  endif
@@ -367,7 +367,7 @@ namespace CUDAWrappers
 
 #  ifdef DEBUG
     // Check that the kernel was launched correctly
-    AssertCuda(cudaGetLastError());
+    AssertCuda(cudaPeekAtLastError());
     // Check that there was no problem during the execution of the kernel
     AssertCuda(cudaDeviceSynchronize());
 #  endif
@@ -522,7 +522,7 @@ namespace CUDAWrappers
 
 #  ifdef DEBUG
     // Check that the kernel was launched correctly
-    AssertCuda(cudaGetLastError());
+    AssertCuda(cudaPeekAtLastError());
     // Check that there was no problem during the execution of the kernel
     AssertCuda(cudaDeviceSynchronize());
 #  endif
@@ -547,7 +547,7 @@ namespace CUDAWrappers
 
 #  ifdef DEBUG
     // Check that the kernel was launched correctly
-    AssertCuda(cudaGetLastError());
+    AssertCuda(cudaPeekAtLastError());
     // Check that there was no problem during the execution of the kernel
     AssertCuda(cudaDeviceSynchronize());
 #  endif
index a0adad92809091d5024a6f2883297d361e92627a..f2f8bc05d0ab5cc826888e92e7f6ba7dcf274835 100644 (file)
@@ -161,7 +161,7 @@ namespace LinearAlgebra
 
 #  ifdef DEBUG
           // Check that the kernel was launched correctly
-          AssertCuda(cudaGetLastError());
+          AssertCuda(cudaPeekAtLastError());
           // Check that there was no problem during the execution of the kernel
           AssertCuda(cudaDeviceSynchronize());
 #  endif
@@ -202,7 +202,7 @@ namespace LinearAlgebra
 
 #  ifdef DEBUG
       // Check that the kernel was launched correctly
-      AssertCuda(cudaGetLastError());
+      AssertCuda(cudaPeekAtLastError());
       // Check that there was no problem during the execution of the kernel
       AssertCuda(cudaDeviceSynchronize());
 #  endif
@@ -224,7 +224,7 @@ namespace LinearAlgebra
 
 #  ifdef DEBUG
       // Check that the kernel was launched correctly
-      AssertCuda(cudaGetLastError());
+      AssertCuda(cudaPeekAtLastError());
       // Check that there was no problem during the execution of the kernel
       AssertCuda(cudaDeviceSynchronize());
 #  endif
@@ -255,7 +255,7 @@ namespace LinearAlgebra
 
 #  ifdef DEBUG
       // Check that the kernel was launched correctly
-      AssertCuda(cudaGetLastError());
+      AssertCuda(cudaPeekAtLastError());
       // Check that there was no problem during the execution of the kernel
       AssertCuda(cudaDeviceSynchronize());
 #  endif
@@ -286,7 +286,7 @@ namespace LinearAlgebra
 
 #  ifdef DEBUG
       // Check that the kernel was launched correctly
-      AssertCuda(cudaGetLastError());
+      AssertCuda(cudaPeekAtLastError());
       // Check that there was no problem during the execution of the kernel
       AssertCuda(cudaDeviceSynchronize());
 #  endif
@@ -349,7 +349,7 @@ namespace LinearAlgebra
 
 #  ifdef DEBUG
       // Check that the kernel was launched correctly
-      AssertCuda(cudaGetLastError());
+      AssertCuda(cudaPeekAtLastError());
       // Check that there was no problem during the execution of the kernel
       AssertCuda(cudaDeviceSynchronize());
 #  endif
@@ -379,7 +379,7 @@ namespace LinearAlgebra
 
 #  ifdef DEBUG
       // Check that the kernel was launched correctly
-      AssertCuda(cudaGetLastError());
+      AssertCuda(cudaPeekAtLastError());
       // Check that there was no problem during the execution of the kernel
       AssertCuda(cudaDeviceSynchronize());
 #  endif
@@ -423,7 +423,7 @@ namespace LinearAlgebra
 
 #  ifdef DEBUG
       // Check that the kernel was launched correctly
-      AssertCuda(cudaGetLastError());
+      AssertCuda(cudaPeekAtLastError());
       // Check that there was no problem during the execution of the kernel
       AssertCuda(cudaDeviceSynchronize());
 #  endif
@@ -456,7 +456,7 @@ namespace LinearAlgebra
 
 #  ifdef DEBUG
       // Check that the kernel was launched correctly
-      AssertCuda(cudaGetLastError());
+      AssertCuda(cudaPeekAtLastError());
       // Check that there was no problem during the execution of the kernel
       AssertCuda(cudaDeviceSynchronize());
 #  endif
@@ -485,7 +485,7 @@ namespace LinearAlgebra
 
 #  ifdef DEBUG
       // Check that the kernel was launched correctly
-      AssertCuda(cudaGetLastError());
+      AssertCuda(cudaPeekAtLastError());
       // Check that there was no problem during the execution of the kernel
       AssertCuda(cudaDeviceSynchronize());
 #  endif
@@ -516,7 +516,7 @@ namespace LinearAlgebra
 
 #  ifdef DEBUG
       // Check that the kernel was launched correctly
-      AssertCuda(cudaGetLastError());
+      AssertCuda(cudaPeekAtLastError());
       // Check that there was no problem during the execution of the kernel
       AssertCuda(cudaDeviceSynchronize());
 #  endif
index e29a8f87c591aefd2bc5e76bd402f375b0b23995..871cf723182fe149a5caa6772bac8d8e9b7138c0 100644 (file)
@@ -86,7 +86,7 @@ test_gpu()
   // Miscellaneous
   miscellaneous_kernel<dim, Number><<<1, 1>>>(check);
   // Check that the kernel was launched correctly
-  AssertCuda(cudaGetLastError());
+  AssertCuda(cudaPeekAtLastError());
   // Check that there was no problem during the execution of the kernel
   AssertCuda(cudaDeviceSynchronize());
 
index 2720c9cf109d4209380c8d2594d832b5d01c6067..0adf975f14dee1171763bde062e7379e437a5cea 100644 (file)
@@ -77,7 +77,7 @@ public:
     data.cell_loop(*this, src_dummy, dst_dummy);
 
     // Check that the kernel was launched correctly
-    AssertCuda(cudaGetLastError());
+    AssertCuda(cudaPeekAtLastError());
     // Check that there was no problem during the execution of the kernel
     AssertCuda(cudaDeviceSynchronize());
 

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.