#[repr(transparent)]pub struct MPSKernelOptions(pub NSUInteger);MPSCoreTypes only.Expand description
Tuple Fields§
§0: NSUIntegerImplementations§
Source§impl MPSKernelOptions
impl MPSKernelOptions
Sourcepub const SkipAPIValidation: Self
Available on crate feature MPSCore only.
pub const SkipAPIValidation: Self
MPSCore only.Most MPS functions will sanity check their arguments. This has a small but non-zero CPU cost. Setting the MPSKernelOptionsSkipAPIValidation will skip these checks. MPSKernelOptionsSkipAPIValidation does not skip checks for memory allocation failure. Caution: turning on MPSKernelOptionsSkipAPIValidation can result in undefined behavior if the requested operation can not be completed for some reason. Most error states will be passed through to Metal which may do nothing or abort the program if Metal API validation is turned on.
Sourcepub const AllowReducedPrecision: Self
Available on crate feature MPSCore only.
pub const AllowReducedPrecision: Self
MPSCore only.When possible, MPSKernels use a higher precision data representation internally than the destination storage format to avoid excessive accumulation of computational rounding error in the result. MPSKernelOptionsAllowReducedPrecision advises the MPSKernel that the destination storage format already has too much precision for what is ultimately required downstream, and the MPSKernel may use reduced precision internally when it feels that a less precise result would yield better performance. The expected performance win is often small, perhaps 0-20%. When enabled, the precision of the result may vary by hardware and operating system.
Sourcepub const DisableInternalTiling: Self
Available on crate feature MPSCore only.
pub const DisableInternalTiling: Self
MPSCore only.Some MPSKernels may automatically split up the work internally into multiple tiles. This improves performance on larger textures and reduces the amount of memory needed by MPS for temporary storage. However, if you are using your own tiling scheme to achieve similar results, your tile sizes and MPS’s choice of tile sizes may interfere with one another causing MPS to subdivide your tiles for its own use inefficiently. Pass MPSKernelOptionsDisableInternalTiling to force MPS to process your data tile as a single chunk.
Sourcepub const InsertDebugGroups: Self
Available on crate feature MPSCore only.
pub const InsertDebugGroups: Self
MPSCore only.Enabling this bit will cause various -encode… methods to call MTLCommandEncoder push/popDebugGroup. The debug string will be drawn from MPSKernel.label, if any or the name of the class otherwise.
Sourcepub const Verbose: Self
Available on crate feature MPSCore only.
pub const Verbose: Self
MPSCore only.Some parts of MPS can provide debug commentary and tuning advice when run. Setting this bit to 1 will cause the commentary to be emitted to stderr. Otherwise, the code is silent. This is especially useful for debugging MPSNNGraph. This option is on by default when the MPS_LOG_INFO environment variable is defined. For even more detailed output on a MPS object, you can use the po command in llvm with MPS objects:
llvm> po <MPS object pointer>Source§impl MPSKernelOptions
impl MPSKernelOptions
Sourcepub const fn empty() -> Self
Available on crate feature MPSCore only.
pub const fn empty() -> Self
MPSCore only.Get a flags value with all bits unset.
Sourcepub const fn all() -> Self
Available on crate feature MPSCore only.
pub const fn all() -> Self
MPSCore only.Get a flags value with all known bits set.
Sourcepub const fn bits(&self) -> NSUInteger
Available on crate feature MPSCore only.
pub const fn bits(&self) -> NSUInteger
MPSCore only.Get the underlying bits value.
The returned value is exactly the bits set in this flags value.
Sourcepub const fn from_bits(bits: NSUInteger) -> Option<Self>
Available on crate feature MPSCore only.
pub const fn from_bits(bits: NSUInteger) -> Option<Self>
MPSCore only.Convert from a bits value.
This method will return None if any unknown bits are set.
Sourcepub const fn from_bits_truncate(bits: NSUInteger) -> Self
Available on crate feature MPSCore only.
pub const fn from_bits_truncate(bits: NSUInteger) -> Self
MPSCore only.Convert from a bits value, unsetting any unknown bits.
Sourcepub const fn from_bits_retain(bits: NSUInteger) -> Self
Available on crate feature MPSCore only.
pub const fn from_bits_retain(bits: NSUInteger) -> Self
MPSCore only.Convert from a bits value exactly.
Sourcepub fn from_name(name: &str) -> Option<Self>
Available on crate feature MPSCore only.
pub fn from_name(name: &str) -> Option<Self>
MPSCore only.Get a flags value with the bits of a flag with the given name set.
This method will return None if name is empty or doesn’t
correspond to any named flag.
Sourcepub const fn is_empty(&self) -> bool
Available on crate feature MPSCore only.
pub const fn is_empty(&self) -> bool
MPSCore only.Whether all bits in this flags value are unset.
Sourcepub const fn is_all(&self) -> bool
Available on crate feature MPSCore only.
pub const fn is_all(&self) -> bool
MPSCore only.Whether all known bits in this flags value are set.
Sourcepub const fn intersects(&self, other: Self) -> bool
Available on crate feature MPSCore only.
pub const fn intersects(&self, other: Self) -> bool
MPSCore only.Whether any set bits in a source flags value are also set in a target flags value.
Sourcepub const fn contains(&self, other: Self) -> bool
Available on crate feature MPSCore only.
pub const fn contains(&self, other: Self) -> bool
MPSCore only.Whether all set bits in a source flags value are also set in a target flags value.
Sourcepub fn insert(&mut self, other: Self)
Available on crate feature MPSCore only.
pub fn insert(&mut self, other: Self)
MPSCore only.The bitwise or (|) of the bits in two flags values.
Sourcepub fn remove(&mut self, other: Self)
Available on crate feature MPSCore only.
pub fn remove(&mut self, other: Self)
MPSCore only.The intersection of a source flags value with the complement of a target flags
value (&!).
This method is not equivalent to self & !other when other has unknown bits set.
remove won’t truncate other, but the ! operator will.
Sourcepub fn toggle(&mut self, other: Self)
Available on crate feature MPSCore only.
pub fn toggle(&mut self, other: Self)
MPSCore only.The bitwise exclusive-or (^) of the bits in two flags values.
Sourcepub fn set(&mut self, other: Self, value: bool)
Available on crate feature MPSCore only.
pub fn set(&mut self, other: Self, value: bool)
MPSCore only.Call insert when value is true or remove when value is false.
Sourcepub const fn intersection(self, other: Self) -> Self
Available on crate feature MPSCore only.
pub const fn intersection(self, other: Self) -> Self
MPSCore only.The bitwise and (&) of the bits in two flags values.
Sourcepub const fn union(self, other: Self) -> Self
Available on crate feature MPSCore only.
pub const fn union(self, other: Self) -> Self
MPSCore only.The bitwise or (|) of the bits in two flags values.
Sourcepub const fn difference(self, other: Self) -> Self
Available on crate feature MPSCore only.
pub const fn difference(self, other: Self) -> Self
MPSCore only.The intersection of a source flags value with the complement of a target flags
value (&!).
This method is not equivalent to self & !other when other has unknown bits set.
difference won’t truncate other, but the ! operator will.
Sourcepub const fn symmetric_difference(self, other: Self) -> Self
Available on crate feature MPSCore only.
pub const fn symmetric_difference(self, other: Self) -> Self
MPSCore only.The bitwise exclusive-or (^) of the bits in two flags values.
Sourcepub const fn complement(self) -> Self
Available on crate feature MPSCore only.
pub const fn complement(self) -> Self
MPSCore only.The bitwise negation (!) of the bits in a flags value, truncating the result.
Source§impl MPSKernelOptions
impl MPSKernelOptions
Sourcepub const fn iter(&self) -> Iter<MPSKernelOptions>
Available on crate feature MPSCore only.
pub const fn iter(&self) -> Iter<MPSKernelOptions>
MPSCore only.Yield a set of contained flags values.
Each yielded flags value will correspond to a defined named flag. Any unknown bits will be yielded together as a final flags value.
Sourcepub const fn iter_names(&self) -> IterNames<MPSKernelOptions>
Available on crate feature MPSCore only.
pub const fn iter_names(&self) -> IterNames<MPSKernelOptions>
MPSCore only.Yield a set of contained named flags values.
This method is like iter, except only yields bits in contained named flags.
Any unknown bits, or bits not corresponding to a contained flag will not be yielded.
Trait Implementations§
Source§impl Binary for MPSKernelOptions
Available on crate feature MPSCore only.
impl Binary for MPSKernelOptions
MPSCore only.Source§impl BitAnd for MPSKernelOptions
Available on crate feature MPSCore only.
impl BitAnd for MPSKernelOptions
MPSCore only.Source§impl BitAndAssign for MPSKernelOptions
Available on crate feature MPSCore only.
impl BitAndAssign for MPSKernelOptions
MPSCore only.Source§fn bitand_assign(&mut self, other: Self)
fn bitand_assign(&mut self, other: Self)
The bitwise and (&) of the bits in two flags values.
Source§impl BitOr for MPSKernelOptions
Available on crate feature MPSCore only.
impl BitOr for MPSKernelOptions
MPSCore only.Source§fn bitor(self, other: MPSKernelOptions) -> Self
fn bitor(self, other: MPSKernelOptions) -> Self
The bitwise or (|) of the bits in two flags values.
Source§type Output = MPSKernelOptions
type Output = MPSKernelOptions
| operator.Source§impl BitOrAssign for MPSKernelOptions
Available on crate feature MPSCore only.
impl BitOrAssign for MPSKernelOptions
MPSCore only.Source§fn bitor_assign(&mut self, other: Self)
fn bitor_assign(&mut self, other: Self)
The bitwise or (|) of the bits in two flags values.
Source§impl BitXor for MPSKernelOptions
Available on crate feature MPSCore only.
impl BitXor for MPSKernelOptions
MPSCore only.Source§impl BitXorAssign for MPSKernelOptions
Available on crate feature MPSCore only.
impl BitXorAssign for MPSKernelOptions
MPSCore only.Source§fn bitxor_assign(&mut self, other: Self)
fn bitxor_assign(&mut self, other: Self)
The bitwise exclusive-or (^) of the bits in two flags values.
Source§impl Clone for MPSKernelOptions
Available on crate feature MPSCore only.
impl Clone for MPSKernelOptions
MPSCore only.Source§fn clone(&self) -> MPSKernelOptions
fn clone(&self) -> MPSKernelOptions
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for MPSKernelOptions
Available on crate feature MPSCore only.
impl Debug for MPSKernelOptions
MPSCore only.Source§impl Encode for MPSKernelOptions
Available on crate feature MPSCore only.
impl Encode for MPSKernelOptions
MPSCore only.Source§impl Extend<MPSKernelOptions> for MPSKernelOptions
Available on crate feature MPSCore only.
impl Extend<MPSKernelOptions> for MPSKernelOptions
MPSCore only.Source§fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)
fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)
The bitwise or (|) of the bits in each flags value.
Source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one)Source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one)Source§impl Flags for MPSKernelOptions
Available on crate feature MPSCore only.
impl Flags for MPSKernelOptions
MPSCore only.Source§const FLAGS: &'static [Flag<MPSKernelOptions>]
const FLAGS: &'static [Flag<MPSKernelOptions>]
Source§fn bits(&self) -> NSUInteger
fn bits(&self) -> NSUInteger
Source§fn from_bits_retain(bits: NSUInteger) -> MPSKernelOptions
fn from_bits_retain(bits: NSUInteger) -> MPSKernelOptions
Source§fn contains_unknown_bits(&self) -> bool
fn contains_unknown_bits(&self) -> bool
true if any unknown bits are set.Source§fn from_bits_truncate(bits: Self::Bits) -> Self
fn from_bits_truncate(bits: Self::Bits) -> Self
Source§fn from_name(name: &str) -> Option<Self>
fn from_name(name: &str) -> Option<Self>
Source§fn iter_names(&self) -> IterNames<Self>
fn iter_names(&self) -> IterNames<Self>
Source§fn intersects(&self, other: Self) -> boolwhere
Self: Sized,
fn intersects(&self, other: Self) -> boolwhere
Self: Sized,
Source§fn contains(&self, other: Self) -> boolwhere
Self: Sized,
fn contains(&self, other: Self) -> boolwhere
Self: Sized,
Source§fn insert(&mut self, other: Self)where
Self: Sized,
fn insert(&mut self, other: Self)where
Self: Sized,
|) of the bits in two flags values.Source§fn remove(&mut self, other: Self)where
Self: Sized,
fn remove(&mut self, other: Self)where
Self: Sized,
&!). Read moreSource§fn toggle(&mut self, other: Self)where
Self: Sized,
fn toggle(&mut self, other: Self)where
Self: Sized,
^) of the bits in two flags values.Source§fn intersection(self, other: Self) -> Self
fn intersection(self, other: Self) -> Self
&) of the bits in two flags values.Source§fn difference(self, other: Self) -> Self
fn difference(self, other: Self) -> Self
&!). Read moreSource§fn symmetric_difference(self, other: Self) -> Self
fn symmetric_difference(self, other: Self) -> Self
^) of the bits in two flags values.Source§fn complement(self) -> Self
fn complement(self) -> Self
!) of the bits in a flags value, truncating the result.Source§impl FromIterator<MPSKernelOptions> for MPSKernelOptions
Available on crate feature MPSCore only.
impl FromIterator<MPSKernelOptions> for MPSKernelOptions
MPSCore only.Source§fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self
fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self
The bitwise or (|) of the bits in each flags value.
Source§impl Hash for MPSKernelOptions
Available on crate feature MPSCore only.
impl Hash for MPSKernelOptions
MPSCore only.Source§impl IntoIterator for MPSKernelOptions
Available on crate feature MPSCore only.
impl IntoIterator for MPSKernelOptions
MPSCore only.Source§impl LowerHex for MPSKernelOptions
Available on crate feature MPSCore only.
impl LowerHex for MPSKernelOptions
MPSCore only.Source§impl Not for MPSKernelOptions
Available on crate feature MPSCore only.
impl Not for MPSKernelOptions
MPSCore only.Source§impl Octal for MPSKernelOptions
Available on crate feature MPSCore only.
impl Octal for MPSKernelOptions
MPSCore only.Source§impl Ord for MPSKernelOptions
Available on crate feature MPSCore only.
impl Ord for MPSKernelOptions
MPSCore only.Source§fn cmp(&self, other: &MPSKernelOptions) -> Ordering
fn cmp(&self, other: &MPSKernelOptions) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for MPSKernelOptions
Available on crate feature MPSCore only.
impl PartialEq for MPSKernelOptions
MPSCore only.Source§impl PartialOrd for MPSKernelOptions
Available on crate feature MPSCore only.
impl PartialOrd for MPSKernelOptions
MPSCore only.Source§impl RefEncode for MPSKernelOptions
Available on crate feature MPSCore only.
impl RefEncode for MPSKernelOptions
MPSCore only.Source§const ENCODING_REF: Encoding
const ENCODING_REF: Encoding
Source§impl Sub for MPSKernelOptions
Available on crate feature MPSCore only.
impl Sub for MPSKernelOptions
MPSCore only.Source§fn sub(self, other: Self) -> Self
fn sub(self, other: Self) -> Self
The intersection of a source flags value with the complement of a target flags value (&!).
This method is not equivalent to self & !other when other has unknown bits set.
difference won’t truncate other, but the ! operator will.
Source§type Output = MPSKernelOptions
type Output = MPSKernelOptions
- operator.Source§impl SubAssign for MPSKernelOptions
Available on crate feature MPSCore only.
impl SubAssign for MPSKernelOptions
MPSCore only.Source§fn sub_assign(&mut self, other: Self)
fn sub_assign(&mut self, other: Self)
The intersection of a source flags value with the complement of a target flags value (&!).
This method is not equivalent to self & !other when other has unknown bits set.
difference won’t truncate other, but the ! operator will.
Source§impl UpperHex for MPSKernelOptions
Available on crate feature MPSCore only.
impl UpperHex for MPSKernelOptions
MPSCore only.impl Copy for MPSKernelOptions
MPSCore only.impl Eq for MPSKernelOptions
MPSCore only.impl StructuralPartialEq for MPSKernelOptions
MPSCore only.