diff --git a/tools/src/tnl-cuda-arch.cu b/tools/src/tnl-cuda-arch.cu
index b6bbe8d4dc843cce931c8f7fcdb9d2233cda6407..f4b8f8d578896d91ef7bf22e5afa747b7698c945 100644
--- a/tools/src/tnl-cuda-arch.cu
+++ b/tools/src/tnl-cuda-arch.cu
@@ -1,8 +1,15 @@
 #include <stdio.h> 
 
 int main() {
-    int num_devices;
-    cudaGetDeviceCount( &num_devices );
+    int num_devices = 0;
+    cudaError_t error_id = cudaGetDeviceCount( &num_devices );
+
+    if( error_id != cudaSuccess ) {
+        fprintf(stderr, "cudaGetDeviceCount returned error %d (%s)\n",
+                (int) error_id, cudaGetErrorString(error_id));
+        exit(EXIT_FAILURE);
+    }
+
     for( int i = 0; i < num_devices; i++ ) {
         cudaDeviceProp prop;
         cudaGetDeviceProperties( &prop, i );