pub trait Algorithm {
type Routine: Routine<RuntimeArgs>;
type Args: MatmulArgs<Config = RuntimeArgs>;
const IS_SPECIALIZED: bool = false;
// Required method
fn into_tensor_handle<R: Runtime>(
client: &ComputeClient<R>,
handle: &TensorHandleRef<'_, R>,
dtype: StorageType,
operation: ConvolutionOperation,
) -> Result<TensorHandle<R>, LaunchError>;
// Provided method
fn filter_line_sizes(line_sizes: AvailableLineSizes) -> AvailableLineSizes { ... }
}Expand description
Specifications for a convolution algorithm
Provided Associated Constants§
Sourceconst IS_SPECIALIZED: bool = false
const IS_SPECIALIZED: bool = false
Whether to select specialized load flow in tests. Should replace with something cleaner eventually, but this is nice and simple.
Required Associated Types§
type Routine: Routine<RuntimeArgs>
type Args: MatmulArgs<Config = RuntimeArgs>
Required Methods§
fn into_tensor_handle<R: Runtime>( client: &ComputeClient<R>, handle: &TensorHandleRef<'_, R>, dtype: StorageType, operation: ConvolutionOperation, ) -> Result<TensorHandle<R>, LaunchError>
Provided Methods§
fn filter_line_sizes(line_sizes: AvailableLineSizes) -> AvailableLineSizes
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.