[][src]Trait accel::execution::Launchable3

pub trait Launchable3<'arg> {
    type Target1;
    type Target2;
    type Target3;
    fn get_kernel(&self) -> Result<Kernel>;

    fn launch<Arg1, Arg2, Arg3>(
        &self,
        grid: impl Into<Grid>,
        block: impl Into<Block>,
        (arg1, arg2, arg3): (Arg1, Arg2, Arg3)
    ) -> Result<()>
    where
        Arg1: DeviceSend<Target = Self::Target1>,
        Arg2: DeviceSend<Target = Self::Target2>,
        Arg3: DeviceSend<Target = Self::Target3>
, { ... }
fn launch_async<Arg1, Arg2, Arg3>(
        &self,
        grid: impl Into<Grid>,
        block: impl Into<Block>,
        (arg1, arg2, arg3): (Arg1, Arg2, Arg3)
    ) -> BoxFuture<'arg, Result<()>>
    where
        Arg1: DeviceSend<Target = Self::Target1> + 'arg,
        Arg2: DeviceSend<Target = Self::Target2> + 'arg,
        Arg3: DeviceSend<Target = Self::Target3> + 'arg
, { ... } }

Launchable Kernel with N-arguments

This is auto-generated by accel_derive::define_launchable! proc-macro. See module level document for detail.

Associated Types

type Target1

type Target2

type Target3

Loading content...

Required methods

fn get_kernel(&self) -> Result<Kernel>

Loading content...

Provided methods

fn launch<Arg1, Arg2, Arg3>(
    &self,
    grid: impl Into<Grid>,
    block: impl Into<Block>,
    (arg1, arg2, arg3): (Arg1, Arg2, Arg3)
) -> Result<()> where
    Arg1: DeviceSend<Target = Self::Target1>,
    Arg2: DeviceSend<Target = Self::Target2>,
    Arg3: DeviceSend<Target = Self::Target3>, 

fn launch_async<Arg1, Arg2, Arg3>(
    &self,
    grid: impl Into<Grid>,
    block: impl Into<Block>,
    (arg1, arg2, arg3): (Arg1, Arg2, Arg3)
) -> BoxFuture<'arg, Result<()>> where
    Arg1: DeviceSend<Target = Self::Target1> + 'arg,
    Arg2: DeviceSend<Target = Self::Target2> + 'arg,
    Arg3: DeviceSend<Target = Self::Target3> + 'arg, 

Loading content...

Implementors

Loading content...