Skip to main content

LaunchArg

Trait LaunchArg 

Source
pub trait LaunchArg: CubeType + 'static {
    type RuntimeArg<R: Runtime>: Send + Sync;
    type CompilationArg: CompilationArg;

    // Required methods
    fn register<R: Runtime>(
        arg: Self::RuntimeArg<R>,
        launcher: &mut KernelLauncher<R>,
    ) -> Self::CompilationArg;
    fn expand(
        arg: &Self::CompilationArg,
        builder: &mut KernelBuilder,
    ) -> <Self as CubeType>::ExpandType;
}
Expand description

Defines how a launch argument can be expanded.

TODO Verify the accuracy of the next comment.

Normally this type should be implemented two times for an argument. Once for the reference and the other for the mutable reference. Often time, the reference should expand the argument as an input while the mutable reference should expand the argument as an output.

Required Associated Types§

Source

type RuntimeArg<R: Runtime>: Send + Sync

The runtime argument for the kernel.

Source

type CompilationArg: CompilationArg

Compilation argument.

Required Methods§

Source

fn register<R: Runtime>( arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, ) -> Self::CompilationArg

Source

fn expand( arg: &Self::CompilationArg, builder: &mut KernelBuilder, ) -> <Self as CubeType>::ExpandType

Register a variable during compilation that fill the KernelBuilder.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl LaunchArg for ()

Source§

type RuntimeArg<R: Runtime> = ()

Source§

type CompilationArg = ()

Source§

fn register<R: Runtime>( _runtime_arg: Self::RuntimeArg<R>, _launcher: &mut KernelLauncher<R>, )

Source§

fn expand( _: &Self::CompilationArg, _builder: &mut KernelBuilder, ) -> <Self as CubeType>::ExpandType

Source§

impl LaunchArg for bf16

Source§

type RuntimeArg<R: Runtime> = bf16

Source§

type CompilationArg = ()

Source§

fn register<R: Runtime>( arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, )

Source§

fn expand(_: &(), builder: &mut KernelBuilder) -> NativeExpand<Self>

Source§

impl LaunchArg for f16

Source§

type RuntimeArg<R: Runtime> = f16

Source§

type CompilationArg = ()

Source§

fn register<R: Runtime>( arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, )

Source§

fn expand(_: &(), builder: &mut KernelBuilder) -> NativeExpand<Self>

Source§

impl LaunchArg for f32

Source§

type RuntimeArg<R: Runtime> = f32

Source§

type CompilationArg = ()

Source§

fn register<R: Runtime>( arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, )

Source§

fn expand(_: &(), builder: &mut KernelBuilder) -> NativeExpand<Self>

Source§

impl LaunchArg for f64

Source§

type RuntimeArg<R: Runtime> = f64

Source§

type CompilationArg = ()

Source§

fn register<R: Runtime>( arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, )

Source§

fn expand(_: &(), builder: &mut KernelBuilder) -> NativeExpand<Self>

Source§

impl LaunchArg for i8

Source§

type RuntimeArg<R: Runtime> = i8

Source§

type CompilationArg = ()

Source§

fn register<R: Runtime>( arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, )

Source§

fn expand(_: &(), builder: &mut KernelBuilder) -> NativeExpand<Self>

Source§

impl LaunchArg for i16

Source§

type RuntimeArg<R: Runtime> = i16

Source§

type CompilationArg = ()

Source§

fn register<R: Runtime>( arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, )

Source§

fn expand(_: &(), builder: &mut KernelBuilder) -> NativeExpand<Self>

Source§

impl LaunchArg for i32

Source§

type RuntimeArg<R: Runtime> = i32

Source§

type CompilationArg = ()

Source§

fn register<R: Runtime>( arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, )

Source§

fn expand(_: &(), builder: &mut KernelBuilder) -> NativeExpand<Self>

Source§

impl LaunchArg for i64

Source§

type RuntimeArg<R: Runtime> = i64

Source§

type CompilationArg = ()

Source§

