pub fn launch_kernel<R: Runtime, MP: MatmulPrecision, Alg: Algorithm>(
    client: &ComputeClient<R::Server>,
    input: &MatmulInputHandleRef<'_, R>,
    weight: &MatmulInputHandleRef<'_, R>,
    bias: &Option<TensorHandleRef<'_, R>>,
    out: &TensorHandleRef<'_, R>,
    problem: ConvolutionProblem,
    selection: MatmulSelection,
) -> Result<(), ConvSetupError>where
    <<Alg as Algorithm>::Args as MatmulArgs>::Input<<<MP as MatmulPrecision>::Lhs as MatrixPrecision>::Global, <<MP as MatmulPrecision>::Rhs as MatrixPrecision>::Global, <<MP as MatmulPrecision>::Acc as MatrixPrecision>::Global>: ConcreteInputsFactory,
    <<Alg as Algorithm>::Args as MatmulArgs>::Output<<<MP as MatmulPrecision>::Acc as MatrixPrecision>::Global>: ConcreteOutputFactory,