Skip to main content

HardwareCompatibilityLevel

Enum HardwareCompatibilityLevel 

Source
#[repr(i32)]
pub enum HardwareCompatibilityLevel { kNONE = 0, kAMPERE_PLUS = 1, kSAME_COMPUTE_CAPABILITY = 2, }
Expand description

! ! \enum HardwareCompatibilityLevel ! ! \brief Describes requirements of compatibility with GPU architectures other than that of the GPU on which the engine ! was built. ! ! \warning Note that compatibility with future hardware depends on CUDA forward compatibility support. !

Variants§

§

kNONE = 0

! Do not require hardware compatibility with GPU architectures other than that of the GPU on which the engine was ! built.

§

kAMPERE_PLUS = 1

! Require that the engine is compatible with Ampere and newer GPUs. This will limit the combined usage of driver ! reserved and backend kernel max shared memory to 48KiB, may reduce the number of available tactics for each ! layer, and may prevent some fusions from occurring. Thus this can decrease the performance, especially for tf32 ! models. ! This option will disable cuDNN, cuBLAS, and cuBLASLt as tactic sources. ! ! This option is only supported for engines built on NVIDIA Ampere and later GPUs. ! ! The driver reserved shared memory can be queried from cuDeviceGetAttribute(&reservedShmem, ! CU_DEVICE_ATTRIBUTE_RESERVED_SHARED_MEMORY_PER_BLOCK). !

§

kSAME_COMPUTE_CAPABILITY = 2

! Require that the engine is compatible with GPUs that have the same Compute Capability ! (https://developer.nvidia.com/cuda-gpus) as the one it was built on. This may decrease the performance compared ! to an engine with no compatibility. ! ! This option will disable cuDNN, cuBLAS, and cuBLASLt as tactic sources. ! ! This option is only supported for engines built on NVIDIA Turing and later GPUs. !

Trait Implementations§

Source§

impl Clone for HardwareCompatibilityLevel

Source§

fn clone(&self) -> HardwareCompatibilityLevel

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 ExternType for HardwareCompatibilityLevel

Source§

type Id = (n, v, i, n, f, e, r, _1, (), H, a, r, d, w, a, r, e, C, o, m, p, a, t, i, b, i, l, i, t, y, L, e, v, e, l)

A type-level representation of the type’s C++ namespace and type name. Read more
Source§

type Kind = Trivial

Source§

impl Hash for HardwareCompatibilityLevel

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 HardwareCompatibilityLevel

Source§

fn eq(&self, other: &HardwareCompatibilityLevel) -> 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 Eq for HardwareCompatibilityLevel

Source§

impl SharedPtrTarget for HardwareCompatibilityLevel

Source§

impl StructuralPartialEq for HardwareCompatibilityLevel

Source§

impl UniquePtrTarget for HardwareCompatibilityLevel

Source§

impl VectorElement for HardwareCompatibilityLevel

Source§

impl WeakPtrTarget for HardwareCompatibilityLevel

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.
Source§

impl<T> WithinBoxTrivial for T
where T: ExternType<Kind = Trivial> + Unpin,

Source§

fn within_box(self) -> Pin<Box<T>>

Source§

impl<T> WithinUniquePtrTrivial for T
where T: UniquePtrTarget + ExternType<Kind = Trivial> + Unpin,