fn register<R: Runtime>( arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, )

Source§

fn expand(_: &(), builder: &mut KernelBuilder) -> NativeExpand<Self>

Source§

impl LaunchArg for isize

Source§

type RuntimeArg<R: Runtime> = isize

Source§

type CompilationArg = ()

Source§

fn register<R: Runtime>( arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, )

Source§

fn expand(_: &(), builder: &mut KernelBuilder) -> NativeExpand<Self>

Source§

impl LaunchArg for u8

Source§

type RuntimeArg<R: Runtime> = u8

Source§

type CompilationArg = ()

Source§

fn register<R: Runtime>( arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, )

Source§

fn expand(_: &(), builder: &mut KernelBuilder) -> NativeExpand<Self>

Source§

impl LaunchArg for u16

Source§

type RuntimeArg<R: Runtime> = u16

Source§

type CompilationArg = ()

Source§

fn register<R: Runtime>( arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, )

Source§

fn expand(_: &(), builder: &mut KernelBuilder) -> NativeExpand<Self>

Source§

impl LaunchArg for u32

Source§

type RuntimeArg<R: Runtime> = u32

Source§

type CompilationArg = ()

Source§

fn register<R: Runtime>( arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, )

Source§

fn expand(_: &(), builder: &mut KernelBuilder) -> NativeExpand<Self>

Source§

impl LaunchArg for u64

Source§

type RuntimeArg<R: Runtime> = u64

Source§

type CompilationArg = ()

Source§

fn register<R: Runtime>( arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, )

Source§

fn expand(_: &(), builder: &mut KernelBuilder) -> NativeExpand<Self>

Source§

impl LaunchArg for usize

Source§

type RuntimeArg<R: Runtime> = usize

Source§

type CompilationArg = ()

Source§

fn register<R: Runtime>( arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, )

Source§

fn expand(_: &(), builder: &mut KernelBuilder) -> NativeExpand<Self>

Source§

impl<C: CubePrimitive> LaunchArg for Box<[C]>

Source§

impl<C: CubePrimitive> LaunchArg for [C]

Source§

impl<T0: LaunchArg, T1: LaunchArg, T2: LaunchArg, T3: LaunchArg, T4: LaunchArg, T5: LaunchArg, T6: LaunchArg, T7: LaunchArg, T8: LaunchArg, T9: LaunchArg, T10: LaunchArg, T11: LaunchArg> LaunchArg for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)

Source§

type RuntimeArg<R: Runtime> = (<T0 as LaunchArg>::RuntimeArg<R>, <T1 as LaunchArg>::RuntimeArg<R>, <T2 as LaunchArg>::RuntimeArg<R>, <T3 as LaunchArg>::RuntimeArg<R>, <T4 as LaunchArg>::RuntimeArg<R>, <T5 as LaunchArg>::RuntimeArg<R>, <T6 as LaunchArg>::RuntimeArg<R>, <T7 as LaunchArg>::RuntimeArg<R>, <T8 as LaunchArg>::RuntimeArg<R>, <T9 as LaunchArg>::RuntimeArg<R>, <T10 as LaunchArg>::RuntimeArg<R>, <T11 as LaunchArg>::RuntimeArg<R>)

Source§

type CompilationArg = (<T0 as LaunchArg>::CompilationArg, <T1 as LaunchArg>::CompilationArg, <T2 as LaunchArg>::CompilationArg, <T3 as LaunchArg>::CompilationArg, <T4 as LaunchArg>::CompilationArg, <T5 as LaunchArg>::CompilationArg, <T6 as LaunchArg>::CompilationArg, <T7 as LaunchArg>::CompilationArg, <T8 as LaunchArg>::CompilationArg, <T9 as LaunchArg>::CompilationArg, <T10 as LaunchArg>::CompilationArg, <T11 as LaunchArg>::CompilationArg)

Source§

fn register<R: Runtime>( runtime_arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, ) -> Self::CompilationArg

Source§

