| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #if !defined(TORCH_STABLE_ONLY) && !defined(TORCH_TARGET_VERSION)
- #pragma once
- #include <ATen/miopen/miopen-wrapper.h>
- #include <string>
- #include <stdexcept>
- #include <sstream>
- 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
- #else
- #error "This file should not be included when either TORCH_STABLE_ONLY or TORCH_TARGET_VERSION is defined."
- #endif // !defined(TORCH_STABLE_ONLY) && !defined(TORCH_TARGET_VERSION)
|