pub trait Runtime:
Sized
+ Send
+ Sync
+ 'static
+ Debug {
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 supported_line_sizes() -> &'static [u8] ⓘ;
fn max_cube_count() -> (u32, u32, u32);
fn can_read_tensor(shape: &[usize], strides: &[usize]) -> bool;
fn target_properties() -> TargetProperties;
// Provided methods
fn require_array_lengths() -> bool { ... }
fn max_global_line_size() -> u8 { ... }
}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 supported_line_sizes() -> &'static [u8] ⓘ
fn supported_line_sizes() -> &'static [u8] ⓘ
Returns the supported line sizes for the current runtime’s compiler.
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: &[usize], strides: &[usize]) -> bool
fn can_read_tensor(shape: &[usize], strides: &[usize]) -> 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.
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 max_global_line_size() -> u8
fn max_global_line_size() -> u8
The maximum line size that can be used for global buffer bindings.
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.