fn expand( arg: &Self::CompilationArg, builder: &mut KernelBuilder, ) -> (<T0 as CubeType>::ExpandType, <T1 as CubeType>::ExpandType, <T2 as CubeType>::ExpandType, <T3 as CubeType>::ExpandType, <T4 as CubeType>::ExpandType, <T5 as CubeType>::ExpandType, <T6 as CubeType>::ExpandType, <T7 as CubeType>::ExpandType, <T8 as CubeType>::ExpandType, <T9 as CubeType>::ExpandType, <T10 as CubeType>::ExpandType, <T11 as CubeType>::ExpandType)

Source§

impl<T0: LaunchArg, T1: LaunchArg, T2: LaunchArg, T3: LaunchArg, T4: LaunchArg, T5: LaunchArg, T6: LaunchArg, T7: LaunchArg, T8: LaunchArg, T9: LaunchArg, T10: LaunchArg> LaunchArg for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)

Source§

type RuntimeArg<R: Runtime> = (<T0 as LaunchArg>::RuntimeArg<R>, <T1 as LaunchArg>::RuntimeArg<R>, <T2 as LaunchArg>::RuntimeArg<R>, <T3 as LaunchArg>::RuntimeArg<R>, <T4 as LaunchArg>::RuntimeArg<R>, <T5 as LaunchArg>::RuntimeArg<R>, <T6 as LaunchArg>::RuntimeArg<R>, <T7 as LaunchArg>::RuntimeArg<R>, <T8 as LaunchArg>::RuntimeArg<R>, <T9 as LaunchArg>::RuntimeArg<R>, <T10 as LaunchArg>::RuntimeArg<R>)

Source§

type CompilationArg = (<T0 as LaunchArg>::CompilationArg, <T1 as LaunchArg>::CompilationArg, <T2 as LaunchArg>::CompilationArg, <T3 as LaunchArg>::CompilationArg, <T4 as LaunchArg>::CompilationArg, <T5 as LaunchArg>::CompilationArg, <T6 as LaunchArg>::CompilationArg, <T7 as LaunchArg>::CompilationArg, <T8 as LaunchArg>::CompilationArg, <T9 as LaunchArg>::CompilationArg, <T10 as LaunchArg>::CompilationArg)

Source§

fn register<R: Runtime>( runtime_arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, ) -> Self::CompilationArg

Source§

fn expand( arg: &Self::CompilationArg, builder: &mut KernelBuilder, ) -> (<T0 as CubeType>::ExpandType, <T1 as CubeType>::ExpandType, <T2 as CubeType>::ExpandType, <T3 as CubeType>::ExpandType, <T4 as CubeType>::ExpandType, <T5 as CubeType>::ExpandType, <T6 as CubeType>::ExpandType, <T7 as CubeType>::ExpandType, <T8 as CubeType>::ExpandType, <T9 as CubeType>::ExpandType, <T10 as CubeType>::ExpandType)

Source§

impl<T0: LaunchArg, T1: LaunchArg, T2: LaunchArg, T3: LaunchArg, T4: LaunchArg, T5: LaunchArg, T6: LaunchArg, T7: LaunchArg, T8: LaunchArg, T9: LaunchArg> LaunchArg for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)

Source§

type RuntimeArg<R: Runtime> = (<T0 as LaunchArg>::RuntimeArg<R>, <T1 as LaunchArg>::RuntimeArg<R>, <T2 as LaunchArg>::RuntimeArg<R>, <T3 as LaunchArg>::RuntimeArg<R>, <T4 as LaunchArg>::RuntimeArg<R>, <T5 as LaunchArg>::RuntimeArg<R>, <T6 as LaunchArg>::RuntimeArg<R>, <T7 as LaunchArg>::RuntimeArg<R>, <T8 as LaunchArg>::RuntimeArg<R>, <T9 as LaunchArg>::RuntimeArg<R>)

Source§

