unsloth/scripts/benchmarks/results
Daniel Han 4c47207497 flex: mark create_block_mask compile dynamic so bs=64 prefill works
Inductor was specialising create_block_mask on the first prefill shape
it saw (warmup with 16 prompts -> small total L). When round-0 prefill
ran at bs=64 with a much larger packed L, the cached triton block-mask
kernels launched with the wrong shape constants and hit CUDA illegal
memory access inside the document_causal mask construction, even
though the fused GEMMs and graph-captured decode path were fine.

torch.compile(create_block_mask, dynamic=True) keeps L as a runtime
arg so the same kernels work across the warmup and full-batch prefill
shapes.

Add the drift-verification and end-to-end rollout stats for the fused
addmm path: base bit-identical across 10 cycles, and bs=64 + LoRA +
capture_cudagraph + decode_kernel_options reaches 5057 tok/s median,
5224 tok/s best on B200 at 52 GB peak -- within noise of the prior
5785 tok/s baseline. Variance is round-0/1 warmup (3298, 3607 tok/s)
rather than steady-state (4940, 5082, 5057 tok/s).
2026-04-21 04:53:20 +00:00
..
stats flex: mark create_block_mask compile dynamic so bs=64 prefill works 2026-04-21 04:53:20 +00:00
flex_vs_vllm.md flex: double-copy LoRA rollout to avoid bf16 merge/unmerge drift 2026-04-21 04:52:49 +00:00
grpo_equivalence.md Phase 2: 30-step equivalence + pairwise diffs vs vLLM 2026-04-20 15:03:32 +00:00
lora_rollout_baselines.md Phase 1+3: LoRA rollout benchmarks + CB sync driver + Phase 4 scaffold 2026-04-20 14:01:16 +00:00
notebook_ref_10.md Add Phase 0+1 GRPO backend comparison scaffolding 2026-04-20 13:54:06 +00:00