pub struct AMXTimingConfig {
pub matrix_sizes: Vec<usize>,
pub interleave_memory_ops: bool,
}Expand description
Configuration for AMX timing entropy collection.
§Example
// Use defaults (recommended)
let config = AMXTimingConfig::default();
// Or customize
let config = AMXTimingConfig {
matrix_sizes: vec![32, 128], // only two sizes
interleave_memory_ops: true,
};Fields§
§matrix_sizes: Vec<usize>Matrix dimensions to cycle through for SGEMM dispatches.
Different sizes stress different AMX pipeline configurations:
- Small (16-32): register-bound, fast dispatch
- Medium (48-64): L1-cache-bound
- Large (96-128): L2/SLC-bound, higher memory bandwidth pressure
Must be non-empty. Each value is used as both M, N, and K dimensions.
Default: [16, 32, 48, 64, 96, 128]
interleave_memory_ops: boolInterleave volatile memory reads/writes between AMX dispatches.
This thrashes a 64KB scratch buffer between matrix operations, disrupting the AMX pipeline state and preventing it from settling into a steady-state pattern. Increases min-entropy at the cost of slightly higher CPU usage.
Default: true
Trait Implementations§
Source§impl Clone for AMXTimingConfig
impl Clone for AMXTimingConfig
Source§fn clone(&self) -> AMXTimingConfig
fn clone(&self) -> AMXTimingConfig
Returns a duplicate of the value. Read more
1.0.0 · 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 AMXTimingConfig
impl Debug for AMXTimingConfig
Auto Trait Implementations§
impl Freeze for AMXTimingConfig
impl RefUnwindSafe for AMXTimingConfig
impl Send for AMXTimingConfig
impl Sync for AMXTimingConfig
impl Unpin for AMXTimingConfig
impl UnsafeUnpin for AMXTimingConfig
impl UnwindSafe for AMXTimingConfig
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