pub trait Runtime:
Send
+ Sync
+ 'static
+ Debug {
type Compiler: Compiler;
type Server: ComputeServer<Kernel = Box<dyn CubeTask<Self::Compiler>>, Feature = Feature>;
type Channel: ComputeChannel<Self::Server>;
type Device;
// Required methods
fn client(
device: &Self::Device,
) -> ComputeClient<Self::Server, Self::Channel>;
fn name() -> &'static str;
fn supported_line_sizes() -> &'static [u8] ⓘ;
// Provided method
fn require_array_lengths() -> bool { ... }
}
Expand description
Runtime for the CubeCL.
Required Associated Types§
Sourcetype Server: ComputeServer<Kernel = Box<dyn CubeTask<Self::Compiler>>, Feature = Feature>
type Server: ComputeServer<Kernel = Box<dyn CubeTask<Self::Compiler>>, Feature = Feature>
The compute server used to run kernels and perform autotuning.
Sourcetype Channel: ComputeChannel<Self::Server>
type Channel: ComputeChannel<Self::Server>
The channel used to communicate with the compute server.
Required Methods§
Sourcefn client(device: &Self::Device) -> ComputeClient<Self::Server, Self::Channel>
fn client(device: &Self::Device) -> ComputeClient<Self::Server, Self::Channel>
Retrieve the compute client from the runtime device.
Sourcefn supported_line_sizes() -> &'static [u8] ⓘ
fn supported_line_sizes() -> &'static [u8] ⓘ
Returns the supported line sizes for the current runtime’s compiler.
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.
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.