Trait MatmulConfigFactory

Source
pub trait MatmulConfigFactory:
    Send
    + Sync
    + 'static {
    type Config: MatmulConfig;
    type Input;

    // Required methods
    fn check_config(config: &Self::Config) -> Result<(), InvalidConfigError>;
    fn check_availability<R: Runtime, MP: MatmulPrecision>(
        _client: &ComputeClient<R::Server, R::Channel>,
        _config: &Self::Config,
    ) -> Result<(), MatmulAvailabilityError>;
    fn make_config(
        input: Self::Input,
        problem: &MatmulProblem,
        cube_dim: &CubeDim,
        cube_count: &CubeCount,
        quantized: bool,
    ) -> Self::Config;
}
Expand description

Provides configuration for a matmul kernel at any level

Required Associated Types§

Source

type Config: MatmulConfig

Configuration tailored to the matmul implementation

Source

type Input

Required Methods§

Source

fn check_config(config: &Self::Config) -> Result<(), InvalidConfigError>

Asserts that the configuration for this matmul will lead to a valid computation

Source

fn check_availability<R: Runtime, MP: MatmulPrecision>( _client: &ComputeClient<R::Server, R::Channel>, _config: &Self::Config, ) -> Result<(), MatmulAvailabilityError>

Checks if the client can handle the features used in this computation

Source

fn make_config( input: Self::Input, problem: &MatmulProblem, cube_dim: &CubeDim, cube_count: &CubeCount, quantized: bool, ) -> Self::Config

Create config for this matmul, given launch information

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§

Source§

impl MatmulConfigFactory for Accelerated

Source§

impl<GMM: GlobalMatmulFamily, C: CubeDispatch> MatmulConfigFactory for OneToOneMatmulFamily<GMM, C>

Source§

impl<GMM: GlobalMatmulFamily, S: SpanMatmul, C: CubeDispatch> MatmulConfigFactory for OneToManyMatmulFamily<GMM, S, C>

Source§

impl<SMM> MatmulConfigFactory for SimpleTmaMatmulFamily<SMM>
where SMM: StageMatmulFamily,

Source§

impl<SMM, LL, RL> MatmulConfigFactory for DoubleBufferingBarrierMatmulFamily<SMM, LL, RL>

Source§

impl<SMM, LL, RL> MatmulConfigFactory for DoubleBufferingMatmulFamily<SMM, LL, RL>

Source§

impl<SMM, LL, RL> MatmulConfigFactory for SpecializedMatmulFamily<SMM, LL, RL>

Source§

impl<SMM, LL, RL> MatmulConfigFactory for SimpleBarrierMatmulFamily<SMM, LL, RL>

Source§

impl<SMM, LL, RL> MatmulConfigFactory for SimpleMatmulFamily<SMM, LL, RL>

Source§

impl<SMM, LL, RL> MatmulConfigFactory for SimplePipelinedMatmulFamily<SMM, LL, RL>

Source§

impl<TMM: TileMatmulFamily, RF: ReaderFamily> MatmulConfigFactory for PlaneMatmulFamily<TMM, RF>