36 #ifndef NV_CUDNN_DISABLE_EXCEPTION 39 cudnnException(
const char *message, cudnnStatus_t status)
throw() : std::runtime_error(message) {
44 return std::runtime_error::what();
55 throw_if(std::function<
bool()> expr,
const char *message, cudnnStatus_t status) {
57 #ifndef NV_CUDNN_DISABLE_EXCEPTION 63 throw_if(
bool expr,
const char *message, cudnnStatus_t status) {
65 #ifndef NV_CUDNN_DISABLE_EXCEPTION 71 static inline std::string
74 case CUDNN_DATA_FLOAT:
75 return std::string(
"CUDNN_DATA_FLOAT");
76 case CUDNN_DATA_DOUBLE:
77 return std::string(
"CUDNN_DATA_DOUBLE");
79 return std::string(
"CUDNN_DATA_HALF");
81 return std::string(
"CUDNN_DATA_INT8");
82 case CUDNN_DATA_INT32:
83 return std::string(
"CUDNN_DATA_INT32");
84 case CUDNN_DATA_INT8x4:
85 return std::string(
"CUDNN_DATA_INT8x4");
86 case CUDNN_DATA_UINT8:
87 return std::string(
"CUDNN_DATA_UINT8");
88 case CUDNN_DATA_UINT8x4:
89 return std::string(
"CUDNN_DATA_UINT8x4");
90 case CUDNN_DATA_INT8x32:
91 return std::string(
"CUDNN_DATA_INT8x32");
92 case CUDNN_DATA_INT64:
93 return std::string(
"CUDNN_DATA_INT64");
94 case CUDNN_DATA_BFLOAT16:
95 return std::string(
"CUDNN_DATA_BFLOAT16");
97 return std::string(
"");
100 static inline std::string
103 case CUDNN_STATUS_SUCCESS:
104 return std::string(
"CUDNN_STATUS_SUCCESS");
105 case CUDNN_STATUS_NOT_INITIALIZED:
106 return std::string(
"CUDNN_STATUS_NOT_INITIALIZED");
107 case CUDNN_STATUS_ALLOC_FAILED:
108 return std::string(
"CUDNN_STATUS_ALLOC_FAILED");
109 case CUDNN_STATUS_BAD_PARAM:
110 return std::string(
"CUDNN_STATUS_BAD_PARAM");
111 case CUDNN_STATUS_INTERNAL_ERROR:
112 return std::string(
"CUDNN_STATUS_INTERNAL_ERROR");
113 case CUDNN_STATUS_INVALID_VALUE:
114 return std::string(
"CUDNN_STATUS_INVALID_VALUE");
115 case CUDNN_STATUS_ARCH_MISMATCH:
116 return std::string(
"CUDNN_STATUS_ARCH_MISMATCH");
117 case CUDNN_STATUS_MAPPING_ERROR:
118 return std::string(
"CUDNN_STATUS_MAPPING_ERROR");
119 case CUDNN_STATUS_EXECUTION_FAILED:
120 return std::string(
"CUDNN_STATUS_EXECUTION_FAILED");
121 case CUDNN_STATUS_NOT_SUPPORTED:
122 return std::string(
"CUDNN_STATUS_NOT_SUPPORTED");
123 case CUDNN_STATUS_LICENSE_ERROR:
124 return std::string(
"CUDNN_STATUS_LICENSE_ERROR");
125 case CUDNN_STATUS_RUNTIME_PREREQUISITE_MISSING:
126 return std::string(
"CUDNN_STATUS_RUNTIME_PREREQUISITE_MISSING");
127 case CUDNN_STATUS_RUNTIME_IN_PROGRESS:
128 return std::string(
"CUDNN_STATUS_RUNTIME_IN_PROGRESS");
129 case CUDNN_STATUS_RUNTIME_FP_OVERFLOW:
130 return std::string(
"CUDNN_STATUS_RUNTIME_FP_OVERFLOW");
131 case CUDNN_STATUS_VERSION_MISMATCH:
132 return std::string(
"CUDNN_STATUS_VERSION_MISMATCH");
134 return std::string(
"");
139 if (desc !=
nullptr) {
143 #ifndef NV_CUDNN_DISABLE_EXCEPTION 145 std::string(std::string(message) + std::string(
" cudnn_status: ") +
to_string(status)).c_str(), status);
std::vector< int64_t > feature_vector_t
Detailed feature_vector. Generally the Tensor and Operation properties.
static void throw_if(std::function< bool()> expr, const char *message, cudnnStatus_t status)
void set_status(cudnnStatus_t const status_) const
Set status of the descriptor.
cudnnStatus_t error_status
static void set_error_and_throw_exception(BackendDescriptor const *desc, cudnnStatus_t status, const char *message)
virtual const char * what() const
cudnnException(const char *message, cudnnStatus_t status)
cudnnStatus_t getCudnnStatus()
void set_error(const char *message) const
Set Diagonistic error message.
static std::string to_string(cudnnDataType_t type)