xref: /aosp_15_r20/external/pytorch/torch/csrc/Device.h (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1*da0073e9SAndroid Build Coastguard Worker #pragma once
2*da0073e9SAndroid Build Coastguard Worker 
3*da0073e9SAndroid Build Coastguard Worker #include <torch/csrc/Export.h>
4*da0073e9SAndroid Build Coastguard Worker #include <torch/csrc/python_headers.h>
5*da0073e9SAndroid Build Coastguard Worker 
6*da0073e9SAndroid Build Coastguard Worker #include <ATen/Device.h>
7*da0073e9SAndroid Build Coastguard Worker 
8*da0073e9SAndroid Build Coastguard Worker // NOLINTNEXTLINE(cppcoreguidelines-pro-type-member-init)
9*da0073e9SAndroid Build Coastguard Worker struct TORCH_API THPDevice {
10*da0073e9SAndroid Build Coastguard Worker   PyObject_HEAD at::Device device;
11*da0073e9SAndroid Build Coastguard Worker };
12*da0073e9SAndroid Build Coastguard Worker 
13*da0073e9SAndroid Build Coastguard Worker TORCH_API extern PyTypeObject THPDeviceType;
14*da0073e9SAndroid Build Coastguard Worker 
THPDevice_Check(PyObject * obj)15*da0073e9SAndroid Build Coastguard Worker inline bool THPDevice_Check(PyObject* obj) {
16*da0073e9SAndroid Build Coastguard Worker   return Py_TYPE(obj) == &THPDeviceType;
17*da0073e9SAndroid Build Coastguard Worker }
18*da0073e9SAndroid Build Coastguard Worker 
19*da0073e9SAndroid Build Coastguard Worker TORCH_API PyObject* THPDevice_New(const at::Device& device);
20*da0073e9SAndroid Build Coastguard Worker 
21*da0073e9SAndroid Build Coastguard Worker TORCH_API void THPDevice_init(PyObject* module);
22