Skip to main content

Feature

Enum Feature 

Source
#[non_exhaustive]
pub enum Feature {
Show 13 variants StreamOrderedAllocator, VirtualMemoryManagement, LibraryManagement, GreenContexts, MulticastObjects, GraphConditionalNodes, GraphSwitchNodes, CudaLaunchKernelEx, NvJitLink, TensorMapObjects, RuntimeLogBuffer, CudaInitDevice, RuntimeGreenContexts,
}
Expand description

Named CUDA capabilities, each gated by the minimum toolkit/driver version in which they became available. Safe-API crates call supports before invoking the underlying symbol and surface Error::FeatureNotSupported when the installed driver is too old.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

StreamOrderedAllocator

Stream-ordered memory allocator (cuMemAllocAsync, pools). CUDA 11.2+.

§

VirtualMemoryManagement

Virtual memory management (cuMemCreate, cuMemMap, …). CUDA 10.2+.

§

LibraryManagement

Context-independent library loading (cuLibraryLoadData). CUDA 12.0+.

§

GreenContexts

Lightweight SM-partitioned contexts. CUDA 12.0+.

§

MulticastObjects

Multicast objects across multiple GPUs. CUDA 12.0+.

§

GraphConditionalNodes

Graph conditional (IF/WHILE) nodes. CUDA 12.3+.

§

GraphSwitchNodes

Graph SWITCH nodes. CUDA 12.8+.

§

CudaLaunchKernelEx

Extensible kernel launch (cuLaunchKernelEx, cluster dims). CUDA 12.0+.

nvJitLink modern JIT linker. CUDA 12.0+.

§

TensorMapObjects

Hopper-only TMA tensor map descriptors. CUDA 11.8+ (HW 9.0+).

§

RuntimeLogBuffer

Runtime-API log buffer (cudaLogs*). CUDA 12.0+.

§

CudaInitDevice

cudaInitDevice (initialize primary context without making it current). CUDA 12.0+.

§

RuntimeGreenContexts

Green-context-aware execution context APIs on the runtime. CUDA 13.1+.

Implementations§

Source§

impl Feature

Source

pub const fn required_version(self) -> CudaVersion

The minimum CUDA version at which the feature is available.

Trait Implementations§

Source§

impl Clone for Feature

Source§

fn clone(&self) -> Feature

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Feature

Source§

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

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

impl Hash for Feature

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for Feature

Source§

fn eq(&self, other: &Feature) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Feature

Source§

impl Eq for Feature

Source§

impl StructuralPartialEq for Feature

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