pub struct CpuI8MatmulSquare<const DIM: usize>;Expand description
Parametric square DIM × DIM i8 × i8 → i16 matmul.
Determinism: per ADR-030’s per-axis substitution-determinism note,
the integer-arithmetic CPU impl preserves bit-identity across
targets. DIM is the square dimension; for non-square /
non-integer / variable-shape tensor compute the wiki’s pattern is
to compose this axis kernel through verbs over partition_product!
(per ADR-033/044) — the axis layer fixes the atom shape.
§HostBounds discipline
DIM is unconstrained at the axis level. Per Wiki ADR-060
the foundation removed the AXIS_OUTPUT_BYTES_MAX cap: a
CpuI8MatmulSquare<DIM> kernel’s 2 * DIM * DIM-byte output flows
through the source-polymorphic TermValue carrier, whose widths
derive from the application’s HostBounds
structural-count primitives via foundation const fns — never a
pinned byte-width literal. Specific DIM values (4, 8, 16, 32, 64,
…) are picked by the application; this crate imposes no ceiling.
Trait Implementations§
Source§impl<const INLINE_BYTES: usize, const DIM: usize> AxisExtension<INLINE_BYTES> for CpuI8MatmulSquare<DIM>
impl<const INLINE_BYTES: usize, const DIM: usize> AxisExtension<INLINE_BYTES> for CpuI8MatmulSquare<DIM>
Source§const AXIS_ADDRESS: &'static str = <CpuI8MatmulSquare<DIM> as TensorAxis>::AXIS_ADDRESS
const AXIS_ADDRESS: &'static str = <CpuI8MatmulSquare<DIM> as TensorAxis>::AXIS_ADDRESS
Source§const MAX_OUTPUT_BYTES: usize = <CpuI8MatmulSquare<DIM> as TensorAxis>::MAX_OUTPUT_BYTES
const MAX_OUTPUT_BYTES: usize = <CpuI8MatmulSquare<DIM> as TensorAxis>::MAX_OUTPUT_BYTES
Source§fn dispatch_kernel(
kernel_id: u32,
input: &[u8],
out: &mut [u8],
) -> Result<usize, ShapeViolation>
fn dispatch_kernel( kernel_id: u32, input: &[u8], out: &mut [u8], ) -> Result<usize, ShapeViolation>
kernel_id against the
evaluated input bytes. The implementation copies the kernel’s
output into out and returns the written length. Read moreSource§impl<const DIM: usize> Clone for CpuI8MatmulSquare<DIM>
impl<const DIM: usize> Clone for CpuI8MatmulSquare<DIM>
Source§fn clone(&self) -> CpuI8MatmulSquare<DIM>
fn clone(&self) -> CpuI8MatmulSquare<DIM>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<const DIM: usize> Debug for CpuI8MatmulSquare<DIM>
impl<const DIM: usize> Debug for CpuI8MatmulSquare<DIM>
Source§impl<const DIM: usize> Default for CpuI8MatmulSquare<DIM>
impl<const DIM: usize> Default for CpuI8MatmulSquare<DIM>
Source§fn default() -> CpuI8MatmulSquare<DIM>
fn default() -> CpuI8MatmulSquare<DIM>
Source§impl<const INLINE_BYTES: usize, const DIM: usize> SubstrateTermBody<INLINE_BYTES> for CpuI8MatmulSquare<DIM>
impl<const INLINE_BYTES: usize, const DIM: usize> SubstrateTermBody<INLINE_BYTES> for CpuI8MatmulSquare<DIM>
Source§fn body_arena() -> &'static [Term<'static, INLINE_BYTES>]
fn body_arena() -> &'static [Term<'static, INLINE_BYTES>]
dispatch_kernel directly per ADR-055’s optional fast-path.Source§impl<const DIM: usize> TensorAxis for CpuI8MatmulSquare<DIM>
impl<const DIM: usize> TensorAxis for CpuI8MatmulSquare<DIM>
const AXIS_ADDRESS: &'static str = "https://uor.foundation/axis/TensorAxis/CpuI8MatmulSquare"
Source§const MAX_OUTPUT_BYTES: usize
const MAX_OUTPUT_BYTES: usize
<Impl as TensorAxis>::MAX_OUTPUT_BYTES). Per ADR-060 the
foundation derives carrier widths from the application’s
HostBounds structural-count primitives; the axis impl
carries no substrate-arbitrary byte-width cap.