Skip to content

feat(rust): Laguna-S-2.1 decode on the CUDA engine, 36.5 tok/s on GB10#69

Merged
TheTom merged 2 commits into
tom/feat/cuda-hip-vulkan-backendsfrom
tom/laguna-rust-engine
Jul 23, 2026
Merged

feat(rust): Laguna-S-2.1 decode on the CUDA engine, 36.5 tok/s on GB10#69
TheTom merged 2 commits into
tom/feat/cuda-hip-vulkan-backendsfrom
tom/laguna-rust-engine

Conversation

@TheTom

@TheTom TheTom commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

What

Full single-stream Laguna-S-2.1 (117.55B / 8.14B-active hybrid MoE) decode on the Rust CUDA engine, correctness-verified token-for-token against the reference C++ implementation and benched on the DGX Spark GB10.

Commit 1 lands the in-flight engine state the GB10 working tree has been running (CUDA-graph trait plumbing, fp8 microbench, MoE grouped-MMA test updates). Commit 2 is the Laguna port itself.

Numbers (GB10, single-stream greedy, 128-token bench, Q4)

stack tok/s
reference C++ implementation (same weights, same box) 21.24
model vendor's stated no-spec ceiling, any engine 13-14
this PR, eager 28-30
this PR, graph replay 34.1
this PR, graph + fused MoE gather 35.0
this PR, graph + fuse + micro-fusions 36.5

Greedy continuations byte-identical to the reference in every mode. Roughly 62 percent of the theoretical bandwidth ceiling for 8.14B active params at Q4 on this memory system.

How

  • Q4 requant load straight from GGUF (Q8 LM head), YaRN scaling read from GGUF metadata (this export is a 256K / factor-32 checkpoint, not the model card's 1M / 128)
  • Sigmoid top-10 router with score-correction bias, device-side gather-GEMV expert path (indices resolved in-kernel), shared expert, per-head softplus attention gate, per-head QK RMSNorm, period-4 hybrid attention with a 512-slot ring KV cache
  • Whole-step CUDA graph capture (warmup-capture-replay, persistent u32 workspace, n_kv and rope position read from device buffers)
  • Fused MoE gate+up+SwiGLU gather; concatenated QKVG projection; shared expert through the fused gather; o_proj residual accumulate
  • Env-gated: FFAI_LAGUNA_GGUF (weights), FFAI_LAGUNA_GRAPH / _FUSE / _MICRO / _FAST / _GEN, debug dumps via _DEBUG

Tests

  • Kernel unit tests run without weights (rope yarn pos-0 invariants at model geometry, softplus gate, nbuf sdpa vs registry kernel at gqa 6 and 9, fused swiglu gather vs unfused compose)
  • Env-gated integration smoke: greedy generation with detokenized output and tok/s
  • Warp-count sweep harness (FFAI_LAGUNA_SWEEP) benches launch-config combos on one model load

Notes for review

  • Companion kernel-side PR in the metaltile tree adds ffai_moe_gather_q4 / _swiglu and the bf16 casts this branch calls
  • The sync commit is working-tree state predating this feature; review separately
  • Known cosmetic debt: debug instrumentation in laguna.rs is env-gated but verbose; happy to strip on request

TheTom added 2 commits July 22, 2026 22:42
Carries the uncommitted engine state the GB10 box has been running:
CUDA-graph capture trait plumbing (begin/end capture, graph_launch),
fp8 projection microbench and MoE grouped-MMA test updates, and the
device trait additions they depend on. Precedes the Laguna port commits
that build on these interfaces.
Full single-stream decode for the 117.55B/8.14B-active hybrid MoE:
sigmoid top-10 router with score-correction bias and shared expert,
per-head softplus attention gate, per-head QK RMSNorm, period-4
full/sliding-window attention with a 512-slot ring KV cache, YaRN
partial-rotary rope on full layers (scaling read from GGUF metadata,
this export is a 256K/factor-32 checkpoint), Q8 LM head, and a
Q4-requantized weight load straight from GGUF.

New ops: rope_yarn_partial (+posbuf variant), gate_softplus_mul_perhead,
argmax_f32_device, sdpa_decode_nbuf (n_kv from a device buffer),
write_u32, moe_gather_q4 and moe_gather_q4_swiglu wrappers.

Decode runs eagerly or as a captured CUDA graph (FFAI_LAGUNA_GRAPH=1,
warmup-capture-replay via LagunaDecodeCtx with a persistent workspace),
with optional fused MoE gate+up (FFAI_LAGUNA_FUSE=1) and micro-fusions
(FFAI_LAGUNA_MICRO=1: concatenated QKVG projection, shared expert via
the fused gather, o_proj residual accumulate).

GB10 single-stream greedy: 21.2 tok/s reference baseline, 36.5 tok/s
here (graph+fuse+micro), greedy tokens verified identical to the reference
implementation. Env-gated integration smoke: FFAI_LAGUNA_GGUF plus
laguna tests in ffai-cuda (unit kernels run without weights).
@github-actions github-actions Bot added the feature New feature or capability label Jul 23, 2026
@TheTom
TheTom marked this pull request as ready for review July 23, 2026 12:10
@TheTom
TheTom merged commit 2e951ef into tom/feat/cuda-hip-vulkan-backends Jul 23, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New feature or capability

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant