LinalgBackend.h 973 B

123456789101112131415161718192021222324252627282930313233343536
  1. #if !defined(TORCH_STABLE_ONLY) && !defined(TORCH_TARGET_VERSION)
  2. #pragma once
  3. #include <c10/util/Exception.h>
  4. #include <ostream>
  5. #include <string>
  6. namespace at {
  7. enum class LinalgBackend : int8_t { Default, Cusolver, Magma };
  8. inline std::string LinalgBackendToString(at::LinalgBackend backend) {
  9. switch (backend) {
  10. case LinalgBackend::Default:
  11. return "at::LinalgBackend::Default";
  12. case LinalgBackend::Cusolver:
  13. return "at::LinalgBackend::Cusolver";
  14. case LinalgBackend::Magma:
  15. return "at::LinalgBackend::Magma";
  16. default:
  17. TORCH_CHECK(false, "Unknown linalg backend");
  18. }
  19. }
  20. inline std::ostream& operator<<(
  21. std::ostream& stream,
  22. at::LinalgBackend backend) {
  23. return stream << LinalgBackendToString(backend);
  24. }
  25. } // namespace at
  26. #else
  27. #error "This file should not be included when either TORCH_STABLE_ONLY or TORCH_TARGET_VERSION is defined."
  28. #endif // !defined(TORCH_STABLE_ONLY) && !defined(TORCH_TARGET_VERSION)