pub struct SaePcgOperandReport {
pub framed: bool,
pub beta_dim: usize,
pub a_phi_pairs: usize,
pub a_phi_bytes: usize,
pub local_jac_elems: usize,
pub local_jac_bytes: usize,
pub smooth_bytes: usize,
pub sparse_g_bytes: usize,
pub row_htbeta_bytes: usize,
pub row_htbeta_rows: usize,
pub frame_blocks_bytes: usize,
pub total_bytes: usize,
}Expand description
#1017/#2230 residency measurement: the host→device operand bytes that
flatten_device_sae_data / flatten_device_sae_frame_data re-upload on EVERY
matrix-free PCG solve (hence on every LM ridge-ladder escalation trial),
broken out by category. Lets the a100 job confirm which sub-lane a real fit
takes — legacy sparse (⊗ I_p a_phi/local_jac) vs framed dense (per-row
row_htbeta at the factored border) — and size the transfer a base-resident
frame would remove. Pure host accounting, no device contact, so it is
CPU-CI testable without CUDA.
Fields§
§framed: booltrue when the framed dense per-row cross path is active (frame present).
beta_dim: usizeBorder width k (= beta_dim).
a_phi_pairs: usizePer-row support a_phi: total (row, weight) pairs and their bytes.
a_phi_bytes: usize§local_jac_elems: usizePer-row local Jacobians local_jac: total f64 and their bytes.
local_jac_bytes: usize§smooth_bytes: usizeSmooth penalty factors λ S_k: bytes.
sparse_g_bytes: usizeSparse G co-occurrence blocks (legacy ⊗ I_p): bytes.
row_htbeta_bytes: usizeFramed per-row dense cross row_htbeta: bytes (0 on the legacy path). This
is the 34MiB-vs-31GiB discriminator the #2230 design report flagged: a full
factored-border dense cross balloons here, a legacy fit leaves it at 0.
row_htbeta_rows: usizeNumber of rows carrying a non-empty framed row_htbeta slab.
frame_blocks_bytes: usizeFramed G_{ij} ⊗ W_{ij} co-occurrence factors: bytes (0 on legacy).
total_bytes: usizeSum of the data-category bytes above — the per-solve re-upload total.
Trait Implementations§
Source§impl Clone for SaePcgOperandReport
impl Clone for SaePcgOperandReport
Source§fn clone(&self) -> SaePcgOperandReport
fn clone(&self) -> SaePcgOperandReport
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SaePcgOperandReport
impl Debug for SaePcgOperandReport
Source§impl Default for SaePcgOperandReport
impl Default for SaePcgOperandReport
Source§fn default() -> SaePcgOperandReport
fn default() -> SaePcgOperandReport
Auto Trait Implementations§
impl Freeze for SaePcgOperandReport
impl RefUnwindSafe for SaePcgOperandReport
impl Send for SaePcgOperandReport
impl Sync for SaePcgOperandReport
impl Unpin for SaePcgOperandReport
impl UnsafeUnpin for SaePcgOperandReport
impl UnwindSafe for SaePcgOperandReport
Blanket Implementations§
impl<T> Allocation for T
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.