pub struct CpuFeatures {
pub has_avx2: bool,
pub has_avx512: bool,
pub has_neon: bool,
pub has_fma: bool,
pub has_sse42: bool,
pub logical_cores: usize,
pub physical_cores: usize,
pub arch: CpuArch,
pub cache_line_bytes: usize,
}Expand description
Detected CPU features.
Fields§
§has_avx2: bool§has_avx512: bool§has_neon: bool§has_fma: bool§has_sse42: bool§logical_cores: usize§physical_cores: usize§arch: CpuArch§cache_line_bytes: usizeImplementations§
Source§impl CpuFeatures
impl CpuFeatures
Sourcepub fn detect() -> Self
pub fn detect() -> Self
Detect features at runtime via cfg and std::thread::available_parallelism.
Sourcepub fn best_simd_tier(&self) -> SimdTier
pub fn best_simd_tier(&self) -> SimdTier
Best SIMD tier available on this CPU.
Sourcepub fn recommended_threads(&self) -> usize
pub fn recommended_threads(&self) -> usize
Recommended thread count for compute-bound work.
Uses physical cores to avoid contention on hyper-threaded siblings, but guarantees at least 1.
Trait Implementations§
Source§impl Clone for CpuFeatures
impl Clone for CpuFeatures
Source§fn clone(&self) -> CpuFeatures
fn clone(&self) -> CpuFeatures
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for CpuFeatures
impl Debug for CpuFeatures
Source§impl PartialEq for CpuFeatures
impl PartialEq for CpuFeatures
Source§fn eq(&self, other: &CpuFeatures) -> bool
fn eq(&self, other: &CpuFeatures) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for CpuFeatures
Auto Trait Implementations§
impl Freeze for CpuFeatures
impl RefUnwindSafe for CpuFeatures
impl Send for CpuFeatures
impl Sync for CpuFeatures
impl Unpin for CpuFeatures
impl UnsafeUnpin for CpuFeatures
impl UnwindSafe for CpuFeatures
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more