pub struct PirlsLoopAdmission {
pub n: usize,
pub p: usize,
pub family: Option<PirlsLoopFamilyKind>,
pub curvature: PirlsLoopCurvatureKind,
pub gpu_available: bool,
}Expand description
Inputs to [should_use_gpu_pirls_loop]. Each field comes from data the
CPU PIRLS entry has on hand before it touches the eigendecomposition
engine, so the admission check itself is allocation-free and can short-
circuit before any heavy work happens.
Fields§
§n: usizeNumber of rows in the active (post-transform) design matrix.
p: usizeNumber of columns in the active design (i.e. p of Xᵀ X).
family: Option<PirlsLoopFamilyKind>Some(_) when the inner family maps onto one of the six JIT-cached
PirlsRowFamily variants; None for custom families that still
require Stage 6 Level B and have not yet been admitted here.
curvature: PirlsLoopCurvatureKindCurvature surface the inner loop will use; the GPU loop has Fisher + Observed kernels, anything else (e.g. expected-projection surrogates) is not admitted.
gpu_available: boolTrue when the CUDA runtime is initialised on this host (i.e.
GpuRuntime::global().is_some()).
Trait Implementations§
Source§impl Clone for PirlsLoopAdmission
impl Clone for PirlsLoopAdmission
Source§fn clone(&self) -> PirlsLoopAdmission
fn clone(&self) -> PirlsLoopAdmission
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for PirlsLoopAdmission
Auto Trait Implementations§
impl Freeze for PirlsLoopAdmission
impl RefUnwindSafe for PirlsLoopAdmission
impl Send for PirlsLoopAdmission
impl Sync for PirlsLoopAdmission
impl Unpin for PirlsLoopAdmission
impl UnsafeUnpin for PirlsLoopAdmission
impl UnwindSafe for PirlsLoopAdmission
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T, U> Imply<T> for U
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>
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>
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