xref: /aosp_15_r20/external/pytorch/aten/src/ATen/cuda/Exceptions.cpp (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
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)9 C10_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)50 C10_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)70 C10_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