Skip to content

perf(gfx12): disable slow default DFlash verify graph - #708

Open
HUSRCF wants to merge 1 commit into
warpfront:masterfrom
HUSRCF:perf/gfx12-dflash-verify-latest
Open

perf(gfx12): disable slow default DFlash verify graph#708
HUSRCF wants to merge 1 commit into
warpfront:masterfrom
HUSRCF:perf/gfx12-dflash-verify-latest

Conversation

@HUSRCF

@HUSRCF HUSRCF commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Summary

Disable the default DFlash verifier HipGraph route for gfx1201 + MQ4G256.

Paired long-context runs on an R9700 showed the captured verifier graph slower than the direct tiled-flash verifier path. The graph remains available through the explicit diagnostic opt-in:

HIPFIRE_VERIFY_GRAPH=1

Other architectures and quantization shapes retain their existing behavior.

Which surface(s) does this touch?

  • serve — speculative DFlash verifier routing
  • arch crate(s): hipfire-arch-qwen35

Implementation

dflash_verify_graph_env_eligible() is default-off only for gfx1201 + MQ4G256. Explicit behavior remains:

  • HIPFIRE_VERIFY_GRAPH=0: force graph off
  • HIPFIRE_VERIFY_GRAPH=1: diagnostic graph opt-in

The direct batched tiled-flash verifier path remains enabled.

Tests

  • cargo test -p hipfire-arch-qwen35 --lib dflash_verify_graph_env -- --nocapture
  • cargo build --release -p hipfire-cli -p hipfire-daemon
  • Full 6-request thinking E2E on local R9700 / gfx1201
  • max-seq=32768, max-tokens=1024, approximately 11.5K-token prompts
  • HIP_VISIBLE_DEVICES=0
  • Qwen3.6 27B MQ4 + DFlash MQ4

E2E result:

turns=6 runaway=0 empty=0 retrieval_miss=0
avg_prefill=594.0 tok/s avg_decode=48.4 tok/s
per-request decode: 61.2, 67.8, 11.7, 63.2, 72.9, 13.3 tok/s

All requests completed with finish=stop; no attractor or empty-output failures were reported.

Battery output: /tmp/hf693-gfx12-latest-e2e.json

Graph opt-in validation

A separate one-request run with HIPFIRE_VERIFY_GRAPH=1 confirmed:

[verify-graph] warmup for B=16 complete
[verify-graph] captured for B=16 with 1154 blobs

The opt-in request produced the same output identity as the default route (request_md5=8460b63690bf124ed759f90efdb777f3, 299 tokens, tau=4.84, finish=stop).

Artifacts

daemon md5: 5340f68e16e91548eec4a47eddd49948
target sha256: 86a5f80fd29d545abb1093dead242725ced6d68b8607c6d566d897b1a82442dc
draft sha256: bd8c4f07ae80fe1385bf2606af9a7ba0daa18ca8daec50916f2a489054c44e70
{"routes":[{"mode":"battery","tag":"qwen3.6:27b"}],"claim":"On gfx1201 with Qwen3.6 27B MQ4 DFlash, the legacy MQ4 verifier Graph is disabled by default while the direct tiled-flash verifier remains active; HIPFIRE_VERIFY_GRAPH=1 still captures the diagnostic graph."}

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