type CompilationArg = (<T0 as LaunchArg>::CompilationArg, <T1 as LaunchArg>::CompilationArg, <T2 as LaunchArg>::CompilationArg, <T3 as LaunchArg>::CompilationArg, <T4 as LaunchArg>::CompilationArg, <T5 as LaunchArg>::CompilationArg, <T6 as LaunchArg>::CompilationArg, <T7 as LaunchArg>::CompilationArg, <T8 as LaunchArg>::CompilationArg, <T9 as LaunchArg>::CompilationArg)

Source§

fn register<R: Runtime>( runtime_arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, ) -> Self::CompilationArg

Source§

fn expand( arg: &Self::CompilationArg, builder: &mut KernelBuilder, ) -> (<T0 as CubeType>::ExpandType, <T1 as CubeType>::ExpandType, <T2 as CubeType>::ExpandType, <T3 as CubeType>::ExpandType, <T4 as CubeType>::ExpandType, <T5 as CubeType>::ExpandType, <T6 as CubeType>::ExpandType, <T7 as CubeType>::ExpandType, <T8 as CubeType>::ExpandType, <T9 as CubeType>::ExpandType)

Source§

impl<T0: LaunchArg, T1: LaunchArg, T2: LaunchArg, T3: LaunchArg, T4: LaunchArg, T5: LaunchArg, T6: LaunchArg, T7: LaunchArg, T8: LaunchArg> LaunchArg for (T0, T1, T2, T3, T4, T5, T6, T7, T8)

Source§

type RuntimeArg<R: Runtime> = (<T0 as LaunchArg>::RuntimeArg<R>, <T1 as LaunchArg>::RuntimeArg<R>, <T2 as LaunchArg>::RuntimeArg<R>, <T3 as LaunchArg>::RuntimeArg<R>, <T4 as LaunchArg>::RuntimeArg<R>, <T5 as LaunchArg>::RuntimeArg<R>, <T6 as LaunchArg>::RuntimeArg<R>, <T7 as LaunchArg>::RuntimeArg<R>, <T8 as LaunchArg>::RuntimeArg<R>)

Source§

type CompilationArg = (<T0 as LaunchArg>::CompilationArg, <T1 as LaunchArg>::CompilationArg, <T2 as LaunchArg>::CompilationArg, <T3 as LaunchArg>::CompilationArg, <T4 as LaunchArg>::CompilationArg, <T5 as LaunchArg>::CompilationArg, <T6 as LaunchArg>::CompilationArg, <T7 as LaunchArg>::CompilationArg, <T8 as LaunchArg>::CompilationArg)

Source§

fn register<R: Runtime>( runtime_arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, ) -> Self::CompilationArg

Source§

fn expand( arg: &Self::CompilationArg, builder: &mut KernelBuilder, ) -> (<T0 as CubeType>::ExpandType, <T1 as CubeType>::ExpandType, <T2 as CubeType>::ExpandType, <T3 as CubeType>::ExpandType, <T4 as CubeType>::ExpandType, <T5 as CubeType>::ExpandType, <T6 as CubeType>::ExpandType, <T7 as CubeType>::ExpandType, <T8 as CubeType>::ExpandType)

Source§

impl<T0: LaunchArg, T1: LaunchArg, T2: LaunchArg, T3: LaunchArg, T4: LaunchArg, T5: LaunchArg, T6: LaunchArg, T7: LaunchArg> LaunchArg for (T0, T1, T2, T3, T4, T5, T6, T7)

Source§

type RuntimeArg<R: Runtime> = (<T0 as LaunchArg>::RuntimeArg<R>, <T1 as LaunchArg>::RuntimeArg<R>, <T2 as LaunchArg>::RuntimeArg<R>, <T3 as LaunchArg>::RuntimeArg<R>, <T4 as LaunchArg>::RuntimeArg<R>, <T5 as LaunchArg>::RuntimeArg<R>, <T6 as LaunchArg>::RuntimeArg<R>, <T7 as LaunchArg>::RuntimeArg<R>)

Source§

