docs/cpp/source/api/c10/device.md
PyTorch provides device abstractions for writing code that works across CPU, CUDA, and other backends.
:members:
:undoc-members:
Example:
c10::Device cpu_device(c10::kCPU);
c10::Device cuda_device(c10::kCUDA, 0); // CUDA device 0
if (cuda_device.is_cuda()) {
std::cout << "Using CUDA device " << cuda_device.index() << std::endl;
}
Enumeration of supported device types.
CPU device.
NVIDIA CUDA GPU.
AMD HIP GPU.
XLA / TPU.
Vulkan GPU.
Apple Metal GPU.
Intel XPU GPU.
Apple Metal Performance Shaders.
Meta tensors (shape only, no data).
Habana HPU.
Lazy tensors.
Graphcore IPU.
Meta training and inference accelerator.
Custom backend registered via `c10::register_privateuse1_backend()`.
Convenience constants:
c10::kCPU, c10::kCUDA, c10::kHIPc10::kXLA, c10::kVulkan, c10::kMetalc10::kXPU, c10::kMPS, c10::kMetac10::kHPU, c10::kLazy, c10::kIPU, c10::kMTIAc10::kPrivateUse1