Add macros to check CUerror and cublasStatus_t

This commit is contained in:
Gallo Alejandro 2022-09-12 18:36:01 +02:00
parent 68892d5dd8
commit 1cd7bac187

View File

@ -1,5 +1,13 @@
#pragma once
#include <atrip/Utils.hpp>
#if defined(HAVE_CUDA)
#include <cuda.h>
#endif
#include <sstream>
#if defined(HAVE_CUDA) && defined(__CUDACC__)
# define __MAYBE_GLOBAL__ __global__
# define __MAYBE_DEVICE__ __device__
@ -7,3 +15,31 @@
# define __MAYBE_GLOBAL__
# define __MAYBE_DEVICE__
#endif
#define _CHECK_CUDA_SUCCESS(message, ...) \
do { \
CUresult result = __VA_ARGS__; \
if (result != CUDA_SUCCESS) { \
auto msg = _FORMAT("\t!!CUDA_ERROR(%d): %s:%d\v%s", \
result, \
__FILE__, \
__LINE__, \
message); \
std::cerr << msg; \
throw msg; \
} \
} while (0)
#define _CHECK_CUBLAS_SUCCESS(message, ...) \
do { \
cublasStatus_t result = __VA_ARGS__; \
if (result != 0) { \
auto msg = _FORMAT("\t!!CUBLAS_ERROR(%d): %s:%d\v%s", \
result, \
__FILE__, \
__LINE__, \
message); \
std::cerr << msg; \
throw msg; \
} \
} while (0)