pub trait Runtime:
Sized
+ Send
+ Sync
+ 'static
+ Debug
+ Clone {
type Compiler: Compiler;
type Server: ComputeServer<Kernel = Box<dyn CubeTask<Self::Compiler>>>;
type Device: Device;
// Required methods
fn client(device: &Self::Device) -> ComputeClient<Self>;
fn name(client: &ComputeClient<Self>) -> &'static str;
fn max_cube_count() -> (u32, u32, u32);
fn can_read_tensor(shape: &Shape, strides: &Strides) -> bool;
fn target_properties() -> TargetProperties;
fn enumerate_devices(
type_id: u16,
info: &<Self::Server as ComputeServer>::Info,
) -> Vec<DeviceId>;
// Provided methods
fn require_array_lengths() -> bool { ... }
fn enumerate_all_devices(
info: &<Self::Server as ComputeServer>::Info,
) -> Vec<DeviceId> { ... }
}Expand description
Runtime for the CubeCL.
Required Associated Types§
Required Methods§
Sourcefn client(device: &Self::Device) -> ComputeClient<Self>
fn client(device: &Self::Device) -> ComputeClient<Self>
Retrieve the compute client from the runtime device.
Sourcefn name(client: &ComputeClient<Self>) -> &'static str
fn name(client: &ComputeClient<Self>) -> &'static str
The runtime name on the given device.
Sourcefn max_cube_count() -> (u32, u32, u32)
fn max_cube_count() -> (u32, u32, u32)
Returns the maximum cube count on each dimension that can be launched.
Sourcefn can_read_tensor(shape: &Shape, strides: &Strides) -> bool
fn can_read_tensor(shape: &Shape, strides: &Strides) -> bool
Whether a tensor with shape and strides can be read as is. If the result is false, the
tensor should be made contiguous before reading.
Sourcefn target_properties() -> TargetProperties
fn target_properties() -> TargetProperties
Returns the properties of the target hardware architecture.
Sourcefn enumerate_devices(
type_id: u16,
info: &<Self::Server as ComputeServer>::Info,
) -> Vec<DeviceId>
fn enumerate_devices( type_id: u16, info: &<Self::Server as ComputeServer>::Info, ) -> Vec<DeviceId>
Returns all devices available under the provided type id.
Provided Methods§
Sourcefn require_array_lengths() -> bool
fn require_array_lengths() -> bool
Return true if global input array lengths should be added to kernel info.
Sourcefn enumerate_all_devices(
info: &<Self::Server as ComputeServer>::Info,
) -> Vec<DeviceId>
fn enumerate_all_devices( info: &<Self::Server as ComputeServer>::Info, ) -> Vec<DeviceId>
Returns all devices that can be handled by the runtime.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.