Date: 2026-10-13. Status: research and proposed design, not an implemented compiler or a qualified kernel cutover.
CAKE's compiler-agent methodology applies to SM120 and SM121. Public FlashInfer contributions already demonstrate consumer-specific generated schedules. Datacenter Blackwell kernels cannot be enabled by changing an architecture string: consumer hardware has warp mma.sync and register accumulators, but lacks tcgen05, tensor memory (TMEM), WGMMA, and two-CTA MMA.
Use family-targeted sm_120f objects where all required instructions are family-supported. Keep operator admission and performance tuning separate from cubin compatibility. An instruction-compatible GB10 is not automatically qualified for an RTX-tuned operator.
No current CAKE merge replaces an entire flashinfer/experimental/b12x family unchanged. The closest replacements are V4.1 mixed-cache sparse-MLA decode, native NVFP4 sparse MLA, and SM120 paged FP8 indexer scoring. The CAKE MegaMoE merge is a different expert-parallel execution architecture, not a drop-in rank-local MoE replacement.
The public sources reviewed do not provide the Cake compiler, verifier, cost model, or agent harness. We can reproduce the methodology independently from the paper, exported schedules, tests, benchmark contracts, and review discussions. We cannot claim to reproduce its unpublished implementation or headline experiment without its artifacts.
- Evidence rules and scope
- Paper methods and limitations
- Consumer ISA and target contracts
- PR and issue findings
- b12x replacement matrix
- Independent methodology reproduction design
- Qualification and implementation sequence
- Open questions and source index
This report combines the CAKE paper, version 1, FlashInfer PR/issue discussions, checked-out implementation contracts, and one small on-device ISA probe. The b12x contract mapping used checkout revision 399b6c1d3, as recorded by the attention investigation. PR status is a snapshot, not a promise about future releases.
| Evidence class | Meaning | What it does not establish |
|---|---|---|
| Documented | Paper or vendor specification states a capability | Compiler exposure, correct lowering, execution or throughput |
| Source-inspected | A source contract or instruction sequence was read | Runtime correctness or performance |
| Reported measurement | A PR author or reviewer reports a run | Independent reproduction in this session |
| Session measurement | A command or probe ran during this investigation | Results beyond that probe's inputs and hardware |
| Proposed | A design or acceptance gate recommended here | Existing implementation |
Reported review findings remain findings, not universally reproduced defects. Where a fix was not located, this report does not assert that no later fix exists. No full CAKE operator, b12x substitution, consumer roofline, or end-to-end serving benchmark ran in this session.
The report deliberately omits private network addresses, local account paths, and unrelated project references.
The paper, sections 2-4 separates kernel evolution from compiler evolution.
The kernel loop generates structurally different schedules, checks their legality, ranks promising candidates, runs independent numerical validation, measures GPU execution, and retains measured winners.
The compiler loop turns recurring failures into verifier rules, lowering fixes, new primitives, or calibration work. Human merge gates and a kernel corpus guard those changes.
Agents author a typed, hardware-explicit schedule. They declare shared-memory regions, synchronization objects, warp roles, pipelines, and target-specific compute resources. Lowering derives mechanical details such as barrier addresses and phases. Layout is not a general algebra exposed to the agent. The agent writes concrete storage/access commitments, and the compiler checks producer-consumer compatibility.
| Analysis | Role |
|---|---|
| Program safety | Pre-compile gate for modeled synchronization, ordering and memory hazards |
| Hardware conformance | Pre-compile gate for target instructions and resource limits |
| Data consistency | Pre-compile gate for producer-consumer representation compatibility |
| Schedule semantics | Pre-compile gate for declared roles, stages and resource lifetimes |
| Numerical validation | Execution gate against an external oracle |
| Performance analysis | Non-blocking estimate and bottleneck attribution |
| Optimization guidance | Non-blocking proposal hints |
The paper states that static analysis operates only inside its modeled domain. It is not a proof of global GPU correctness. Missing coverage must be reported, not represented as a successful check.
The paper reports a matched Flash-KMeans clean-start experiment on B200. It uses one BF16 assign shape: B=32, N=65,536, K=1,024, D=128. Three runs per representation reach median best speedups of 1.144x for Cake IR and 0.928x for direct CUDA/PTX at the stated token cutoff. These are research outcomes, not a forecast for consumer GPUs or another agent.
The paper reports KDA prefill at a 2.05x geometric-mean speedup over FlashKDA across six B200 shapes. It also reports dispatcher-backed KNN/KMeans families. Generalization is a separate stage: fixed-shape seeds are not accepted as a library until shape guards, held-out cases, tails, and fallback behavior are validated.
Alpha-MoE illustrates measurement attribution. Its 6.204x and 4.025x API-level gains include launch/scheduling changes. GPU-span gains are 1.215x and 1.170x. An independent implementation must report both rather than treating API speedup as tensor-core speedup.
The paper lists SM120a and SM121a in Appendix B.5, but provides no consumer performance evaluation. Its timing model is calibrated for B200 and H100 and declines to predict elsewhere. Consumer calibration is new work.
The four paper-linked PRs are datacenter-targeted. Later consumer PRs are the relevant adoption evidence.
Generated CUDA, tests, benchmarks, and integration contracts are public in FlashInfer. The sources reviewed do not publish the Cake IR implementation, compiler, verifier, cost model, or full agent harness. Tracker #4254 includes an unanswered public question about open sourcing CAKE.
The paper's controlled agent/model configuration and the broader tracker contributions must not be conflated. Tracker contributions mention multiple agents. That does not invalidate the controlled experiment, but it prevents attributing every later merge to its exact experimental setup.
The authority for instruction admission is NVIDIA PTX ISA. Pin the exact vendor/toolchain edition used by each experiment. The paper's architecture table is an implementation coverage statement, not a substitute for vendor instruction gates.
| Capability | Plain SM120 target | SM120f family target | Scheduling consequence |
|---|---|---|---|
| BF16/FP16 and ordinary FP8 warp MMA | Available | Available | Accumulators live in registers |
Ordinary cp.async, TMA and transaction barriers |
Available | Available | Explicit staging and producer-consumer pipelines are viable |
| Narrow/block-scaled Blackwell MMA | Not admitted in baseline target | Available, subject to PTX version | Native NVFP4/MXFP4 and unit-scale FP8 belong on the family path |
.m16n16.b8 transpose matrix load |
Not admitted | Available | Avoids some explicit FP8 transpose/packing work |
setmaxnreg |
Not admitted in baseline target | Available | Register redistribution needs a valid role schedule |
tcgen05, TMEM, WGMMA, two-CTA MMA |
Unavailable | Unavailable | Datacenter schedules require redesign |
SM120 is the RTX consumer/workstation generation. SM121 includes GB10. The family suffix describes compatible feature admission. It does not change the physical GPU or increase instruction rate by itself. Exact a targets have different compatibility rules from family f targets.
The presence of thread-block clusters does not imply support for datacenter cluster MMA or every multicast mode. Never infer a feature from the broad label "Blackwell".
The supplied remote GPU was NVIDIA GB10, compute capability 12.1. The assembler was CUDA 13.4, ptxas 13.4.92. The default system Python did not have PyTorch, so the probe used the CUDA driver through ctypes.
The probe initialized a shared-memory tile with packed bytes, executed ldmatrix.sync.aligned.m16n16.x1.trans.shared.b8, wrote its registers to global memory, and checked 64 packed output words.
| Target | Assembly | Execution |
|---|---|---|
sm_120a |
Accepted positive control | Not launched |
sm_120 |
Rejected explicitly for .m16n16 and ldmatrix.b8 |
Not applicable |
sm_120f |
Accepted | Driver module load, launch and synchronization passed on GB10. All 64 words matched. |
This establishes family-object execution for that instruction on SM121. It does not prove an entire CAKE export loads, block-scaled MMA throughput, or RTX performance. No active compute process was listed by the pre-probe query. The probe was removed after execution. Future probes must use durable home/repository storage, not temporary-system storage.
Issue #5963 reports that legacy FP8 MMA with FP32 accumulation has lower throughput on RTX 5090 than block-scaled FP8 MMA with unit UE8M0 scales.
The issue reports raw loop rates of 510 versus 1,014 TFLOPS, then complete attention speedups of 1.29-1.34x. Unit UE8M0 scale bytes are 127, representing 2^0. The reported outputs were bit-identical for the tested inputs. SASS changed from QMMA.16832.F32.E4M3.E4M3 to QMMA.SF.16832.F32.E4M3.E4M3.E8. Register use increased from 247 to 248 without spills in that measurement.
This is a performance hypothesis for a specific SKU, not a legality rule for all SM120 devices. The issue requests PRO 6000 and GB10 qualification. Those devices must be measured separately. The identity of mathematical scaling does not guarantee bitwise identity across instruction families on all inputs.
| PR | Status in review | Contribution | Consumer applicability |
|---|---|---|---|
| #4262 | Merged | KDA recurrent prefill | Datacenter schedule and exact target. Methods transfer, binary does not. |
| #4279 | Merged | KDA recurrent decode, frozen CUDA variants | No SM12x replacement. Strict backend contracts matter. |
| #4274 | Merged | TinyGEMM2 schedule portfolio | Datacenter only. Shallow/deep pipeline selection is transferable. |
| #4287 | Merged | Fused W8A8 Alpha-MoE | No direct consumer replacement. Review includes an end-to-end throughput regression for a tested configuration. |
| PR | Status in review | Scope | Important limitation |
|---|---|---|---|
| #5914 | Merged | DSV4 NVFP4 sparse-MLA decode | Native low-precision cache/compute contract, not ordinary FP8 MLA |
| #5959 and #6004 | Merged in reviewed history | Consumer sparse-MLA prefill work | Qualify the exact exported route and shape envelope |
| #5949 | Merged | SM-count-aware planning including GB10 | Same instructions do not imply the same best split |
| #5983 | Merged | V4.1 FP8-SWA plus FP4-compressed mixed-cache decode | Decode-only consumer CAKE subset, toolchain-sensitive dequantization |
| #4951, #5083 | Merged | SM120 Sage sparse attention and partial-tile specialization | Missing parameter combinations and descriptor-lifetime discussion |
| #5539 | Merged | MiniMax-H3 FP8 packed-varlen attention | Non-causal THD, D128, quantized numerics |
| #5545, #5583, #5595 | Merged | MiniMax-H3 NVFP4 attention evolution | Accuracy qualification is separate from speed |
| #5493, #5521, #5524 | Merged | Model-specific pre-attention, FC1/SwiGLU and output projection | Not generic GEMM interfaces |
| #6169, #6196 | Merged | MiniMax-H3 full-MLP schedules and tuning | Fixed model geometry and precision contract |
| #6180, #6199 | Merged | Paged FP8 MQA indexer logits | SM120-only score stage. No SM121 export or whole-indexer replacement. |
| #6346 | Merged | MXFP4 x MXFP8 persistent MegaMoE via MoEEpLayer | Exact CC12.0, prefill-oriented, transport and recipe differ from b12x rank-local EP |
| #5905, #5907 | Merged | Consumer generated-code consolidation | Maintainability work, not evidence of new kernel performance |
Stale TMA descriptor state. The #5083 discussion reports a cache keyed by context, workspace address and slot. Address reuse does not prove descriptor bytes remain valid. A reviewer reports both illegal instructions and silent wrong output after stale descriptor reuse. The maintainer acknowledges follow-up work. Do not infer current fix status beyond the reviewed thread. The reusable rule is to validate descriptor contents/lifetime, not pointer identity alone.
Shape portfolio holes. #5083 adds a seventh Sage specialization for non-contiguous partial KV tiles. A dispatcher can be correct on its published benchmark rows and still omit valid consumer calls. Guard coverage must be a separate acceptance gate.
Architecture admission. #6404 addresses MiniMax APIs admitting major-12 devices despite an exact-12.0 contract. A decorator or major-version filter is not enough. Build target, runtime gate and qualified schedule set must agree. Its reviewed evidence did not establish a real GB10 run of that operator.
Compiler versions. #5983 records unsupported newer conversions on older CUDA versions and a ptxas 12.9 FP4 dequantization miscompile. Integer prmt/lookup lowering addressed the reported problem. Run the shipped version matrix rather than assuming newest-toolchain correctness transfers backward.
Ignored arguments and bounds. Reviews of #5914 flag sparse-length argument handling. Reviews of #6180 flag output/block-table bounds when context lengths exceed the declared maximum. These are contract checks, not performance concerns. Reproduce and resolve relevant findings before a cutover.
MegaMoE envelope. Reviews of #6346 flag active-row integer range, invalid chunk sizes, import/build interactions and incompletely exercised EP configurations. Reported prefill wins do not establish small-token decode or serving integration.
Generated-code size. Issue #5768 tracks duplicated exports, hard-coded shape copies and host overhead. The independent design must export bounded specialization portfolios and shared host code. Millions of generated lines are not a target architecture.
Practical implementation scope: qualify the actual deployed subset first. The minimum proof is a build/import, one focused numerical and graph/state smoke, and an off/on performance comparison on the real workload. The broader experiment protocols in the design are options for an explicitly requested research reproduction or wider library release, not prerequisites for a homelab kernel cutover. Do not expand the shipped hardware/toolchain matrix beyond the configurations actually required.
No row below is a drop-in whole-family replacement. "Partial" means a matching subset exists and needs an adapter plus runtime qualification.
| b12x family | CAKE candidate | Exact overlap | Retain |
|---|---|---|---|
| compressed_sparse_mla | #5983 mixed-cache decode | 528B FP8 main SWA + 288B FP4 extra, BF16-Q exact-dequant, T<=64 | Prefill, draft/ragged modes and other cache recipes |
| sparse_mla | #5914 and consumer prefill exports | DSV4 384B NVFP4 decode/prefill, qualified head/page/split envelope | Plain-FP8 DSV4, GLM and other formats |
| dsa_indexer | #6180/#6199 | SM120 paged FP8 scoring, short decode/MTP, supported head/page catalog | Query quantization, top-k selection, MXFP4, block scoring, wide prefill and all GB10 paths |
| varlen | #5539 FP8 and MiniMax NVFP4 exports | Non-causal THD BF16 inputs, D128, quantized attention | Causal/window/sinks/CSR, FP16, LSE and full-precision semantics |
| ep_moe | #6346 | Qualifying CC12.0 MXFP4-weight/MXFP8-activation prefill | Rank-local W4A16 semantics, small-token decode and SM121 |
The consumer sparse-MLA package exposes multiple backends. Its total capability set is not the CAKE capability set.
CAKE-generated consumer programs cover:
- DSV4 384B NVFP4 decode and prefill. Reviewed head counts include 8,16,32,48,64,80,96,112,128. Page strides require appropriate alignment and the actual route must pass admission.
- V4.1 mixed-cache decode with 528B FP8 main and 288B FP4 extra. The reviewed BF16-Q route is decode-only, T<=64.
The hand-written sparse/auto paths, not CAKE, cover ordinary FP8 DSV4 footer-scale storage, GLM 528B records, DSV3.2/GLM 576B records, DOTS3 geometry and V4.1 without the FP4 extra cache. Generic cache writers inside the package must not be relabeled CAKE simply because CAKE consumes their output.
| b12x family | Reason |
|---|---|
| attention.paged | No matching consumer CAKE dense GQA backend |
| attention.dense_mla | Datacenter CAKE dense MLA exports do not qualify SM12x |
| attention.qsa | No grouped-selector/compressed-cache/raw-ring equivalent |
| attention.mla_compress | No CSA latent-pooling equivalent. Consuming compressed pages is not producing them. |
| sequence.gdn_decode/gdn_prefill/kda_prefill | CAKE recurrent exports are SM100/SM103/SM107, not consumer |
| PLE, PLE hashing/lookup, Engram, embedding, MTP feedback | No matching consumer CAKE delivery |
| norm.mhc/hyperconnection | CAKE mega-mHC is datacenter-targeted and does not cover consumer planned phase contracts |
| generic blockscaled GEMM, block/tensor/MXFP8 linear, BMM | Consumer MiniMax CAKE GEMMs have fixed fused model contracts |
| MLA query/output projections | MiniMax dense output projection is not fused MLA projection/RoPE semantics |
| BF16 GEMV/vocabulary projection | Generic upstream implementations exist, not a matching consumer CAKE delivery |
| Trellis/EXL3/IQ/codebook dense and MoE | No matching CAKE representation/recipe |
| MXFP6 dense/MoE/quantization | No equivalent consumer CAKE portfolio |
| standalone MoE route/FC2 and local fused MoE | No equivalent prepared interface across the b12x recipe/activation set |
| PCIe collectives/DCP/vocabulary argmax | No CAKE equivalent across world-size, dtype, topology and fusion contracts |
| SM121 RoCE | Datacenter NVLink/RDMA exports do not replace GB10 unified-memory transport |
| generic MXFP8/NVFP4 quantization | Model-specific fused quantization does not cover reusable b12x layouts |
Generic mm_fp4 b12x/CuTe backends, B12xMoEWrapper, SM12x CuTe MoE configurations, PCIe IPC collectives and SM120/SM121 msa_ops may replace additional b12x subsets. They are not CAKE-generated kernels. This distinction prevents assigning generic upstream support to the CAKE contributions.
b12x's prepared operations bind caller-owned tensors and scratch, prime launchers before runtime, and preserve graph/state semantics. A numerically matching functional CAKE call is not automatically equivalent if it allocates, synchronizes host metadata, grows workspace, changes recurrent-state strides, or recompiles on a graph replay.
The replacement gate must include output and LSE, state/cache mutation, slot/null behavior, aliasing, layout, allocation, stream ownership, and graph replay. Retain a path until the complete supported contract is migrated or explicitly narrowed by its owner.
Everything in this section is proposed. It is an independent design derived from public evidence, not a claim about CAKE's private implementation.
Build a consumer-specific kernel-evolution environment that returns structured legality, numerical and performance evidence. Use the existing FlashInfer build/export/preparation conventions. Keep the workload contract independent of the agent and compiler.
Do not build a general-purpose GPU language first. Do not emulate TMEM. Do not silently substitute architectures or precision. Do not claim the paper's controlled experiment is reproduced by using its generated kernels as seeds. Reference-guided evolution and implementation-hidden clean starts are separate protocols.
The first workload is V4.1 mixed-cache sparse-MLA decode on SM120 and SM121. It has a real consumer schedule, a concrete b12x cutover seam, an exact-dequant oracle, and a GB10 witness. A second workload tests FP8 instruction choice on GeForce. Recurrent kernels are a later independent schedule family, not a promised consequence of attention support.
The contract is immutable during an experiment and versioned by content hash. It contains:
- Mathematical operation, input/output dtypes, accumulation mode and permitted precision changes.
- Shapes, strides, cache byte format, scale semantics, index spaces, masks, sinks and LSE units.
- State/cache mutation, null slots, aliasing, supported stream/graph lifecycle and caller-owned workspace.
- Independent oracle and elementwise plus aggregate error thresholds. Define bitwise requirements only where required and demonstrated.
- Fixed discovery shapes, held-out shapes, boundary cases and adversarial distributions.
- Hardware/SKU, target family, compiler versions, reference-access policy and baseline identities.
- Measurement protocol and acceptance rules for every required row, not only geometric mean.
The agent may change implementation parameters but not shapes, tolerances or baselines. Any contract change starts a new experiment.
Use a small typed Python-authored schedule that serializes into canonical data. Begin with the operations required by the first two workloads. Existing generated CUDA provides reference schedules; do not mechanically parse arbitrary CUDA into a purported verified IR.
| Declaration | Required fields |
|---|---|
| Target | Baseline/family/exact feature set, PTX version, permitted SKU profiles |
| Buffer | Address space, dtype, shape, strides, alignment, swizzle, scale packing, owner and lifetime |
| Register fragment | MMA shape/type, lane mapping, accumulator ownership and live range |
| Role | Warp set, participating lanes, elected issuer and register budget |
| Pipeline | Stage count, stage index recurrence, producer/consumer roles and reuse edges |
| Barrier | Scope, initialization, arrival count, transaction bytes, phase recurrence and associated stage |
| Work schedule | Tile mapping, persistent queue or static grid, split-KV, reduction/merge semantics |
| Operation | Typed inputs/outputs, target gate, memory effects and completion contract |
Initial operation vocabulary: global/shared load-store, TMA tile load, 16B async gather, matrix load, warp MMA, block-scaled MMA, dequantization, row reductions, online softmax, barrier arrive/wait, proxy fence, named CTA barrier, split partial store and merge. Each operation includes effects and legality rules before it becomes agent-visible.
Represent register accumulators explicitly. Never lower a declared TMEM region to registers invisibly. Different hardware execution models require different schedule declarations.
One module owns schedule verification and deterministic lowering. One module owns real-device execution and evidence capture. Both expose small interfaces rather than backend details at every caller.
Proposed logical operations:
analyze(contract, schedule, target_profile) -> diagnostics + coverage
compile(contract, schedule, toolchain) -> artifact + lowering_receipt
validate(contract, artifact, cases, device) -> numerical/lifecycle evidence
measure(contract, artifact, protocol, device) -> timing/profile evidence
export(contract, accepted_portfolio) -> sources + manifest + dispatcher
These are logical interface contracts, not five speculative service processes. Implement them inside existing build/test infrastructure first.
Lowering derives stage addresses, barrier phases, descriptors and dispatch constants. Preserve schedule-node IDs in generated-source mappings. Capture compiler resource output and inspect the actual cubin/SASS. Reject unexpected instruction family, spill or resource changes according to the contract. Assembly acceptance alone does not mark execution as validated.
Store feature admission separately from measured performance profiles. Key calibration by device identity/SKU, compute capability, driver, compiler, power policy and relevant memory topology.
Prefer sm_120f when the schedule uses only its family-supported features. Emit sm_121a or sm_120a only for a proven exact-only requirement or explicitly qualified exact export. The suffix does not stand in for a tuning profile.
Every exported object gets an admission receipt: PTX header, target, admitted instructions, resource use, module load, launch and correctness witnesses. For a family export, require witnesses on both SM120 and SM121 before claiming both. The single byte-transpose probe in this session is only one primitive witness.
Pin a known-good compiler initially, then qualify every supported compiler version. Track the #5983 conversion/dequantization trap as a compiler regression case. A fallback lowering must compute the real operation, not suppress an unsupported-instruction error.
| Check | Reject or report |
|---|---|
| Target instruction gate | Reject unsupported instruction/PTX combinations |
| Buffer bounds/alignment | Reject provable violations. Report unknown symbolic bounds. |
| Representation | Reject incorrect MMA fragment, scale-group or producer-consumer packing |
| Warp convergence | Reject known divergent execution of mandatory aligned warp operations |
| Pipeline ownership | Reject reuse before all consumers release a stage |
| Barrier protocol | Check participants, arrival counts, transaction bytes and phase progression |
| Async visibility | Check required completion and proxy/ordinary memory ordering |
| Resource budget | Check static+dynamic shared storage, register estimates and launch limits |
| Persistent scheduling | Reject global rendezvous requiring unresident blocks |
| Dispatcher envelope | Check guards, overlaps, uncovered cases and valid fallback admission |
Unknown analysis is not "pass". A diagnostic includes schedule-node ID, resource/role/stage, violated condition, evidence and severity. Performance hints are never legality failures. A valid legacy FP8 instruction cannot be rejected merely because another instruction is faster on a measured SKU.
The stale-descriptor lesson belongs partly outside device IR. Host exporter checks must cover descriptor bytes, backing allocation lifetime, context/stream ownership and overwrite invalidation.
Use an oracle independent of generated lowering. For quantized cache operations, first decode bytes exactly into a high-precision reference, then evaluate the mathematical operation. Compare against the actual stored precision contract, not an unrelated full-precision operation alone.
Cases include empty/masked rows, partial pages/tiles, extreme logits, peaked attention, cancellation, zero scales, long context, sinks, split boundaries, extra-cache combinations and state aliasing rules. Validate every required output and mutation.
Run compute-sanitizer memcheck, racecheck, initcheck and synccheck as appropriate. Bound hangs with a watchdog. Faulting candidates run in disposable processes so a sticky CUDA error cannot contaminate later evidence. Do not evict another user's GPU workload.
Lifecycle tests cover repeated shape changes, allocator address reuse, overwritten descriptor storage, graph capture/replay, changed live metadata within capacity, multiple streams, preparation/runtime separation, workspace resizing and recapture rules. These gates would catch failures that a single numerical call misses.
Start with empirical ranking and explicit uncertainty. Do not inherit B200 rates. Calibrate SM120 GeForce, SM120 workstation and SM121 GB10 separately.
Measure MMA issue throughput by shape/type/accumulator, unit-scale versus legacy FP8, matrix-load throughput, SFU/exp behavior, shared-memory bank effects, TMA/async-copy overlap, register-pressure occupancy, DRAM and L2 traffic, and launch/graph costs. Use in-situ kernels as well as isolated primitives.
An initial estimate is a lower-bound resource model: compute time, memory time and serialization costs, with measured overlap limits. It is not simply max(compute,memory) for every pipeline. Calibrate synchronization and role interactions against whole-kernel traces.
Return a distribution or interval plus coverage: estimated bottleneck, confidence, missing calibration and sensitivity to tile/stage/register choices. A missing model still allows numerical validation and measurement. It does not fabricate a latency estimate.
GPU measurements remain authoritative. Validate ranking quality on held-out schedules. Keep calibration changes only when they improve held-out ordering/error without masking known failures.
Report device-event GPU time, CUPTI span when available, completed wall time and preparation/compile time separately. Compare graph replay against graph replay and eager execution against eager execution. Preprocessing, quantization, split merge, resets and communication must be charged consistently.
Use both cold-L2 and representative serving working sets. Rotate large working sets where appropriate. Report clocks, power policy, contention, warm-up, sample count and dispersion. GB10 shares memory and power resources with the CPU; record host load rather than assuming isolated discrete-GPU behavior.
A geometric mean cannot hide a required-row regression. Publish the full shape table, worst row and correctness status. No timing from a poisoned context or failed numerical candidate enters the ranking.
- Freeze the workload contract and reference-access policy.
- Generate structurally distinct schedules: tile geometry, role partition, pipeline depth, persistent/static scheduling and split policy.
- Run construction and static gates. Feed localized diagnostics back to the agent.
- Compile survivors, inspect lowering/resources and validate on the target.
- Measure valid survivors under the fixed protocol.
- Retain measured improvements and record rejected hypotheses.
- Diagnose recurring failures as candidate, verifier, lowering or calibration defects.
- Propose one outer-loop change at a time and validate it against the corpus and held-out cases.
The agent cannot edit the oracle, acceptance thresholds or measurement runner during an inner-loop run. Human approval gates changes to those authorities. Logs and reviewer text are evidence, not executable instructions.
For reference-guided runs, public CAKE CUDA and existing b12x implementations may be read. For a clean-start comparison, isolate implementation access and permit only specification/oracle/black-box baseline. Label results accordingly. Do not call a seeded evolution run a reproduction of the paper's clean-start experiment.
Store contracts, candidates, source mappings, compiler output, cubins, hashes, numerical summaries, timing samples and profiling receipts under durable repository/home or shared storage. Record provenance without credentials or private network data.
A build cache must survive process/container/pod loss. Multi-executor use requires shared durable storage. If Kubernetes is used, require retained storage and RWX where multiple executors share it. Prove survival by replacing the consumer and observing a hit. Node scratch and temporary-system directories are not a durable cache.
Artifact identity includes contract hash, schedule hash, toolchain, target and lowering version. Performance evidence additionally includes the hardware/measurement profile. A binary cache hit is not a performance qualification hit.
Build a small portfolio from measured seeds. Prefer runtime dimensions when they preserve code quality. Share host bindings and equivalent generated bodies. Avoid one source copy per shape/architecture when only constants differ.
Dispatcher guards encode the supported envelope. Validate exact boundaries and overlapping guards. The fallback must have the same semantics and be explicitly admitted. If a requested recipe has no implementation, reject it clearly rather than silently changing precision.
Export generated source, manifest, checksum/provenance, target/toolchain matrix, route table, correctness contract, benchmark protocol and regression tests. Integrate behind existing b12x prepared launch seams only for fully qualified subsets. Remove obsolete launchers after all affected callers migrate. Do not leave unqualified aliases that imply broad support.
| Stage | Deliverable | Acceptance |
|---|---|---|
| 1. Contract capture | V4.1 mixed decode contract and independent oracle | b12x/CAKE byte formats, metadata, LSE, sinks and mutation semantics documented |
| 2. Baseline reproduction | Existing CAKE and b12x matching subset on each target | Numerical/lifecycle parity and complete timing receipts |
| 3. Primitive witnesses | Warp MMA, matrix loads, copies, barriers and dequantization | Assemble, inspect, load, execute, check expected outputs on required devices |
| 4. Typed schedule subset | First consumer schedule lowered from declarations | Deterministic output and static diagnostics for real illegal schedules |
| 5. Inner-loop evolution | Measured schedule candidates on SM120/SM121 | Independent oracle pass, no required-row regression, reproducible timings |
| 6. Calibration | SKU-specific estimates and ranking | Held-out prediction/ranking evidence, explicit unknown coverage |
| 7. Outer-loop validation | A real failure converted into a verifier/lowering rule | Failing-before/passing-after behavior plus valid-corpus preservation |
| 8. Portfolio/export | Guarded consumer family and b12x adapter | All supported shapes, lifecycle and compiler versions qualified |
| 9. Serving proof | Actual application uses the intended route | Route evidence, end-task correctness, memory/workspace and latency metrics |
Run the GeForce FP8 unit-scale experiment as a separate numerical/performance qualification. Do not use the GB10 primitive probe as a substitute for GeForce hardware. Keep no-op performance changes out of a SKU profile unless measurements support them.
- Can the CAKE authors provide compiler/harness access or a public artifact release?
- Which current descriptor-cache follow-up fixes have landed beyond the reviewed #5083 thread?
- Which exact b12x deployed recipes dominate real serving time on each consumer SKU?
- What error contract permits replacing full-precision varlen attention with internal FP8/NVFP4 quantization?
- Which SM120/SM121 toolchain versions must the exported portfolio support?
- Does a single family cubin remain optimal enough, or do measured dispatch policies need different schedule variants per SKU?
- Can the V4.1 mixed decode cutover preserve all prepared scratch and graph semantics without host synchronization?
These are qualification questions. They are not reasons to assume unsupported equivalence.
- CAKE paper v1
- CAKE architecture coverage
- CAKE tracker #4254
- NVIDIA PTX ISA
- SM120 FP8 unit-scale proposal #5963
- Generated-code consolidation tracker #5768
- V4.1 mixed-cache consumer delivery #5983
- GB10 planners #5949
- Consumer indexer #6180
- Consumer MegaMoE #6346
Inspected code seams, given as repository-relative paths:
flashinfer/mla/_sparse_mla_sm120/_api.py: separates CAKE and hand-written sparse backend admission.flashinfer/mla/_sparse_mla_sm120/cake_dsv41_mixed.py: consumer mixed-cache decode.flashinfer/jit/cake_sparse_mla_sm120_dsv4_nvfp4.py: consumer NVFP4 source/manifest and compilation contract.flashinfer/sm120_paged_mqa_logits.py: prepared paged FP8 scoring interface.flashinfer/diffusion_ops/cake_minimax_h3_sm120_quant_varlen_attention.py: non-causal D128 FP8 attention contract.csrc/cake_minimax_h3_sm120_quant_varlen_attention_sm120a.cu: two-stage TMA, warp ping-pong, register MMA and online-softmax schedule.flashinfer/moe_ep/kernel_src/sm120/cake_mxfp4_megamoe/: generated consumer MegaMoE export.flashinfer/jit/cake_gdn.py: datacenter-only CAKE GDN target set.flashinfer/jit/cake_kda.py: exact datacenter CAKE KDA exports.flashinfer/experimental/deepgemm_mega_mhc/mega_mhc.py: datacenter mega-mHC admission.flashinfer/experimental/b12x/attention/: source contracts for the replacement matrix.flashinfer/experimental/b12x/sequence/gdn_decode/: state-pool, speculative recovery and output-gating lifecycle.flashinfer/experimental/b12x/norm/mhc/: prepared phase and lagged-mixing contracts.
Reproduce CAKE's evidence-driven workflow, not its unpublished compiler internals. Start with the consumer V4.1 mixed-cache decode subset. Use SM120f where legal, qualify SM120 and SM121 separately, and keep numerical/lifecycle authority outside the agent loop. Treat unit-scale FP8 MMA as the first SKU-specific performance experiment. Keep the rest of b12x until a matching complete contract has a measured replacement.