SuperLU Distributed 9.0.0
gpu3d
gpuCommon.hpp
Go to the documentation of this file.
1#pragma once
2// GPU related functions
3#ifdef HAVE_CUDA
4 #include <cuda_runtime.h>
5 #include <cusolverDn.h>
6#ifdef HAVE_MAGMA
7 #include "magma.h"
8#endif
9#endif
10
11#ifdef HAVE_CUDA
12cudaError_t checkCudaLocal(cudaError_t result);
13
14#define gpuErrchk(ans) \
15{ \
16 gpuAssert((ans), __FILE__, __LINE__); \
17}
18
19inline void gpuAssert(cudaError_t code, const char *file, int line)
20{
21 if (code != cudaSuccess)
22 {
23 printf("GPUassert: %s(%d) %s %d\n", cudaGetErrorString(code), (int)code, file, line);
24 exit(-1);
25 }
26}
27
28#define gpuCusolverErrchk(ans) \
29{ \
30 gpuCusolverAssert((ans), __FILE__, __LINE__); \
31}
32inline void gpuCusolverAssert(cusolverStatus_t code, const char *file, int line)
33{
34 if (code != CUSOLVER_STATUS_SUCCESS)
35 printf("cuSolverAssert: %d %s %d\n", code, file, line);
36}
37#endif