GlobalConvolutionFamily

Trait GlobalConvolutionFamily 

Source
pub trait GlobalConvolutionFamily: ConvolutionLaunch<Self::Config> + 'static {
    type Config: ConvGemmConfig;
    type Convolution<MP: MatmulPrecision>: GlobalConvolution<MP, Config = Self::Config>;

    // Required methods
    fn filter_line_sizes(
        available_line_sizes: AvailableLineSizes,
    ) -> AvailableLineSizes;
    fn setup<R: Runtime>(
        client: &ComputeClient<R::Server>,
        problem: &ConvolutionProblem,
        selection: &MatmulSelection,
        line_sizes: &MatmulLineSizes,
        dtypes: &MatmulElems,
    ) -> Result<Self::Config, MatmulSetupError>;
}

Required Associated Types§

Source

type Config: ConvGemmConfig

Configuration tailored to the matmul implementation

Source

type Convolution<MP: MatmulPrecision>: GlobalConvolution<MP, Config = Self::Config>

Required Methods§

Source

fn filter_line_sizes( available_line_sizes: AvailableLineSizes, ) -> AvailableLineSizes

Source

fn setup<R: Runtime>( client: &ComputeClient<R::Server>, problem: &ConvolutionProblem, selection: &MatmulSelection, line_sizes: &MatmulLineSizes, dtypes: &MatmulElems, ) -> Result<Self::Config, MatmulSetupError>

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<SMM> GlobalConvolutionFamily for MultiStageTmaConvolutionFamily<SMM>
where SMM: StageMatmulFamily<LhsStage = StridedStageFamily, RhsStage = StridedStageFamily, AccStage = Option<StridedStageFamily>, OutStage = PartitionedStageFamily>,

Source§

impl<SMM> GlobalConvolutionFamily for SimpleConvolutionFamily<SMM>
where SMM: StageMatmulFamily<LhsStage = StridedStageFamily, RhsStage = StridedStageFamily, AccStage = Option<StridedStageFamily>, OutStage = PartitionedStageFamily>,

Source§

impl<SMM> GlobalConvolutionFamily for SimpleTmaConvolutionFamily<SMM>
where SMM: StageMatmulFamily<LhsStage = StridedStageFamily, RhsStage = StridedStageFamily, AccStage = Option<StridedStageFamily>, OutStage = PartitionedStageFamily>,