type CompilationArg = (<T0 as LaunchArg>::CompilationArg, <T1 as LaunchArg>::CompilationArg, <T2 as LaunchArg>::CompilationArg, <T3 as LaunchArg>::CompilationArg, <T4 as LaunchArg>::CompilationArg, <T5 as LaunchArg>::CompilationArg, <T6 as LaunchArg>::CompilationArg, <T7 as LaunchArg>::CompilationArg)

Source§

fn register<R: Runtime>( runtime_arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, ) -> Self::CompilationArg

Source§

fn expand( arg: &Self::CompilationArg, builder: &mut KernelBuilder, ) -> (<T0 as CubeType>::ExpandType, <T1 as CubeType>::ExpandType, <T2 as CubeType>::ExpandType, <T3 as CubeType>::ExpandType, <T4 as CubeType>::ExpandType, <T5 as CubeType>::ExpandType, <T6 as CubeType>::ExpandType, <T7 as CubeType>::ExpandType)

Source§

impl<T0: LaunchArg, T1: LaunchArg, T2: LaunchArg, T3: LaunchArg, T4: LaunchArg, T5: LaunchArg, T6: LaunchArg> LaunchArg for (T0, T1, T2, T3, T4, T5, T6)

Source§

type RuntimeArg<R: Runtime> = (<T0 as LaunchArg>::RuntimeArg<R>, <T1 as LaunchArg>::RuntimeArg<R>, <T2 as LaunchArg>::RuntimeArg<R>, <T3 as LaunchArg>::RuntimeArg<R>, <T4 as LaunchArg>::RuntimeArg<R>, <T5 as LaunchArg>::RuntimeArg<R>, <T6 as LaunchArg>::RuntimeArg<R>)

Source§

type CompilationArg = (<T0 as LaunchArg>::CompilationArg, <T1 as LaunchArg>::CompilationArg, <T2 as LaunchArg>::CompilationArg, <T3 as LaunchArg>::CompilationArg, <T4 as LaunchArg>::CompilationArg, <T5 as LaunchArg>::CompilationArg, <T6 as LaunchArg>::CompilationArg)

Source§

fn register<R: Runtime>( runtime_arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, ) -> Self::CompilationArg

Source§

fn expand( arg: &Self::CompilationArg, builder: &mut KernelBuilder, ) -> (<T0 as CubeType>::ExpandType, <T1 as CubeType>::ExpandType, <T2 as CubeType>::ExpandType, <T3 as CubeType>::ExpandType, <T4 as CubeType>::ExpandType, <T5 as CubeType>::ExpandType, <T6 as CubeType>::ExpandType)

Source§

impl<T0: LaunchArg, T1: LaunchArg, T2: LaunchArg, T3: LaunchArg, T4: LaunchArg, T5: LaunchArg> LaunchArg for (T0, T1, T2, T3, T4, T5)

Source§

type RuntimeArg<R: Runtime> = (<T0 as LaunchArg>::RuntimeArg<R>, <T1 as LaunchArg>::RuntimeArg<R>, <T2 as LaunchArg>::RuntimeArg<R>, <T3 as LaunchArg>::RuntimeArg<R>, <T4 as LaunchArg>::RuntimeArg<R>, <T5 as LaunchArg>::RuntimeArg<R>)

Source§

type CompilationArg = (<T0 as LaunchArg>::CompilationArg, <T1 as LaunchArg>::CompilationArg, <T2 as LaunchArg>::CompilationArg, <T3 as LaunchArg>::CompilationArg, <T4 as LaunchArg>::CompilationArg, <T5 as LaunchArg>::CompilationArg)

Source§

fn register<R: Runtime>( runtime_arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, ) -> Self::CompilationArg

Source§

fn expand( arg: &Self::CompilationArg, builder: &mut KernelBuilder, ) -> (<T0 as CubeType>::ExpandType, <T1 as CubeType>::ExpandType, <T2 as CubeType>::ExpandType, <T3 as CubeType>::ExpandType, <T4 as CubeType>::ExpandType, <T5 as CubeType>::ExpandType)

Source§

