pub struct KernelLauncher<R: Runtime> {
pub settings: KernelSettings,
/* private fields */
}
Expand description
Prepare a kernel for launch.
Fields§
§settings: KernelSettings
Implementations§
Source§impl<R: Runtime> KernelLauncher<R>
impl<R: Runtime> KernelLauncher<R>
Sourcepub fn register_tensor(&mut self, tensor: &TensorArg<'_, R>)
pub fn register_tensor(&mut self, tensor: &TensorArg<'_, R>)
Register a tensor to be launched.
Sourcepub fn register_tensor_map(&mut self, tensor: &TensorMapArg<'_, R>)
pub fn register_tensor_map(&mut self, tensor: &TensorMapArg<'_, R>)
Register a mapped tensor to be launched.
Sourcepub fn register_array(&mut self, array: &ArrayArg<'_, R>)
pub fn register_array(&mut self, array: &ArrayArg<'_, R>)
Register an input array to be launched.
Sourcepub fn register_u8(&mut self, scalar: u8)
pub fn register_u8(&mut self, scalar: u8)
Register a u8 scalar to be launched.
Sourcepub fn register_u16(&mut self, scalar: u16)
pub fn register_u16(&mut self, scalar: u16)
Register a u16 scalar to be launched.
Sourcepub fn register_u32(&mut self, scalar: u32)
pub fn register_u32(&mut self, scalar: u32)
Register a u32 scalar to be launched.
Sourcepub fn register_u64(&mut self, scalar: u64)
pub fn register_u64(&mut self, scalar: u64)
Register a u64 scalar to be launched.
Sourcepub fn register_i8(&mut self, scalar: i8)
pub fn register_i8(&mut self, scalar: i8)
Register a i8 scalar to be launched.
Sourcepub fn register_i16(&mut self, scalar: i16)
pub fn register_i16(&mut self, scalar: i16)
Register a i16 scalar to be launched.
Sourcepub fn register_i32(&mut self, scalar: i32)
pub fn register_i32(&mut self, scalar: i32)
Register a i32 scalar to be launched.
Sourcepub fn register_i64(&mut self, scalar: i64)
pub fn register_i64(&mut self, scalar: i64)
Register a i64 scalar to be launched.
Sourcepub fn register_bf16(&mut self, scalar: bf16)
pub fn register_bf16(&mut self, scalar: bf16)
Register a bf16 scalar to be launched.
Sourcepub fn register_f16(&mut self, scalar: f16)
pub fn register_f16(&mut self, scalar: f16)
Register a f16 scalar to be launched.
Sourcepub fn register_f32(&mut self, scalar: f32)
pub fn register_f32(&mut self, scalar: f32)
Register a f32 scalar to be launched.
Sourcepub fn register_f64(&mut self, scalar: f64)
pub fn register_f64(&mut self, scalar: f64)
Register a f64 scalar to be launched.
Sourcepub fn launch<K: Kernel>(
self,
cube_count: CubeCount,
kernel: K,
client: &ComputeClient<R::Server, R::Channel>,
)
pub fn launch<K: Kernel>( self, cube_count: CubeCount, kernel: K, client: &ComputeClient<R::Server, R::Channel>, )
Launch the kernel.
Sourcepub unsafe fn launch_unchecked<K: Kernel>(
self,
cube_count: CubeCount,
kernel: K,
client: &ComputeClient<R::Server, R::Channel>,
)
pub unsafe fn launch_unchecked<K: Kernel>( self, cube_count: CubeCount, kernel: K, client: &ComputeClient<R::Server, R::Channel>, )
Launch the kernel without check bounds.
§Safety
The kernel must not:
- Contain any out of bounds reads or writes. Doing so is immediate UB.
- Contain any loops that never terminate. These may be optimized away entirely or cause other unpredictable behaviour.
Trait Implementations§
Auto Trait Implementations§
impl<R> Freeze for KernelLauncher<R>
impl<R> RefUnwindSafe for KernelLauncher<R>where
R: RefUnwindSafe,
impl<R> Send for KernelLauncher<R>
impl<R> Sync for KernelLauncher<R>
impl<R> Unpin for KernelLauncher<R>where
R: Unpin,
impl<R> UnwindSafe for KernelLauncher<R>where
R: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more