| #pragma once | |
| #include <functional> | |
| #include <string> | |
| namespace caffe2 { | |
| namespace onnx { | |
| enum class DeviceType { CPU = 0, CUDA = 1 }; | |
| struct Device { | |
| Device(const std::string& spec); | |
| DeviceType type; | |
| int device_id{-1}; | |
| }; | |
| } // namespace onnx | |
| } // namespace caffe2 | |
| namespace std { | |
| template <> | |
| struct hash<caffe2::onnx::DeviceType> { | |
| std::size_t operator()(const caffe2::onnx::DeviceType& k) const { | |
| return std::hash<int>()(static_cast<int>(k)); | |
| } | |
| }; | |
| } // namespace std |