impl<T0: LaunchArg, T1: LaunchArg, T2: LaunchArg, T3: LaunchArg, T4: LaunchArg> LaunchArg for (T0, T1, T2, T3, T4)

Source§

type RuntimeArg<R: Runtime> = (<T0 as LaunchArg>::RuntimeArg<R>, <T1 as LaunchArg>::RuntimeArg<R>, <T2 as LaunchArg>::RuntimeArg<R>, <T3 as LaunchArg>::RuntimeArg<R>, <T4 as LaunchArg>::RuntimeArg<R>)

Source§

type CompilationArg = (<T0 as LaunchArg>::CompilationArg, <T1 as LaunchArg>::CompilationArg, <T2 as LaunchArg>::CompilationArg, <T3 as LaunchArg>::CompilationArg, <T4 as LaunchArg>::CompilationArg)

Source§

fn register<R: Runtime>( runtime_arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, ) -> Self::CompilationArg

Source§

fn expand( arg: &Self::CompilationArg, builder: &mut KernelBuilder, ) -> (<T0 as CubeType>::ExpandType, <T1 as CubeType>::ExpandType, <T2 as CubeType>::ExpandType, <T3 as CubeType>::ExpandType, <T4 as CubeType>::ExpandType)

Source§

impl<T0: LaunchArg, T1: LaunchArg, T2: LaunchArg, T3: LaunchArg> LaunchArg for (T0, T1, T2, T3)

Source§

type RuntimeArg<R: Runtime> = (<T0 as LaunchArg>::RuntimeArg<R>, <T1 as LaunchArg>::RuntimeArg<R>, <T2 as LaunchArg>::RuntimeArg<R>, <T3 as LaunchArg>::RuntimeArg<R>)

Source§

type CompilationArg = (<T0 as LaunchArg>::CompilationArg, <T1 as LaunchArg>::CompilationArg, <T2 as LaunchArg>::CompilationArg, <T3 as LaunchArg>::CompilationArg)

Source§

fn register<R: Runtime>( runtime_arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, ) -> Self::CompilationArg

Source§

fn expand( arg: &Self::CompilationArg, builder: &mut KernelBuilder, ) -> (<T0 as CubeType>::ExpandType, <T1 as CubeType>::ExpandType, <T2 as CubeType>::ExpandType, <T3 as CubeType>::ExpandType)

Source§

impl<T0: LaunchArg, T1: LaunchArg, T2: LaunchArg> LaunchArg for (T0, T1, T2)

Source§

type RuntimeArg<R: Runtime> = (<T0 as LaunchArg>::RuntimeArg<R>, <T1 as LaunchArg>::RuntimeArg<R>, <T2 as LaunchArg>::RuntimeArg<R>)

Source§

type CompilationArg = (<T0 as LaunchArg>::CompilationArg, <T1 as LaunchArg>::CompilationArg, <T2 as LaunchArg>::CompilationArg)

Source§

fn register<R: Runtime>( runtime_arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, ) -> Self::CompilationArg

Source§

fn expand( arg: &Self::CompilationArg, builder: &mut KernelBuilder, ) -> (<T0 as CubeType>::ExpandType, <T1 as CubeType>::ExpandType, <T2 as CubeType>::ExpandType)

Source§

impl<T0: LaunchArg, T1: LaunchArg> LaunchArg for (T0, T1)

Source§

type RuntimeArg<R: Runtime> = (<T0 as LaunchArg>::RuntimeArg<R>, <T1 as LaunchArg>::RuntimeArg<R>)

Source§

type CompilationArg = (<T0 as LaunchArg>::CompilationArg, <T1 as LaunchArg>::CompilationArg)

Source§

fn register<R: Runtime>( runtime_arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, ) -> Self::CompilationArg

Source§

fn expand( arg: &Self::CompilationArg, builder: &mut KernelBuilder, ) -> (<T0 as CubeType>::ExpandType, <T1 as CubeType>::ExpandType)

Source§

