| //NS: CUDACachingAllocator must be included before to get CUDART_VERSION definedi |
| #include <c10/cuda/CUDACachingAllocator.h> |
| |
| #include <ATen/cuda/Exceptions.h> |
| |
| namespace at { |
| namespace cuda { |
| namespace blas { |
| |
| C10_EXPORT const char* _cublasGetErrorEnum(cublasStatus_t error) { |
| if (error == CUBLAS_STATUS_SUCCESS) { |
| return "CUBLAS_STATUS_SUCCESS"; |
| } |
| if (error == CUBLAS_STATUS_NOT_INITIALIZED) { |
| return "CUBLAS_STATUS_NOT_INITIALIZED"; |
| } |
| if (error == CUBLAS_STATUS_ALLOC_FAILED) { |
| return "CUBLAS_STATUS_ALLOC_FAILED"; |
| } |
| if (error == CUBLAS_STATUS_INVALID_VALUE) { |
| return "CUBLAS_STATUS_INVALID_VALUE"; |
| } |
| if (error == CUBLAS_STATUS_ARCH_MISMATCH) { |
| return "CUBLAS_STATUS_ARCH_MISMATCH"; |
| } |
| if (error == CUBLAS_STATUS_MAPPING_ERROR) { |
| return "CUBLAS_STATUS_MAPPING_ERROR"; |
| } |
| if (error == CUBLAS_STATUS_EXECUTION_FAILED) { |
| return "CUBLAS_STATUS_EXECUTION_FAILED"; |
| } |
| if (error == CUBLAS_STATUS_INTERNAL_ERROR) { |
| return "CUBLAS_STATUS_INTERNAL_ERROR"; |
| } |
| if (error == CUBLAS_STATUS_NOT_SUPPORTED) { |
| return "CUBLAS_STATUS_NOT_SUPPORTED"; |
| } |
| #ifdef CUBLAS_STATUS_LICENSE_ERROR |
| if (error == CUBLAS_STATUS_LICENSE_ERROR) { |
| return "CUBLAS_STATUS_LICENSE_ERROR"; |
| } |
| #endif |
| return "<unknown>"; |
| } |
| |
| } // namespace blas |
| |
| #ifdef CUDART_VERSION |
| namespace solver { |
| |
| C10_EXPORT const char* cusolverGetErrorMessage(cusolverStatus_t status) { |
| switch (status) { |
| case CUSOLVER_STATUS_SUCCESS: return "CUSOLVER_STATUS_SUCCES"; |
| case CUSOLVER_STATUS_NOT_INITIALIZED: return "CUSOLVER_STATUS_NOT_INITIALIZED"; |
| case CUSOLVER_STATUS_ALLOC_FAILED: return "CUSOLVER_STATUS_ALLOC_FAILED"; |
| case CUSOLVER_STATUS_INVALID_VALUE: return "CUSOLVER_STATUS_INVALID_VALUE"; |
| case CUSOLVER_STATUS_ARCH_MISMATCH: return "CUSOLVER_STATUS_ARCH_MISMATCH"; |
| case CUSOLVER_STATUS_EXECUTION_FAILED: return "CUSOLVER_STATUS_EXECUTION_FAILED"; |
| case CUSOLVER_STATUS_INTERNAL_ERROR: return "CUSOLVER_STATUS_INTERNAL_ERROR"; |
| case CUSOLVER_STATUS_MATRIX_TYPE_NOT_SUPPORTED: return "CUSOLVER_STATUS_MATRIX_TYPE_NOT_SUPPORTED"; |
| default: return "Unknown cusolver error number"; |
| } |
| } |
| |
| } // namespace solver |
| #endif |
| |
| }} // namespace at::cuda |