1 //NS: CUDACachingAllocator must be included before to get CUDART_VERSION definedi 2 #include <c10/cuda/CUDACachingAllocator.h> 3 4 #include <ATen/cuda/Exceptions.h> 5 6 namespace at::cuda { 7 namespace blas { 8 _cublasGetErrorEnum(cublasStatus_t error)9C10_EXPORT const char* _cublasGetErrorEnum(cublasStatus_t error) { 10 if (error == CUBLAS_STATUS_SUCCESS) { 11 return "CUBLAS_STATUS_SUCCESS"; 12 } 13 if (error == CUBLAS_STATUS_NOT_INITIALIZED) { 14 return "CUBLAS_STATUS_NOT_INITIALIZED"; 15 } 16 if (error == CUBLAS_STATUS_ALLOC_FAILED) { 17 return "CUBLAS_STATUS_ALLOC_FAILED"; 18 } 19 if (error == CUBLAS_STATUS_INVALID_VALUE) { 20 return "CUBLAS_STATUS_INVALID_VALUE"; 21 } 22 if (error == CUBLAS_STATUS_ARCH_MISMATCH) { 23 return "CUBLAS_STATUS_ARCH_MISMATCH"; 24 } 25 if (error == CUBLAS_STATUS_MAPPING_ERROR) { 26 return "CUBLAS_STATUS_MAPPING_ERROR"; 27 } 28 if (error == CUBLAS_STATUS_EXECUTION_FAILED) { 29 return "CUBLAS_STATUS_EXECUTION_FAILED"; 30 } 31 if (error == CUBLAS_STATUS_INTERNAL_ERROR) { 32 return "CUBLAS_STATUS_INTERNAL_ERROR"; 33 } 34 if (error == CUBLAS_STATUS_NOT_SUPPORTED) { 35 return "CUBLAS_STATUS_NOT_SUPPORTED"; 36 } 37 #ifdef CUBLAS_STATUS_LICENSE_ERROR 38 if (error == CUBLAS_STATUS_LICENSE_ERROR) { 39 return "CUBLAS_STATUS_LICENSE_ERROR"; 40 } 41 #endif 42 return "<unknown>"; 43 } 44 45 } // namespace blas 46 47 #ifdef CUDART_VERSION 48 namespace solver { 49 cusolverGetErrorMessage(cusolverStatus_t status)50C10_EXPORT const char* cusolverGetErrorMessage(cusolverStatus_t status) { 51 switch (status) { 52 case CUSOLVER_STATUS_SUCCESS: return "CUSOLVER_STATUS_SUCCESS"; 53 case CUSOLVER_STATUS_NOT_INITIALIZED: return "CUSOLVER_STATUS_NOT_INITIALIZED"; 54 case CUSOLVER_STATUS_ALLOC_FAILED: return "CUSOLVER_STATUS_ALLOC_FAILED"; 55 case CUSOLVER_STATUS_INVALID_VALUE: return "CUSOLVER_STATUS_INVALID_VALUE"; 56 case CUSOLVER_STATUS_ARCH_MISMATCH: return "CUSOLVER_STATUS_ARCH_MISMATCH"; 57 case CUSOLVER_STATUS_EXECUTION_FAILED: return "CUSOLVER_STATUS_EXECUTION_FAILED"; 58 case CUSOLVER_STATUS_INTERNAL_ERROR: return "CUSOLVER_STATUS_INTERNAL_ERROR"; 59 case CUSOLVER_STATUS_MATRIX_TYPE_NOT_SUPPORTED: return "CUSOLVER_STATUS_MATRIX_TYPE_NOT_SUPPORTED"; 60 default: return "Unknown cusolver error number"; 61 } 62 } 63 64 } // namespace solver 65 #endif 66 67 #if defined(USE_CUDSS) 68 namespace cudss { 69 cudssGetErrorMessage(cudssStatus_t status)70C10_EXPORT const char* cudssGetErrorMessage(cudssStatus_t status) { 71 switch (status) { 72 case CUDSS_STATUS_SUCCESS: return "CUDSS_STATUS_SUCCESS"; 73 case CUDSS_STATUS_NOT_INITIALIZED: return "CUDSS_STATUS_NOT_INITIALIZED"; 74 case CUDSS_STATUS_ALLOC_FAILED: return "CUDSS_STATUS_ALLOC_FAILED"; 75 case CUDSS_STATUS_INVALID_VALUE: return "CUDSS_STATUS_INVALID_VALUE"; 76 case CUDSS_STATUS_NOT_SUPPORTED: return "CUDSS_STATUS_NOT_SUPPORTED"; 77 case CUDSS_STATUS_EXECUTION_FAILED: return "CUDSS_STATUS_EXECUTION_FAILED"; 78 case CUDSS_STATUS_INTERNAL_ERROR: return "CUDSS_STATUS_INTERNAL_ERROR"; 79 default: return "Unknown cudss error number"; 80 } 81 } 82 83 } // namespace cudss 84 #endif 85 86 } // namespace at::cuda 87