//! The device type of each runtime, named without naming the runtime crate.
//!
//! Each one is a value and nothing more — which GPU, which index — so they
//! live here rather than in the runtime crates that act on them. That is what
//! lets a caller hold one, and lets `cubecl` put a single enum over them all,
//! without depending on any runtime.
pub use CpuDevice;
pub use CudaDevice;
pub use AmdDevice;
pub use MetalDevice;
pub use ;
pub use DeviceId;
/// A device index as a [`DeviceId`] carries it.
///
/// Kept at the largest the id holds rather than wrapped: wrapped, an index
/// past the end lands on a device that exists; kept, it names one no machine
/// has, and naming it is refused.