Struct nvml_wrapper::bitmasks::device::ThrottleReasons
source · [−]pub struct ThrottleReasons { /* private fields */ }Expand description
Flags used to specify why a GPU is throttling.
Implementations
sourceimpl ThrottleReasons
impl ThrottleReasons
sourcepub const GPU_IDLE: Self = Self{bits: nvmlClocksThrottleReasonGpuIdle as u64,}
pub const GPU_IDLE: Self = Self{bits: nvmlClocksThrottleReasonGpuIdle as u64,}
Nothing is running on the GPU.
This limiter may be removed in a future release.
sourcepub const APPLICATIONS_CLOCKS_SETTING: Self = Self{bits: nvmlClocksThrottleReasonApplicationsClocksSetting as u64,}
pub const APPLICATIONS_CLOCKS_SETTING: Self = Self{bits: nvmlClocksThrottleReasonApplicationsClocksSetting as u64,}
GPU clocks are limited by the current applications clocks setting.
pub const USER_DEFINED_CLOCKS: Self = Self{bits: nvmlClocksThrottleReasonUserDefinedClocks as u64,}
Renamed to APPLICATIONS_CLOCKS_SETTING.
sourcepub const SW_POWER_CAP: Self = Self{bits: nvmlClocksThrottleReasonSwPowerCap as u64,}
pub const SW_POWER_CAP: Self = Self{bits: nvmlClocksThrottleReasonSwPowerCap as u64,}
Software power scaling algorithm is reducing clocks.
sourcepub const HW_SLOWDOWN: Self = Self{bits: nvmlClocksThrottleReasonHwSlowdown as u64,}
pub const HW_SLOWDOWN: Self = Self{bits: nvmlClocksThrottleReasonHwSlowdown as u64,}
Hardware slowdown (reducing the core clocks by a factor of 2 or more) is engaged.
This is an indicator of:
- Temperature being too high
- External Power Brake Asseration being triggered (e.g. by the system power supply)
- Power draw being too high and Fast Trigger protection reducing the clocks
This may also be reported during powerstate or clock change, behavior that may be removed in a later release.
sourcepub const SYNC_BOOST: Self = Self{bits: nvmlClocksThrottleReasonSyncBoost as u64,}
pub const SYNC_BOOST: Self = Self{bits: nvmlClocksThrottleReasonSyncBoost as u64,}
This GPU is being throttled by another GPU in its sync boost group.
Sync boost groups can be used to maximize performance per watt. All GPUs in a sync boost group will boost to the minimum possible clocks across the entire group. Look at the throttle reasons for other GPUs in the system to find out why this GPU is being held at lower clocks.
sourcepub const SW_THERMAL_SLOWDOWN: Self = Self{bits: nvmlClocksThrottleReasonSwThermalSlowdown as u64,}
pub const SW_THERMAL_SLOWDOWN: Self = Self{bits: nvmlClocksThrottleReasonSwThermalSlowdown as u64,}
Software thermal slowdown.
This is an indicator of one or more of the following:
- The current GPU temperature is above the max GPU operating temperature
- The current memory temperature is above the max memory operating temperature
sourcepub const HW_THERMAL_SLOWDOWN: Self = Self{bits: nvmlClocksThrottleReasonHwThermalSlowdown as u64,}
pub const HW_THERMAL_SLOWDOWN: Self = Self{bits: nvmlClocksThrottleReasonHwThermalSlowdown as u64,}
Hardware thermal slowdown is engaged, reducing core clocks by 2x or more.
This indicates that the temperature of the GPU is too high.
sourcepub const HW_POWER_BRAKE_SLOWDOWN: Self = Self{bits: nvmlClocksThrottleReasonHwPowerBrakeSlowdown as u64,}
pub const HW_POWER_BRAKE_SLOWDOWN: Self = Self{bits: nvmlClocksThrottleReasonHwPowerBrakeSlowdown as u64,}
Hardware power brake slowdown is engaged, reducing core clocks by 2x or more.
This indicates that an external power brake assertion is being triggered, such as by the system power supply.
sourcepub const DISPLAY_CLOCK_SETTING: Self = Self{bits: nvmlClocksThrottleReasonDisplayClockSetting as u64,}
pub const DISPLAY_CLOCK_SETTING: Self = Self{bits: nvmlClocksThrottleReasonDisplayClockSetting as u64,}
GPU clocks are limited by the current setting of display clocks.
sourcepub const NONE: Self = Self{bits: nvmlClocksThrottleReasonNone as u64,}
pub const NONE: Self = Self{bits: nvmlClocksThrottleReasonNone as u64,}
Clocks are as high as possible and are not being throttled.
sourcepub const fn from_bits(bits: u64) -> Option<Self>
pub const fn from_bits(bits: u64) -> Option<Self>
Convert from underlying bit representation, unless that representation contains bits that do not correspond to a flag.
sourcepub const fn from_bits_truncate(bits: u64) -> Self
pub const fn from_bits_truncate(bits: u64) -> Self
Convert from underlying bit representation, dropping any bits that do not correspond to flags.
sourcepub const unsafe fn from_bits_unchecked(bits: u64) -> Self
pub const unsafe fn from_bits_unchecked(bits: u64) -> Self
Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).
Safety
The caller of the bitflags! macro can chose to allow or
disallow extra bits for their bitflags type.
The caller of from_bits_unchecked() has to ensure that
all bits correspond to a defined flag or that extra bits
are valid for this bitflags type.
sourcepub const fn intersects(&self, other: Self) -> bool
pub const fn intersects(&self, other: Self) -> bool
Returns true if there are flags common to both self and other.
sourcepub const fn contains(&self, other: Self) -> bool
pub const fn contains(&self, other: Self) -> bool
Returns true if all of the flags in other are contained within self.
sourcepub fn set(&mut self, other: Self, value: bool)
pub fn set(&mut self, other: Self, value: bool)
Inserts or removes the specified flags depending on the passed value.
sourcepub const fn intersection(self, other: Self) -> Self
pub const fn intersection(self, other: Self) -> Self
Returns the intersection between the flags in self and
other.
Specifically, the returned set contains only the flags which are
present in both self and other.
This is equivalent to using the & operator (e.g.
ops::BitAnd), as in flags & other.
sourcepub const fn union(self, other: Self) -> Self
pub const fn union(self, other: Self) -> Self
Returns the union of between the flags in self and other.
Specifically, the returned set contains all flags which are
present in either self or other, including any which are
present in both (see Self::symmetric_difference if that
is undesirable).
This is equivalent to using the | operator (e.g.
ops::BitOr), as in flags | other.
sourcepub const fn difference(self, other: Self) -> Self
pub const fn difference(self, other: Self) -> Self
Returns the difference between the flags in self and other.
Specifically, the returned set contains all flags present in
self, except for the ones present in other.
It is also conceptually equivalent to the “bit-clear” operation:
flags & !other (and this syntax is also supported).
This is equivalent to using the - operator (e.g.
ops::Sub), as in flags - other.
sourcepub const fn symmetric_difference(self, other: Self) -> Self
pub const fn symmetric_difference(self, other: Self) -> Self
Returns the symmetric difference between the flags
in self and other.
Specifically, the returned set contains the flags present which
are present in self or other, but that are not present in
both. Equivalently, it contains the flags present in exactly
one of the sets self and other.
This is equivalent to using the ^ operator (e.g.
ops::BitXor), as in flags ^ other.
sourcepub const fn complement(self) -> Self
pub const fn complement(self) -> Self
Returns the complement of this set of flags.
Specifically, the returned set contains all the flags which are
not set in self, but which are allowed for this type.
Alternatively, it can be thought of as the set difference
between Self::all() and self (e.g. Self::all() - self)
This is equivalent to using the ! operator (e.g.
ops::Not), as in !flags.
Trait Implementations
sourceimpl Binary for ThrottleReasons
impl Binary for ThrottleReasons
sourceimpl BitAnd<ThrottleReasons> for ThrottleReasons
impl BitAnd<ThrottleReasons> for ThrottleReasons
type Output = ThrottleReasons
type Output = ThrottleReasons
The resulting type after applying the & operator.
sourceimpl BitAndAssign<ThrottleReasons> for ThrottleReasons
impl BitAndAssign<ThrottleReasons> for ThrottleReasons
sourcefn bitand_assign(&mut self, other: Self)
fn bitand_assign(&mut self, other: Self)
Disables all flags disabled in the set.
sourceimpl BitOr<ThrottleReasons> for ThrottleReasons
impl BitOr<ThrottleReasons> for ThrottleReasons
sourcefn bitor(self, other: ThrottleReasons) -> Self
fn bitor(self, other: ThrottleReasons) -> Self
Returns the union of the two sets of flags.
type Output = ThrottleReasons
type Output = ThrottleReasons
The resulting type after applying the | operator.
sourceimpl BitOrAssign<ThrottleReasons> for ThrottleReasons
impl BitOrAssign<ThrottleReasons> for ThrottleReasons
sourcefn bitor_assign(&mut self, other: Self)
fn bitor_assign(&mut self, other: Self)
Adds the set of flags.
sourceimpl BitXor<ThrottleReasons> for ThrottleReasons
impl BitXor<ThrottleReasons> for ThrottleReasons
sourcefn bitxor(self, other: Self) -> Self
fn bitxor(self, other: Self) -> Self
Returns the left flags, but with all the right flags toggled.
type Output = ThrottleReasons
type Output = ThrottleReasons
The resulting type after applying the ^ operator.
sourceimpl BitXorAssign<ThrottleReasons> for ThrottleReasons
impl BitXorAssign<ThrottleReasons> for ThrottleReasons
sourcefn bitxor_assign(&mut self, other: Self)
fn bitxor_assign(&mut self, other: Self)
Toggles the set of flags.
sourceimpl Clone for ThrottleReasons
impl Clone for ThrottleReasons
sourcefn clone(&self) -> ThrottleReasons
fn clone(&self) -> ThrottleReasons
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more
sourceimpl Debug for ThrottleReasons
impl Debug for ThrottleReasons
sourceimpl Extend<ThrottleReasons> for ThrottleReasons
impl Extend<ThrottleReasons> for ThrottleReasons
sourcefn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)
fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)
Extends a collection with the contents of an iterator. Read more
sourcefn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one)Extends a collection with exactly one element.
sourcefn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one)Reserves capacity in a collection for the given number of additional elements. Read more
sourceimpl FromIterator<ThrottleReasons> for ThrottleReasons
impl FromIterator<ThrottleReasons> for ThrottleReasons
sourcefn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self
fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self
Creates a value from an iterator. Read more
sourceimpl Hash for ThrottleReasons
impl Hash for ThrottleReasons
sourceimpl LowerHex for ThrottleReasons
impl LowerHex for ThrottleReasons
sourceimpl Not for ThrottleReasons
impl Not for ThrottleReasons
type Output = ThrottleReasons
type Output = ThrottleReasons
The resulting type after applying the ! operator.
sourceimpl Octal for ThrottleReasons
impl Octal for ThrottleReasons
sourceimpl Ord for ThrottleReasons
impl Ord for ThrottleReasons
sourceimpl PartialEq<ThrottleReasons> for ThrottleReasons
impl PartialEq<ThrottleReasons> for ThrottleReasons
sourcefn eq(&self, other: &ThrottleReasons) -> bool
fn eq(&self, other: &ThrottleReasons) -> bool
This method tests for self and other values to be equal, and is used
by ==. Read more
sourcefn ne(&self, other: &ThrottleReasons) -> bool
fn ne(&self, other: &ThrottleReasons) -> bool
This method tests for !=.
sourceimpl PartialOrd<ThrottleReasons> for ThrottleReasons
impl PartialOrd<ThrottleReasons> for ThrottleReasons
sourcefn partial_cmp(&self, other: &ThrottleReasons) -> Option<Ordering>
fn partial_cmp(&self, other: &ThrottleReasons) -> Option<Ordering>
This method returns an ordering between self and other values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self and other) and is used by the <=
operator. Read more
sourceimpl Sub<ThrottleReasons> for ThrottleReasons
impl Sub<ThrottleReasons> for ThrottleReasons
type Output = ThrottleReasons
type Output = ThrottleReasons
The resulting type after applying the - operator.
sourceimpl SubAssign<ThrottleReasons> for ThrottleReasons
impl SubAssign<ThrottleReasons> for ThrottleReasons
sourcefn sub_assign(&mut self, other: Self)
fn sub_assign(&mut self, other: Self)
Disables all flags enabled in the set.
sourceimpl UpperHex for ThrottleReasons
impl UpperHex for ThrottleReasons
impl Copy for ThrottleReasons
impl Eq for ThrottleReasons
impl StructuralEq for ThrottleReasons
impl StructuralPartialEq for ThrottleReasons
Auto Trait Implementations
impl RefUnwindSafe for ThrottleReasons
impl Send for ThrottleReasons
impl Sync for ThrottleReasons
impl Unpin for ThrottleReasons
impl UnwindSafe for ThrottleReasons
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into)Uses borrowed data to replace owned data, usually by cloning. Read more