Expand description
Kimi K3 host graph. This slice is KDA only.
Math lives in avarok_core::kimi_k3 so Mac unit tests compile without
spark-storage. CUDA launch: kda_cuda.
Re-exports§
pub use device_cache::DeviceHybridCache;pub use device_cache::DeviceLayerCache;pub use kda_cuda::K3KdaDecodeKernels;pub use kda_cuda::KdaDeviceState;pub use kda_cuda::launch_k3_kda_decode_token;pub use kda_cuda::launch_k3_kda_decode_token_on_device;pub use mla_cuda::K3MlaDecodeKernels;pub use mla_cuda::MlaDeviceKv;pub use mla_cuda::launch_k3_mla_decode_token;pub use mla_cuda::launch_k3_mla_decode_token_on_device;pub use moe_cuda::K3MoeGemmKernels;pub use moe_cuda::launch_k3_latent_moe_experts;pub use tp::supports_tp;pub use tp::tensor_plan;pub use state::K3CpuFallbackState;
Modules§
- bound
- BF16/FP32 twin layer bind. Decode copies hidden D2H, runs mixer+MLP+AttnRes,
copies H2D. LinearAttention / KDA conv+recurrent uses CUDA
kda_decodewith per-sequence resident recurrence unlessK3_CUDA_KDA=0. FullAttention / MLA uses CUDAmla_decodeunlessK3_CUDA_MLA=0. Packed LatentMoE experts launch DSV4moe_w4a16_grouped_gemm_ptrtable_e8m0. Router / down / up / shared / SiTU stay on the host. - dense_
cuda - Opt-in K3 dense/shared MLP using original resident weights and FP32 I/O. Only input and final output cross the host boundary; no weight duplication.
- device_
cache - GPU-resident hybrid cache. Host
HybridCachebytes are prefix snapshot only. Decode must not D2H/H2D conv, recurrent, or the growing MLA KV. - kda
- K3 KDA CPU ref (twin 8×32 conv-4; prod 96×128 bound −5).
- kda_
cuda - Host launch for K3 CUDA KDA decode (
kda_decodePTX module). - latent_
moe - Latent down / sigmoid-noaux_tc router / SiTU experts / up CPU ref.
- mla
- Gated NoPE MLA CPU ref. Do not reuse
qwen3_attentionblindly. CUDA:super::mla_cuda(default;K3_CUDA_MLA=0CPU). - mla_
cuda - Host launch for K3 CUDA gated-NoPE MLA decode (
mla_decodePTX module). - moe_
cuda - Host launch for K3 packed LatentMoE experts (
moe_w4a16E8M0 ptrtable). - state
- Per-sequence K3 state: resident CUDA KDA recurrence and MLA KV.
- tp
- K3 device-binding adapter for the shared tensor-parallel storage plan. Runtime loading partitions packed and dense weights before GPU allocation.
Structs§
- Ablation
- Graph mutants. Mix=0 / force-expert-0 are C1; skip-layer is C2;
o_projTP is C7. - Attn
ResHub - Stream map keyed by hidden/residual pointer bits (
DevicePtr.0). Layer 0 inserts; last layerremoves on success. AnyErrdrops the entry (umbrella940bd4eeb). - Hybrid
Cache - Per-sequence hybrid cache. Slot identity is the layer index; a prefix hit that writes KDA state into the wrong slot is the C4 mutant.
- K3Cpu
Model - CPU twin (or tiny stand-in) ready for greedy decode.
- K3Graph
- K3Layer
Spec - KdaConfig
- KDA geometry. Tiny dims are legal for CPU tests; production is 128/4.
- KdaState
- Per-sequence KDA state. Both buffers are FP32, read-modify-write.
- Latent
MoeConfig - MlaConfig
- MlaKv
- One MLA layer’s host KV (unpaged CPU stand-in).
Enums§
Constants§
- KDA_
L2_ EPS - FLA
use_qk_l2norm_in_kerneleps. CUDAk3_kda_recurrent_step_f32uses the same.
Functions§
- attnres_
blend - Test / ablation lever:
mix=0returnsskip;mix=1returnsmixed. - attnres_
mix - Apply AttnRes with an explicit mix lever.
mix=0is identity skip. - attnres_
softmax_ mix - Softmax mixture over residual sources.
sources[0]is conventionally the skip (current partial block).queryis[hidden](*_res_proj). - cuda_
kda_ enabled - LinearAttention BoundLayer uses CUDA
kda_decodeunlessK3_CUDA_KDA=0. Projections, AttnRes, and MLP stay on the host either way. - cuda_
mla_ enabled - FullAttention BoundLayer uses CUDA
mla_decodeunlessK3_CUDA_MLA=0. Same polarity asK3_CUDA_KDA. Projections stay on the host either way. - gated_
mla_ attend - Gated NoPE attend: optionally skip RoPE, SDPA, optional output gate.
- greedy_
decode - Greedy decode. Returns
prompt || new_tokens(lengthprompt.len() + max_new). - kda_
decode_ token - One decode token: conv update then recurrent step.
- kda_
from - Map parsed
ModelConfigonto KDA geometry. - latent_
moe_ forward - Routed latent path + optional shared expert (identity-scale for tests).
- mix_
routed_ experts - Mix selected SiTU-GLU experts into latent. Empty
w1means packed-only (no host dequant) — CUDA grouped GEMM must have run instead. - mla_
decode_ token - One decode token: optional RoPE, append K/V, SDPA, optional output gate.
Projections stay in
mla_mixer. CUDAk3_mla_*matches this order. - mla_
from - moe_
from - sigmoid_
topk - noaux_tc: sigmoid(logits) for mix weights;
scores + biasonly ranks. - situ_
glu - One SiTU-GLU coordinate. Product is bounded by
|β1 * β2|. - situ_
glu_ vec - Elementwise SiTU-GLU over paired gate/up vectors.
- softcap
- Smooth cap.
betamust be finite and non-zero.