Struct cudarc::driver::safe::CudaFunction
source · pub struct CudaFunction { /* private fields */ }
Expand description
Wrapper around sys::CUfunction. Used by crate::driver::LaunchAsync.
Implementations§
source§impl CudaFunction
impl CudaFunction
pub fn occupancy_available_dynamic_smem_per_block( &self, num_blocks: u32, block_size: u32, ) -> Result<usize, DriverError>
pub fn occupancy_max_active_blocks_per_multiprocessor( &self, block_size: u32, dynamic_smem_size: usize, flags: Option<CUoccupancy_flags_enum>, ) -> Result<u32, DriverError>
pub fn occupancy_max_active_clusters( &self, config: LaunchConfig, shared_mem_size: u32, ) -> Result<u32, DriverError>
pub fn occupancy_max_potential_block_size( &self, block_size_to_dynamic_smem_size: extern "C" fn(block_size: c_int) -> usize, dynamic_smem_size: usize, block_size_limit: u32, flags: Option<CUoccupancy_flags_enum>, ) -> Result<(u32, u32), DriverError>
pub fn occupancy_max_potential_cluster_size( &self, config: LaunchConfig, shared_mem_size: u32, ) -> Result<u32, DriverError>
sourcepub fn set_attribute(
&self,
attribute: CUfunction_attribute_enum,
value: i32,
) -> Result<(), DriverError>
pub fn set_attribute( &self, attribute: CUfunction_attribute_enum, value: i32, ) -> Result<(), DriverError>
Set the value of a specific attribute of this CudaFunction.
Trait Implementations§
source§impl Clone for CudaFunction
impl Clone for CudaFunction
source§fn clone(&self) -> CudaFunction
fn clone(&self) -> CudaFunction
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for CudaFunction
impl Debug for CudaFunction
source§impl LaunchAsync<&mut [*mut c_void]> for CudaFunction
impl LaunchAsync<&mut [*mut c_void]> for CudaFunction
source§unsafe fn launch(
self,
cfg: LaunchConfig,
args: &mut [*mut c_void],
) -> Result<(), DriverError>
unsafe fn launch( self, cfg: LaunchConfig, args: &mut [*mut c_void], ) -> Result<(), DriverError>
source§unsafe fn launch_on_stream(
self,
stream: &CudaStream,
cfg: LaunchConfig,
args: &mut [*mut c_void],
) -> Result<(), DriverError>
unsafe fn launch_on_stream( self, stream: &CudaStream, cfg: LaunchConfig, args: &mut [*mut c_void], ) -> Result<(), DriverError>
Launch the function on a stream concurrent to the device’s default
work stream. Read more
source§unsafe fn launch_cooperative(
self,
cfg: LaunchConfig,
args: &mut [*mut c_void],
) -> Result<(), DriverError>
unsafe fn launch_cooperative( self, cfg: LaunchConfig, args: &mut [*mut c_void], ) -> Result<(), DriverError>
Launch the cooperative function on a stream concurrent to the device’s default
work stream. Read more
source§impl LaunchAsync<&mut Vec<*mut c_void>> for CudaFunction
impl LaunchAsync<&mut Vec<*mut c_void>> for CudaFunction
source§unsafe fn launch(
self,
cfg: LaunchConfig,
args: &mut Vec<*mut c_void>,
) -> Result<(), DriverError>
unsafe fn launch( self, cfg: LaunchConfig, args: &mut Vec<*mut c_void>, ) -> Result<(), DriverError>
source§unsafe fn launch_on_stream(
self,
stream: &CudaStream,
cfg: LaunchConfig,
args: &mut Vec<*mut c_void>,
) -> Result<(), DriverError>
unsafe fn launch_on_stream( self, stream: &CudaStream, cfg: LaunchConfig, args: &mut Vec<*mut c_void>, ) -> Result<(), DriverError>
Launch the function on a stream concurrent to the device’s default
work stream. Read more
source§unsafe fn launch_cooperative(
self,
cfg: LaunchConfig,
args: &mut Vec<*mut c_void>,
) -> Result<(), DriverError>
unsafe fn launch_cooperative( self, cfg: LaunchConfig, args: &mut Vec<*mut c_void>, ) -> Result<(), DriverError>
Launch the cooperative function on a stream concurrent to the device’s default
work stream. Read more
source§impl<A: DeviceRepr> LaunchAsync<(A,)> for CudaFunction
impl<A: DeviceRepr> LaunchAsync<(A,)> for CudaFunction
source§unsafe fn launch(self, cfg: LaunchConfig, args: (A,)) -> Result<(), DriverError>
unsafe fn launch(self, cfg: LaunchConfig, args: (A,)) -> Result<(), DriverError>
source§unsafe fn launch_cooperative(
self,
cfg: LaunchConfig,
args: (A,),
) -> Result<(), DriverError>
unsafe fn launch_cooperative( self, cfg: LaunchConfig, args: (A,), ) -> Result<(), DriverError>
Launch the cooperative function on a stream concurrent to the device’s default
work stream. Read more
source§unsafe fn launch_on_stream(
self,
stream: &CudaStream,
cfg: LaunchConfig,
args: (A,),
) -> Result<(), DriverError>
unsafe fn launch_on_stream( self, stream: &CudaStream, cfg: LaunchConfig, args: (A,), ) -> Result<(), DriverError>
Launch the function on a stream concurrent to the device’s default
work stream. Read more
source§impl<A: DeviceRepr, B: DeviceRepr> LaunchAsync<(A, B)> for CudaFunction
impl<A: DeviceRepr, B: DeviceRepr> LaunchAsync<(A, B)> for CudaFunction
source§unsafe fn launch(
self,
cfg: LaunchConfig,
args: (A, B),
) -> Result<(), DriverError>
unsafe fn launch( self, cfg: LaunchConfig, args: (A, B), ) -> Result<(), DriverError>
source§unsafe fn launch_cooperative(
self,
cfg: LaunchConfig,
args: (A, B),
) -> Result<(), DriverError>
unsafe fn launch_cooperative( self, cfg: LaunchConfig, args: (A, B), ) -> Result<(), DriverError>
Launch the cooperative function on a stream concurrent to the device’s default
work stream. Read more
source§unsafe fn launch_on_stream(
self,
stream: &CudaStream,
cfg: LaunchConfig,
args: (A, B),
) -> Result<(), DriverError>
unsafe fn launch_on_stream( self, stream: &CudaStream, cfg: LaunchConfig, args: (A, B), ) -> Result<(), DriverError>
Launch the function on a stream concurrent to the device’s default
work stream. Read more
source§impl<A: DeviceRepr, B: DeviceRepr, C: DeviceRepr> LaunchAsync<(A, B, C)> for CudaFunction
impl<A: DeviceRepr, B: DeviceRepr, C: DeviceRepr> LaunchAsync<(A, B, C)> for CudaFunction
source§unsafe fn launch(
self,
cfg: LaunchConfig,
args: (A, B, C),
) -> Result<(), DriverError>
unsafe fn launch( self, cfg: LaunchConfig, args: (A, B, C), ) -> Result<(), DriverError>
source§unsafe fn launch_cooperative(
self,
cfg: LaunchConfig,
args: (A, B, C),
) -> Result<(), DriverError>
unsafe fn launch_cooperative( self, cfg: LaunchConfig, args: (A, B, C), ) -> Result<(), DriverError>
Launch the cooperative function on a stream concurrent to the device’s default
work stream. Read more
source§unsafe fn launch_on_stream(
self,
stream: &CudaStream,
cfg: LaunchConfig,
args: (A, B, C),
) -> Result<(), DriverError>
unsafe fn launch_on_stream( self, stream: &CudaStream, cfg: LaunchConfig, args: (A, B, C), ) -> Result<(), DriverError>
Launch the function on a stream concurrent to the device’s default
work stream. Read more
source§impl<A: DeviceRepr, B: DeviceRepr, C: DeviceRepr, D: DeviceRepr> LaunchAsync<(A, B, C, D)> for CudaFunction
impl<A: DeviceRepr, B: DeviceRepr, C: DeviceRepr, D: DeviceRepr> LaunchAsync<(A, B, C, D)> for CudaFunction
source§unsafe fn launch(
self,
cfg: LaunchConfig,
args: (A, B, C, D),
) -> Result<(), DriverError>
unsafe fn launch( self, cfg: LaunchConfig, args: (A, B, C, D), ) -> Result<(), DriverError>
source§unsafe fn launch_cooperative(
self,
cfg: LaunchConfig,
args: (A, B, C, D),
) -> Result<(), DriverError>
unsafe fn launch_cooperative( self, cfg: LaunchConfig, args: (A, B, C, D), ) -> Result<(), DriverError>
Launch the cooperative function on a stream concurrent to the device’s default
work stream. Read more
source§unsafe fn launch_on_stream(
self,
stream: &CudaStream,
cfg: LaunchConfig,
args: (A, B, C, D),
) -> Result<(), DriverError>
unsafe fn launch_on_stream( self, stream: &CudaStream, cfg: LaunchConfig, args: (A, B, C, D), ) -> Result<(), DriverError>
Launch the function on a stream concurrent to the device’s default
work stream. Read more
source§impl<A: DeviceRepr, B: DeviceRepr, C: DeviceRepr, D: DeviceRepr, E: DeviceRepr> LaunchAsync<(A, B, C, D, E)> for CudaFunction
impl<A: DeviceRepr, B: DeviceRepr, C: DeviceRepr, D: DeviceRepr, E: DeviceRepr> LaunchAsync<(A, B, C, D, E)> for CudaFunction
source§unsafe fn launch(
self,
cfg: LaunchConfig,
args: (A, B, C, D, E),
) -> Result<(), DriverError>
unsafe fn launch( self, cfg: LaunchConfig, args: (A, B, C, D, E), ) -> Result<(), DriverError>
source§unsafe fn launch_cooperative(
self,
cfg: LaunchConfig,
args: (A, B, C, D, E),
) -> Result<(), DriverError>
unsafe fn launch_cooperative( self, cfg: LaunchConfig, args: (A, B, C, D, E), ) -> Result<(), DriverError>
Launch the cooperative function on a stream concurrent to the device’s default
work stream. Read more
source§unsafe fn launch_on_stream(
self,
stream: &CudaStream,
cfg: LaunchConfig,
args: (A, B, C, D, E),
) -> Result<(), DriverError>
unsafe fn launch_on_stream( self, stream: &CudaStream, cfg: LaunchConfig, args: (A, B, C, D, E), ) -> Result<(), DriverError>
Launch the function on a stream concurrent to the device’s default
work stream. Read more
source§impl<A: DeviceRepr, B: DeviceRepr, C: DeviceRepr, D: DeviceRepr, E: DeviceRepr, F: DeviceRepr> LaunchAsync<(A, B, C, D, E, F)> for CudaFunction
impl<A: DeviceRepr, B: DeviceRepr, C: DeviceRepr, D: DeviceRepr, E: DeviceRepr, F: DeviceRepr> LaunchAsync<(A, B, C, D, E, F)> for CudaFunction
source§unsafe fn launch(
self,
cfg: LaunchConfig,
args: (A, B, C, D, E, F),
) -> Result<(), DriverError>
unsafe fn launch( self, cfg: LaunchConfig, args: (A, B, C, D, E, F), ) -> Result<(), DriverError>
source§unsafe fn launch_cooperative(
self,
cfg: LaunchConfig,
args: (A, B, C, D, E, F),
) -> Result<(), DriverError>
unsafe fn launch_cooperative( self, cfg: LaunchConfig, args: (A, B, C, D, E, F), ) -> Result<(), DriverError>
Launch the cooperative function on a stream concurrent to the device’s default
work stream. Read more
source§unsafe fn launch_on_stream(
self,
stream: &CudaStream,
cfg: LaunchConfig,
args: (A, B, C, D, E, F),
) -> Result<(), DriverError>
unsafe fn launch_on_stream( self, stream: &CudaStream, cfg: LaunchConfig, args: (A, B, C, D, E, F), ) -> Result<(), DriverError>
Launch the function on a stream concurrent to the device’s default
work stream. Read more
source§impl<A: DeviceRepr, B: DeviceRepr, C: DeviceRepr, D: DeviceRepr, E: DeviceRepr, F: DeviceRepr, G: DeviceRepr> LaunchAsync<(A, B, C, D, E, F, G)> for CudaFunction
impl<A: DeviceRepr, B: DeviceRepr, C: DeviceRepr, D: DeviceRepr, E: DeviceRepr, F: DeviceRepr, G: DeviceRepr> LaunchAsync<(A, B, C, D, E, F, G)> for CudaFunction
source§unsafe fn launch(
self,
cfg: LaunchConfig,
args: (A, B, C, D, E, F, G),
) -> Result<(), DriverError>
unsafe fn launch( self, cfg: LaunchConfig, args: (A, B, C, D, E, F, G), ) -> Result<(), DriverError>
source§unsafe fn launch_cooperative(
self,
cfg: LaunchConfig,
args: (A, B, C, D, E, F, G),
) -> Result<(), DriverError>
unsafe fn launch_cooperative( self, cfg: LaunchConfig, args: (A, B, C, D, E, F, G), ) -> Result<(), DriverError>
Launch the cooperative function on a stream concurrent to the device’s default
work stream. Read more
source§unsafe fn launch_on_stream(
self,
stream: &CudaStream,
cfg: LaunchConfig,
args: (A, B, C, D, E, F, G),
) -> Result<(), DriverError>
unsafe fn launch_on_stream( self, stream: &CudaStream, cfg: LaunchConfig, args: (A, B, C, D, E, F, G), ) -> Result<(), DriverError>
Launch the function on a stream concurrent to the device’s default
work stream. Read more
source§impl<A: DeviceRepr, B: DeviceRepr, C: DeviceRepr, D: DeviceRepr, E: DeviceRepr, F: DeviceRepr, G: DeviceRepr, H: DeviceRepr> LaunchAsync<(A, B, C, D, E, F, G, H)> for CudaFunction
impl<A: DeviceRepr, B: DeviceRepr, C: DeviceRepr, D: DeviceRepr, E: DeviceRepr, F: DeviceRepr, G: DeviceRepr, H: DeviceRepr> LaunchAsync<(A, B, C, D, E, F, G, H)> for CudaFunction
source§unsafe fn launch(
self,
cfg: LaunchConfig,
args: (A, B, C, D, E, F, G, H),
) -> Result<(), DriverError>
unsafe fn launch( self, cfg: LaunchConfig, args: (A, B, C, D, E, F, G, H), ) -> Result<(), DriverError>
source§unsafe fn launch_cooperative(
self,
cfg: LaunchConfig,
args: (A, B, C, D, E, F, G, H),
) -> Result<(), DriverError>
unsafe fn launch_cooperative( self, cfg: LaunchConfig, args: (A, B, C, D, E, F, G, H), ) -> Result<(), DriverError>
Launch the cooperative function on a stream concurrent to the device’s default
work stream. Read more
source§unsafe fn launch_on_stream(
self,
stream: &CudaStream,
cfg: LaunchConfig,
args: (A, B, C, D, E, F, G, H),
) -> Result<(), DriverError>
unsafe fn launch_on_stream( self, stream: &CudaStream, cfg: LaunchConfig, args: (A, B, C, D, E, F, G, H), ) -> Result<(), DriverError>
Launch the function on a stream concurrent to the device’s default
work stream. Read more
source§impl<A: DeviceRepr, B: DeviceRepr, C: DeviceRepr, D: DeviceRepr, E: DeviceRepr, F: DeviceRepr, G: DeviceRepr, H: DeviceRepr, I: DeviceRepr> LaunchAsync<(A, B, C, D, E, F, G, H, I)> for CudaFunction
impl<A: DeviceRepr, B: DeviceRepr, C: DeviceRepr, D: DeviceRepr, E: DeviceRepr, F: DeviceRepr, G: DeviceRepr, H: DeviceRepr, I: DeviceRepr> LaunchAsync<(A, B, C, D, E, F, G, H, I)> for CudaFunction
source§unsafe fn launch(
self,
cfg: LaunchConfig,
args: (A, B, C, D, E, F, G, H, I),
) -> Result<(), DriverError>
unsafe fn launch( self, cfg: LaunchConfig, args: (A, B, C, D, E, F, G, H, I), ) -> Result<(), DriverError>
source§unsafe fn launch_cooperative(
self,
cfg: LaunchConfig,
args: (A, B, C, D, E, F, G, H, I),
) -> Result<(), DriverError>
unsafe fn launch_cooperative( self, cfg: LaunchConfig, args: (A, B, C, D, E, F, G, H, I), ) -> Result<(), DriverError>
Launch the cooperative function on a stream concurrent to the device’s default
work stream. Read more
source§unsafe fn launch_on_stream(
self,
stream: &CudaStream,
cfg: LaunchConfig,
args: (A, B, C, D, E, F, G, H, I),
) -> Result<(), DriverError>
unsafe fn launch_on_stream( self, stream: &CudaStream, cfg: LaunchConfig, args: (A, B, C, D, E, F, G, H, I), ) -> Result<(), DriverError>
Launch the function on a stream concurrent to the device’s default
work stream. Read more
source§impl<A: DeviceRepr, B: DeviceRepr, C: DeviceRepr, D: DeviceRepr, E: DeviceRepr, F: DeviceRepr, G: DeviceRepr, H: DeviceRepr, I: DeviceRepr, J: DeviceRepr> LaunchAsync<(A, B, C, D, E, F, G, H, I, J)> for CudaFunction
impl<A: DeviceRepr, B: DeviceRepr, C: DeviceRepr, D: DeviceRepr, E: DeviceRepr, F: DeviceRepr, G: DeviceRepr, H: DeviceRepr, I: DeviceRepr, J: DeviceRepr> LaunchAsync<(A, B, C, D, E, F, G, H, I, J)> for CudaFunction
source§unsafe fn launch(
self,
cfg: LaunchConfig,
args: (A, B, C, D, E, F, G, H, I, J),
) -> Result<(), DriverError>
unsafe fn launch( self, cfg: LaunchConfig, args: (A, B, C, D, E, F, G, H, I, J), ) -> Result<(), DriverError>
source§unsafe fn launch_cooperative(
self,
cfg: LaunchConfig,
args: (A, B, C, D, E, F, G, H, I, J),
) -> Result<(), DriverError>
unsafe fn launch_cooperative( self, cfg: LaunchConfig, args: (A, B, C, D, E, F, G, H, I, J), ) -> Result<(), DriverError>
Launch the cooperative function on a stream concurrent to the device’s default
work stream. Read more
source§unsafe fn launch_on_stream(
self,
stream: &CudaStream,
cfg: LaunchConfig,
args: (A, B, C, D, E, F, G, H, I, J),
) -> Result<(), DriverError>
unsafe fn launch_on_stream( self, stream: &CudaStream, cfg: LaunchConfig, args: (A, B, C, D, E, F, G, H, I, J), ) -> Result<(), DriverError>
Launch the function on a stream concurrent to the device’s default
work stream. Read more
source§impl<A: DeviceRepr, B: DeviceRepr, C: DeviceRepr, D: DeviceRepr, E: DeviceRepr, F: DeviceRepr, G: DeviceRepr, H: DeviceRepr, I: DeviceRepr, J: DeviceRepr, K: DeviceRepr> LaunchAsync<(A, B, C, D, E, F, G, H, I, J, K)> for CudaFunction
impl<A: DeviceRepr, B: DeviceRepr, C: DeviceRepr, D: DeviceRepr, E: DeviceRepr, F: DeviceRepr, G: DeviceRepr, H: DeviceRepr, I: DeviceRepr, J: DeviceRepr, K: DeviceRepr> LaunchAsync<(A, B, C, D, E, F, G, H, I, J, K)> for CudaFunction
source§unsafe fn launch(
self,
cfg: LaunchConfig,
args: (A, B, C, D, E, F, G, H, I, J, K),
) -> Result<(), DriverError>
unsafe fn launch( self, cfg: LaunchConfig, args: (A, B, C, D, E, F, G, H, I, J, K), ) -> Result<(), DriverError>
source§unsafe fn launch_cooperative(
self,
cfg: LaunchConfig,
args: (A, B, C, D, E, F, G, H, I, J, K),
) -> Result<(), DriverError>
unsafe fn launch_cooperative( self, cfg: LaunchConfig, args: (A, B, C, D, E, F, G, H, I, J, K), ) -> Result<(), DriverError>
Launch the cooperative function on a stream concurrent to the device’s default
work stream. Read more
source§unsafe fn launch_on_stream(
self,
stream: &CudaStream,
cfg: LaunchConfig,
args: (A, B, C, D, E, F, G, H, I, J, K),
) -> Result<(), DriverError>
unsafe fn launch_on_stream( self, stream: &CudaStream, cfg: LaunchConfig, args: (A, B, C, D, E, F, G, H, I, J, K), ) -> Result<(), DriverError>
Launch the function on a stream concurrent to the device’s default
work stream. Read more
source§impl<A: DeviceRepr, B: DeviceRepr, C: DeviceRepr, D: DeviceRepr, E: DeviceRepr, F: DeviceRepr, G: DeviceRepr, H: DeviceRepr, I: DeviceRepr, J: DeviceRepr, K: DeviceRepr, L: DeviceRepr> LaunchAsync<(A, B, C, D, E, F, G, H, I, J, K, L)> for CudaFunction
impl<A: DeviceRepr, B: DeviceRepr, C: DeviceRepr, D: DeviceRepr, E: DeviceRepr, F: DeviceRepr, G: DeviceRepr, H: DeviceRepr, I: DeviceRepr, J: DeviceRepr, K: DeviceRepr, L: DeviceRepr> LaunchAsync<(A, B, C, D, E, F, G, H, I, J, K, L)> for CudaFunction
source§unsafe fn launch(
self,
cfg: LaunchConfig,
args: (A, B, C, D, E, F, G, H, I, J, K, L),
) -> Result<(), DriverError>
unsafe fn launch( self, cfg: LaunchConfig, args: (A, B, C, D, E, F, G, H, I, J, K, L), ) -> Result<(), DriverError>
source§unsafe fn launch_cooperative(
self,
cfg: LaunchConfig,
args: (A, B, C, D, E, F, G, H, I, J, K, L),
) -> Result<(), DriverError>
unsafe fn launch_cooperative( self, cfg: LaunchConfig, args: (A, B, C, D, E, F, G, H, I, J, K, L), ) -> Result<(), DriverError>
Launch the cooperative function on a stream concurrent to the device’s default
work stream. Read more
source§unsafe fn launch_on_stream(
self,
stream: &CudaStream,
cfg: LaunchConfig,
args: (A, B, C, D, E, F, G, H, I, J, K, L),
) -> Result<(), DriverError>
unsafe fn launch_on_stream( self, stream: &CudaStream, cfg: LaunchConfig, args: (A, B, C, D, E, F, G, H, I, J, K, L), ) -> Result<(), DriverError>
Launch the function on a stream concurrent to the device’s default
work stream. Read more
impl Send for CudaFunction
impl Sync for CudaFunction
Auto Trait Implementations§
impl Freeze for CudaFunction
impl RefUnwindSafe for CudaFunction
impl Unpin for CudaFunction
impl UnwindSafe for CudaFunction
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)