pub trait ConvolutionConfigFactory:
Send
+ Sync
+ 'static {
type Config: ConvGemmConfig;
type Input;
// Required methods
fn check_config(config: &Self::Config) -> Result<(), InvalidConfigError>;
fn make_config(
input: Self::Input,
problem: &ConvolutionProblem,
cube_dim: &CubeDim,
cube_count: &CubeCount,
) -> Self::Config;
fn check_availability<R: Runtime, MP: MatmulPrecision>(
client: &ComputeClient<R::Server, R::Channel>,
config: &Self::Config,
) -> Result<(), MatmulAvailabilityError>;
}
Expand description
Provides configuration for a matmul kernel at any level
Required Associated Types§
Sourcetype Config: ConvGemmConfig
type Config: ConvGemmConfig
Configuration tailored to the matmul implementation
type Input
Required Methods§
Sourcefn check_config(config: &Self::Config) -> Result<(), InvalidConfigError>
fn check_config(config: &Self::Config) -> Result<(), InvalidConfigError>
Asserts that the configuration for this matmul will lead to a valid computation
fn make_config( input: Self::Input, problem: &ConvolutionProblem, cube_dim: &CubeDim, cube_count: &CubeCount, ) -> Self::Config
fn check_availability<R: Runtime, MP: MatmulPrecision>( client: &ComputeClient<R::Server, R::Channel>, config: &Self::Config, ) -> Result<(), MatmulAvailabilityError>
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.