impl<T0: LaunchArg> LaunchArg for (T0,)

Source§

type RuntimeArg<R: Runtime> = (<T0 as LaunchArg>::RuntimeArg<R>,)

Source§

type CompilationArg = (<T0 as LaunchArg>::CompilationArg,)

Source§

fn register<R: Runtime>( runtime_arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, ) -> Self::CompilationArg

Source§

fn expand( arg: &Self::CompilationArg, builder: &mut KernelBuilder, ) -> (<T0 as CubeType>::ExpandType,)

Source§

impl<T: LaunchArg + ?Sized + 'static> LaunchArg for &'static T

Source§

type RuntimeArg<R: Runtime> = <T as LaunchArg>::RuntimeArg<R>

Source§

type CompilationArg = <T as LaunchArg>::CompilationArg

Source§

fn register<R: Runtime>( arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, ) -> Self::CompilationArg

Source§

fn expand( arg: &Self::CompilationArg, builder: &mut KernelBuilder, ) -> <Self as CubeType>::ExpandType

Source§

impl<T: LaunchArg + ?Sized + 'static> LaunchArg for &'static mut T

Source§

type RuntimeArg<R: Runtime> = <T as LaunchArg>::RuntimeArg<R>

Source§

type CompilationArg = <T as LaunchArg>::CompilationArg

Source§

fn register<R: Runtime>( arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, ) -> Self::CompilationArg

Source§

fn expand( arg: &Self::CompilationArg, builder: &mut KernelBuilder, ) -> <Self as CubeType>::ExpandType

Source§

impl<T: LaunchArg + ?Sized + 'static> LaunchArg for *const T

Source§

type RuntimeArg<R: Runtime> = <T as LaunchArg>::RuntimeArg<R>

Source§

type CompilationArg = <T as LaunchArg>::CompilationArg

Source§

fn register<R: Runtime>( arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, ) -> Self::CompilationArg

Source§

fn expand( arg: &Self::CompilationArg, builder: &mut KernelBuilder, ) -> <Self as CubeType>::ExpandType

Source§

impl<T: LaunchArg + ?Sized + 'static> LaunchArg for *mut T

Source§

type RuntimeArg<R: Runtime> = <T as LaunchArg>::RuntimeArg<R>

Source§

type CompilationArg = <T as LaunchArg>::CompilationArg

Source§

fn register<R: Runtime>( arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, ) -> Self::CompilationArg

Source§

fn expand( arg: &Self::CompilationArg, builder: &mut KernelBuilder, ) -> <Self as CubeType>::ExpandType

Source§

impl<T: LaunchArg + CubeType + Default + IntoRuntime + 'static> LaunchArg for Option<T>

Source§

type RuntimeArg<R: Runtime> = OptionArgs<T, R>

Source§

type CompilationArg = OptionCompilationArg<T>

Source§

fn register<R: Runtime>( arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, ) -> Self::CompilationArg

Source§

fn expand( arg: &Self::CompilationArg, builder: &mut KernelBuilder, ) -> <Self as CubeType>::ExpandType

Implementors§

Source§

impl LaunchArg for Im2col

Source§

impl LaunchArg for Im2colWide

Source§

impl LaunchArg for InputScalar

Source§

impl LaunchArg for TensorMeta

Source§

impl LaunchArg for Tiled

Source§

impl<C: CubePrimitive> LaunchArg for OwnedTensor<C>

Source§

impl<C: CubePrimitive> LaunchArg for Tensor<C>

Source§

impl<C: LaunchArg + CubeType + 'static> LaunchArg for Sequence<C>

Source§

impl<E: CubePrimitive, K: TensorMapKind> LaunchArg for TensorMap<E, K>

Source§

impl<T: CubePrimitive> LaunchArg for TensorView<T>

Source§

impl<T: CubePrimitive> LaunchArg for TensorViewBuilder<T>
where Box<[T]>: LaunchArg,

Source§

impl<T: LaunchArg + 'static + CubeType> LaunchArg for ComptimeOption<T>