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, MP: MatmulPrecision>(
        client: &ComputeClient<R::Server>,
        problem: &ConvolutionProblem,
        selection: &MatmulSelection,
        line_sizes: &MatmulLineSizes,
    ) -> 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§

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>,