cubecl_core

Trait Runtime

Source
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§

Source

type Compiler: Compiler

The compiler used to compile the inner representation into tokens.

Source

type Server: ComputeServer<Kernel = Box<dyn CubeTask<Self::Compiler>>, Feature = Feature>

The compute server used to run kernels and perform autotuning.

Source

type Channel: ComputeChannel<Self::Server>

The channel used to communicate with the compute server.

Source

type Device

The device used to retrieve the compute client.

Required Methods§

Source

fn client(device: &Self::Device) -> ComputeClient<Self::Server, Self::Channel>

Retrieve the compute client from the runtime device.

Source

fn name() -> &'static str

The runtime name.

Source

fn supported_line_sizes() -> &'static [u8]

Returns the supported line sizes for the current runtime’s compiler.

Provided Methods§

Source

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.

Implementors§