Skip to main content

Module dispatch

Module dispatch 

Source
Expand description

Runtime-dispatched SIMD abstractions and dynamic facade. Runtime-dispatched SIMD operations.

§Monomorphization chain

sum::<f32>(data) -> f32::sum(data) -> sum::dispatch_sum::<f32>(data) -> avx2 kernel.

Modules§

argmax
Generic runtime-dispatch argmax kernel.
argmin
Generic runtime-dispatch argmin kernel.
binary
Generic runtime-dispatch elementwise binary kernel.
complex
Generic interleaved complex kernels.
dot
Generic runtime-dispatch dot product kernel.
gemm
Generic runtime-dispatch tiled GEMM kernel.
gemv
Generic runtime-dispatch register-blocked matrix–vector product (y += A · x).
gemv_strided
Generic runtime-dispatch register-blocked sub-matrix GEMV (y += A · x, row stride lda).
gemv_transpose
Generic runtime-dispatch transposed matrix–vector product (y += Aᵀ · x).
gemv_transpose_strided
Generic runtime-dispatch transposed sub-matrix GEMV (y += Aᵀ · x, row stride lda).
masked
Runtime-dispatched masked SIMD operations.
max
Generic runtime-dispatch max-reduction kernel.
min
Generic runtime-dispatch min-reduction kernel.
modular
Modular-arithmetic kernels for transform workloads.
scale
Generic runtime-dispatch in-place scale kernel.
sparse
Runtime-dispatched sparse matrix-vector multiplication.
sum
Generic runtime-dispatch sum kernel.

Traits§

SimdOps
Sealed extension trait implementing dynamic runtime SIMD dispatch for any T: Scalar.

Functions§

abs_max
Reduces the slice to max |x| (∞-norm accumulator); T::ZERO for empty.
abs_sum
Reduces the slice to Σ |x| (L1-norm accumulator); T::ZERO for empty.
argmax
Returns the first maximum, or None for empty or NaN-containing data.
argmin
Returns the first minimum, or None for empty or NaN-containing data.
axpy
Fused row update out[i] += alpha * x[i] (AXPY) via runtime-dispatched SIMD with no temporary allocation. Errors on length mismatch.
axpy_rows
Fused multi-row update out[row, i] += alphas[row] * x[i] via one runtime-dispatched SIMD kernel. out is a row-major strided window.
axpy_rows_batch
Fused batched multi-row update: out[row, i] += sum_k alphas[k, row] * x_panel[k, i] via one runtime-dispatched SIMD kernel. alphas is depth-major with rows elements per depth, x_panel is depth-major with cols elements per depth, and out is a row-major strided window.
dispatch_reduce_popcount
dispatch_reduce_popcount_and
dispatch_reduce_popcount_or
dispatch_reduce_popcount_xor
dot
Computes the dot product of two slices using runtime-dispatched SIMD.
elementwise_add
Computes the elementwise sum of two slices and writes to out.
elementwise_div
Computes the elementwise quotient of two slices and writes to out.
elementwise_mul
Computes the elementwise multiplication of two slices and writes to out.
elementwise_sub
Computes the elementwise difference of two slices and writes to out.
gemv
Computes register-blocked GEMV y += A · x with runtime backend selection.
gemv_strided
Computes register-blocked sub-matrix GEMV y += A · x with row stride lda, runtime backend selection. A is a row-major nrows × ncols block with leading dimension lda ≥ ncols; lda = ncols is the packed gemv(). Accumulates into y.
gemv_transpose
Computes register-blocked transposed GEMV y += Aᵀ · x with runtime backend selection — the complement of gemv().
gemv_transpose_strided
Computes register-blocked transposed sub-matrix GEMV y += Aᵀ · x with row stride lda, runtime backend selection. lda = ncols is the packed gemv_transpose(). Accumulates into y.
interleaved_complex_dot
Computes an interleaved complex dot product using a monomorphized SIMD architecture.
interleaved_complex_dot_runtime
Computes an interleaved complex dot product using Hermes runtime provider selection.
interleaved_complex_mul_assign
Multiplies interleaved complex values in-place using a monomorphized SIMD architecture.
interleaved_complex_mul_assign_runtime
Multiplies interleaved complex values in-place using Hermes runtime provider selection.
masked_add
Computes the elementwise sum of elements matching a boolean mask.
masked_dot
Computes the dot product of elements matching a boolean mask.
masked_sum
Computes the sum of elements matching a boolean mask.
max
Computes the maximum element of the slice using runtime-dispatched SIMD.
min
Computes the minimum element of the slice using runtime-dispatched SIMD.
ntt_butterfly_stage_u64
Executes one exact modular radix-2 NTT butterfly stage over u64 residues.
reduce_popcount
Computes the horizontal sum of population counts of all elements using runtime-dispatched SIMD.
reduce_popcount_and
Computes the horizontal sum of population counts of a[i] & b[i] using runtime-dispatched SIMD.
reduce_popcount_or
Computes the horizontal sum of population counts of a[i] | b[i] using runtime-dispatched SIMD.
reduce_popcount_xor
Computes the horizontal sum of population counts of a[i] ^ b[i] (Hamming distance) using runtime-dispatched SIMD.
scale
Multiplies every element of data by scalar in-place.
spmv_bcoo
Computes sparse SpMV using const-generic Blocked-COO tiles.
spmv_csr
Computes sparse SpMV using CSR: y += A · x.
spmv_dense_masked
Computes sparse SpMV using Dense-with-Mask.
spmv_sellp
Computes sparse SpMV using const-generic Sliced ELLPACK (SELL-p).
sum
Computes the sum of elements in the slice using runtime-dispatched SIMD.
tiled_gemm
Computes register-blocked tiled GEMM: c += A * B.