Spaces:
Running
Running
namespace at { namespace native { | |
class miopen_exception : public std::runtime_error { | |
public: | |
miopenStatus_t status; | |
miopen_exception(miopenStatus_t status, const char* msg) | |
: std::runtime_error(msg) | |
, status(status) {} | |
miopen_exception(miopenStatus_t status, const std::string& msg) | |
: std::runtime_error(msg) | |
, status(status) {} | |
}; | |
inline void MIOPEN_CHECK(miopenStatus_t status) | |
{ | |
if (status != miopenStatusSuccess) { | |
if (status == miopenStatusNotImplemented) { | |
throw miopen_exception(status, std::string(miopenGetErrorString(status)) + | |
". This error may appear if you passed in a non-contiguous input."); | |
} | |
throw miopen_exception(status, miopenGetErrorString(status)); | |
} | |
} | |
inline void HIP_CHECK(hipError_t error) | |
{ | |
if (error != hipSuccess) { | |
std::string msg("HIP error: "); | |
msg += hipGetErrorString(error); | |
throw std::runtime_error(msg); | |
} | |
} | |
}} // namespace at::native | |