Supported
| Operator | Dtypes | Fusion boundary |
|---|---|---|
| RMSNorm | F32 · FP16 · BF16 | Standalone normalization |
| Add + RMSNorm | F32 · FP16 · BF16 | Residual update + normalization |
| RMSNorm + dynamic FP8 | F32 · FP16 · BF16 → E4M3FN | Normalization + GEMM input quantization |
| SiLU-and-Mul | F32 · FP16 · BF16 | Split-half SwiGLU activation |
| SiLU-and-Mul + block FP8 | FP16 · BF16 → E4M3FN | Activation + group-64/128 quantization |
| RoPE + paged-KV write | F32 · FP16 · BF16 | Packed Q/K rotation + native cache write |
| Greedy + sampled logprob | F32 · FP16 · BF16 | Argmax + logsumexp + gather + tie rank |
| Selected-token logprob + rank | F32 · FP16 · BF16 | Engine-owned sampling + one-pass normalization |
| Min-P filtering | F32 · FP16 · BF16 | In-place row-max threshold; shape-gated in vLLM |
| Paged MQA/GQA decode | F32 · FP16 · BF16 | GQA packing + local split-K/LSE; short shapes route into vLLM |
| Greedy speculative verify | int32 drafts · int64 target IDs | Ragged acceptance + mismatch/bonus-token compaction |
Next families
FP8 KV-cache compression
Reduce cache bytes and improve admitted context or batch size with quality and TPOT reported together.
Complete sampling tail
Own penalties, top-k/top-p, deterministic RNG, and top-k logprobs without host round trips.
KV-cache movement
Measure scheduler-facing block copy, gather, scatter, and compact work for prefix reuse and preemption.
Speculative extensions
Add tree, stochastic, or KV metadata only when a named profile exposes material non-GEMM cost.
Quantization plumbing
Remove scale, pack/unpack, dequant/requant, and layout passes around an unchanged vendor GEMM.
MoE routing + movement
Own routing, histogram/prefix sum, permutation, and combine while grouped GEMM stays vendor-owned.
Rust decode step
Prove zero-copy engine-neutral orchestration over borrowed tensors and streams without building an inference engine.
Implementation policy
- Handwrite memory-bound and fusion-sensitive kernels.
- Never implement dense, quantized, sparse, or grouped GEMM; keep the matrix core engine/vendor-owned.
- Key tuning by device, dtype, shape, layout, and alignment.
- Expose one stable Rust contract across backend implementations.
- Do not turn incidental layout helpers into public APIs without a consumer.
Three admission questions
- Is the cost memory traffic, launch overhead, layout conversion, or scheduling metadata?
- Does a named inference-engine path leave a real boundary Loom can enter without copies?
- Can a real model or serving workload prove latency, memory, throughput, or goodput value?
Six independent gates
- Validated contract and invalid-input tests.
- Deterministic CPU or high-precision oracle.
- Accelerator correctness over edge and representative shapes.
- Warmed repeated measurement against a named baseline.
- Invocation from a real inference-engine execution path.
- TTFT, TPOT, throughput, memory, or goodput benefit.