Skip to main content

SmVersion

Enum SmVersion 

Source
pub enum SmVersion {
    Sm75,
    Sm80,
    Sm86,
    Sm89,
    Sm90,
    Sm100,
    Sm120,
}
Expand description

GPU architecture version for occupancy estimation.

This is a local copy that avoids a dependency on oxicuda-ptx. Each variant encodes the SM architecture parameters needed for occupancy calculations (max warps per SM, register file size, etc.).

Variants§

§

Sm75

Turing (compute capability 7.5).

§

Sm80

Ampere (compute capability 8.0).

§

Sm86

Ampere GA10x (compute capability 8.6).

§

Sm89

Ada Lovelace (compute capability 8.9).

§

Sm90

Hopper (compute capability 9.0).

§

Sm100

Blackwell (compute capability 10.0).

§

Sm120

Blackwell B200 (compute capability 12.0).

Implementations§

Source§

impl SmVersion

Source

pub const fn max_warps_per_sm(self) -> u32

Maximum number of warps that can reside on a single SM.

Source

pub const fn max_blocks_per_sm(self) -> u32

Maximum number of thread blocks that can reside on a single SM.

Source

pub const fn registers_per_sm(self) -> u32

Total number of 32-bit registers available per SM.

Source

pub const fn max_registers_per_thread(self) -> u32

Maximum number of registers a single thread can use.

Source

pub const fn max_shared_mem_per_sm(self) -> u32

Maximum shared memory per SM in bytes.

Source

pub const fn warp_size(self) -> u32

Warp size (always 32 for NVIDIA GPUs).

Source

pub const fn register_alloc_granularity(self) -> u32

Register allocation granularity (in warps).

Registers are allocated to warps in chunks of this many registers per thread, rounded up to the nearest multiple.

Source

pub const fn shared_mem_alloc_granularity(self) -> u32

Shared memory allocation granularity in bytes.

Trait Implementations§

Source§

impl Clone for SmVersion

Source§

fn clone(&self) -> SmVersion

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 SmVersion

Source§

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

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

impl Display for SmVersion

Source§

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

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

impl Hash for SmVersion

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 SmVersion

Source§

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

Source§

impl Eq for SmVersion

Source§

impl StructuralPartialEq for SmVersion

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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. 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> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more