Skip to content

[Core][SM70] Split Qwen3.8 prefill and decode compilation - #477

Merged
yangzhuxinyzx merged 8 commits into
mainfrom
codex/v100-qwen38-unified-prefill-decode-20260903-132513
Sep 3, 2026
Merged

yangzhuxinyzx merged 8 commits into
mainfrom
codex/v100-qwen38-unified-prefill-decode-20260903-132513

Conversation

@yangzhuxinyzx

@yangzhuxinyzx yangzhuxinyzx commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Purpose

Keep the established Qwen3.8 large-prefill graph and no-MTP decode fast graph in one TP4 service without duplicating parameters or KV/state caches. Prefill uses async disk-mmap PLE plus the original FlashQLA-SM70 TileLang GDN path; FULL decode uses rank-local pinned PLE and the M=1 graph operators.

Test Plan

  • Focused CPU config/phase and delayed-spawn tests
  • Exact TP4 NVFP4 no-MTP repeated 8K and 256K prefill
  • Exact TP4 513-token pure decode throughput
  • Greedy arithmetic, Chinese response, and thinking-parser quality gates
  • Authenticated local and 1cattunnel API probes

Test Result

  • Focused dual-graph tests: 5 passed
  • Delayed PLE spawn/executor tests: 3 passed
  • Ruff, py_compile, and git diff --check: passed
  • Startup: zero systemd restarts; mmap worker retained 47.684 GiB in file-backed mappings with about 1.3 GiB RSS
  • Graph audit: (1,8193) contains ple_offload_wait and no decode-only M=1 operators; (1,2) contains local pinned PLE gather plus FP16 GEMV/fused HC/fused GDN
  • 8K exact hash 8aab945ad780...: 6,878 and 6,984 prompt tok/s warm (historical matched result: 7,026 tok/s)
  • No-MTP decode: 513 tokens / 5.9602 s = 86.07 tok/s
  • 256K gate: 262,143 prompt + 1 output; 51.8063 s pure prefill = 5,060 tok/s
  • Prefix caching disabled; maximum model length 262,144; V2 runner; TP4 V100; FP16 KV; NVFP4 checkpoint
  • Quality: 173*29 -> 5017, 41*37 -> 1517, accurate two-sentence Chinese lunar-phase answer; thinking exposed in message.reasoning
  • Authenticated local and public /v1/models: HTTP 200

Signed-off-by: yangzhuxinyzx <153831768+yangzhuxinyzx@users.noreply.github.com>
Signed-off-by: yangzhuxinyzx <153831768+yangzhuxinyzx@users.noreply.github.com>
Signed-off-by: yangzhuxinyzx <153831768+yangzhuxinyzx@users.noreply.github.com>
Signed-off-by: yangzhuxinyzx <153831768+yangzhuxinyzx@users.noreply.github.com>
Signed-off-by: yangzhuxinyzx <153831768+yangzhuxinyzx@users.noreply.github.com>
Signed-off-by: yangzhuxinyzx <153831768+yangzhuxinyzx@users.noreply.github.com>
Signed-off-by: yangzhuxinyzx <153831768+yangzhuxinyzx@users.noreply.github.com>
Signed-off-by: yangzhuxinyzx <153831768+yangzhuxinyzx@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant