From e67a8792197da26cd87fccf3c8e682cacf2855cd Mon Sep 17 00:00:00 2001 From: Mathieu Faverge <mathieu.faverge@inria.fr> Date: Thu, 6 Jul 2023 12:02:03 +0200 Subject: [PATCH] cuda: check error after launching kernels --- gpucublas/compute/cuda_dlag2h.cu | 16 ++++++++++++++++ gpucublas/compute/cuda_zlag2c.cu | 16 ++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/gpucublas/compute/cuda_dlag2h.cu b/gpucublas/compute/cuda_dlag2h.cu index 8136c248f..000fc7454 100644 --- a/gpucublas/compute/cuda_dlag2h.cu +++ b/gpucublas/compute/cuda_dlag2h.cu @@ -133,6 +133,7 @@ CUDA_dlag2h( int m, int n, cublasHandle_t handle ) { cudaStream_t stream; + cudaError_t err; double rmax; if ( m < 0 ) { @@ -166,6 +167,13 @@ CUDA_dlag2h( int m, int n, cuda_dlag2h_kernel<<< grid, threads, 0, stream >>>( m, n, A, lda, HA, ldha, rmax ); + err = cudaGetLastError(); + if ( err != cudaSuccess ) + { + fprintf( stderr, "CUDA_dlag2h failed to launch CUDA kernel %s\n", cudaGetErrorString(err) ); + return CHAMELEON_ERR_UNEXPECTED; + } + return 0; } @@ -261,6 +269,7 @@ CUDA_hlag2d( int m, int n, cublasHandle_t handle ) { cudaStream_t stream; + cudaError_t err; if ( m < 0 ) { return -1; @@ -286,5 +295,12 @@ CUDA_hlag2d( int m, int n, cublasGetStream( handle, &stream ); cuda_hlag2d_kernel<<< grid, threads, 0, stream >>> ( m, n, HA, ldha, A, lda ); + err = cudaGetLastError(); + if ( err != cudaSuccess ) + { + fprintf( stderr, "CUDA_hlag2d failed to launch CUDA kernel %s\n", cudaGetErrorString(err) ); + return CHAMELEON_ERR_UNEXPECTED; + } + return 0; } diff --git a/gpucublas/compute/cuda_zlag2c.cu b/gpucublas/compute/cuda_zlag2c.cu index cf3f35062..8b1fdfe71 100644 --- a/gpucublas/compute/cuda_zlag2c.cu +++ b/gpucublas/compute/cuda_zlag2c.cu @@ -152,6 +152,7 @@ CUDA_zlag2c( int m, int n, cublasHandle_t handle ) { cudaStream_t stream; + cudaError_t err; double rmax; if ( m < 0 ) { @@ -180,6 +181,13 @@ CUDA_zlag2c( int m, int n, cuda_zlag2c_kernel<<< grid, threads, 0, stream >>>( m, n, A, lda, SA, ldsa, rmax ); + err = cudaGetLastError(); + if ( err != cudaSuccess ) + { + fprintf( stderr, "CUDA_zlag2c failed to launch CUDA kernel %s\n", cudaGetErrorString(err) ); + return CHAMELEON_ERR_UNEXPECTED; + } + return 0; } @@ -275,6 +283,7 @@ CUDA_clag2z( int m, int n, cublasHandle_t handle ) { cudaStream_t stream; + cudaError_t err; if ( m < 0 ) { return -1; @@ -300,5 +309,12 @@ CUDA_clag2z( int m, int n, cublasGetStream( handle, &stream ); cuda_clag2z_kernel<<< grid, threads, 0, stream >>> ( m, n, SA, ldsa, A, lda ); + err = cudaGetLastError(); + if ( err != cudaSuccess ) + { + fprintf( stderr, "CUDA_clag2z failed to launch CUDA kernel %s\n", cudaGetErrorString(err) ); + return CHAMELEON_ERR_UNEXPECTED; + } + return 0; } -- GitLab