Skip to main content

Function

Struct Function 

Source
pub struct Function { /* private fields */ }
Expand description

A kernel entry point — either inside a Module (classic Driver API) or materialized from a crate::library::Kernel (CUDA 12.0+ library API). Either way it keeps the parent alive via an Arc so the kernel stays valid for as long as any Function handle exists.

Implementations§

Source§

impl Function

Source

pub fn launch(&self) -> LaunchBuilder<'_>

Start a kernel-launch builder for this function.

Source§

impl Function

Source

pub fn as_raw(&self) -> CUfunction

Raw CUfunction. Use with care.

Source

pub fn module(&self) -> Option<&Module>

The Module this kernel lives in, if it was obtained through Module::get_function. Returns None for kernels materialized from a library::Kernel.

Source

pub fn get_attribute(&self, attribute: i32) -> Result<i32>

Query a kernel attribute (see baracuda_cuda_sys::types::CUfunction_attribute).

Source

pub fn name(&self) -> Result<String>

Return the demangled kernel name reported by the driver.

Source

pub fn param_info(&self, index: usize) -> Result<(usize, usize)>

Return (offset_in_bytes, size_in_bytes) for the index-th parameter in this function’s ABI signature.

Source

pub fn module_raw(&self) -> Result<CUmodule>

Return the raw CUmodule this function was loaded from, if any.

Source

pub fn set_attribute(&self, attribute: i32, value: i32) -> Result<()>

Set a kernel attribute. Only a subset is writable (notably MAX_DYNAMIC_SHARED_SIZE_BYTES and PREFERRED_SHARED_MEMORY_CARVEOUT).

Source

pub fn max_threads_per_block(&self) -> Result<i32>

Maximum threads per block this kernel supports on the current device.

Source

pub fn shared_size_bytes(&self) -> Result<i32>

Size of per-block statically-allocated shared memory (bytes).

Source

pub fn num_regs(&self) -> Result<i32>

Number of registers used per thread.

Source

pub fn local_size_bytes(&self) -> Result<i32>

Per-thread local-memory footprint (bytes).

Source

pub fn ptx_version(&self) -> Result<i32>

PTX version this kernel was compiled from, as major*10 + minor.

Source

pub fn binary_version(&self) -> Result<i32>

SM-architecture this kernel was compiled for, as major*10 + minor.

Trait Implementations§

Source§

impl Clone for Function

Source§

fn clone(&self) -> Function

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Function

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Send for Function

Source§

impl Sync for Function

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.