#[repr(transparent)]pub struct F32Strict(pub f32);Expand description
Strict-precision f32 element marker.
#[repr(transparent)] wrapper around f32. Identical memory layout
to a plain f32 device buffer — a DeviceBuffer<f32> can be
reinterpreted as a DeviceBuffer<F32Strict> via view_as without
copying. The wrapper exists purely to drive kernel selection at the
Rust type level: choosing the F32Strict element routes the launch
through the SIMT (CUDA-cores) GEMM kernels, while the plain f32
element routes through the TF32 tensor-core kernels.
Numerical contract: full IEEE 754 binary32 multiply-add throughout (no tensor-core warp-reduction nondeterminism).
Tuple Fields§
§0: f32Trait Implementations§
impl Copy for F32Strict
impl DeviceRepr for F32Strict
Source§impl Element for F32Strict
impl Element for F32Strict
Source§type Scalar = f32
type Scalar = f32
Scalar type used for the kernel’s alpha / beta parameters (and
the epilogue compute type).
f32 for f16/bf16/f32/F32Strict
— the epilogue runs at f32 to match the F32 accumulator. f64
for f64 — the DGEMM path uses an F64 accumulator and
f64 alpha/beta. For integer / Bool elements the projection
is nominally f32 (no α/β-scaled epilogue applies).Source§impl KernelDtype for F32Strict
impl KernelDtype for F32Strict
Source§const KIND: ElementKind = ElementKind::F32Strict
const KIND: ElementKind = ElementKind::F32Strict
Runtime tag for this dtype. Stable across the workspace —
keyed by this same enum in
crate::KernelSku::element.Source§impl PartialOrd for F32Strict
impl PartialOrd for F32Strict
impl StructuralPartialEq for F32Strict
Auto Trait Implementations§
impl Freeze for F32Strict
impl RefUnwindSafe for F32Strict
impl Send for F32Strict
impl Sync for F32Strict
impl Unpin for F32Strict
impl UnsafeUnpin for F32Strict
impl UnwindSafe for F32Strict
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