Struct Function

Source
pub struct Function<'a> { /* private fields */ }
Expand description

Handle to a global kernel function.

Implementations§

Source§

impl<'a> Function<'a>

Source

pub fn get_attribute(&self, attr: FunctionAttribute) -> CudaResult<i32>

Returns information about a function.

§Examples
use rustacuda::function::FunctionAttribute;
let function = module.get_function(&name)?;
let shared_memory = function.get_attribute(FunctionAttribute::SharedMemorySizeBytes)?;
println!("This function uses {} bytes of shared memory", shared_memory);
Source

pub fn set_cache_config(&mut self, config: CacheConfig) -> CudaResult<()>

Sets the preferred cache configuration for this function.

On devices where L1 cache and shared memory use the same hardware resources, this sets the preferred cache configuration for this function. This is only a preference. The driver will use the requested configuration if possible, but is free to choose a different configuration if required to execute the function. This setting will override the context-wide setting.

This setting does nothing on devices where the size of the L1 cache and shared memory are fixed.

§Example
use rustacuda::context::CacheConfig;
let mut function = module.get_function(&name)?;
function.set_cache_config(CacheConfig::PreferL1)?;
Source

pub fn set_shared_memory_config( &mut self, cfg: SharedMemoryConfig, ) -> CudaResult<()>

Sets the preferred shared memory configuration for this function.

On devices with configurable shared memory banks, this function will set this function’s shared memory bank size which is used for subsequent launches of this function. If not set, the context-wide setting will be used instead.

§Example
use rustacuda::context::SharedMemoryConfig;
let mut function = module.get_function(&name)?;
function.set_shared_memory_config(SharedMemoryConfig::EightByteBankSize)?;

Trait Implementations§

Source§

impl<'a> Debug for Function<'a>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for Function<'a>

§

impl<'a> RefUnwindSafe for Function<'a>

§

impl<'a> !Send for Function<'a>

§

impl<'a> !Sync for Function<'a>

§

impl<'a> Unpin for Function<'a>

§

impl<'a> UnwindSafe for Function<'a>

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> 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, 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.