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".