Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
147 commits
Select commit Hold shift + click to select a range
8808f8e
[Kernel][SM70] Start XQA pipeline follow-up
yangzhuxinyzx Aug 23, 2026
680a7db
Bump sentence-transformers from 5.2.0 to 6.0.0
dependabot[bot] Aug 25, 2026
626305e
Bump pillow from 10.4.0 to 12.3.0
dependabot[bot] Aug 25, 2026
b7c681e
Bump black from 24.10.0 to 26.5.1
dependabot[bot] Aug 25, 2026
6cdfc44
[CI/Build] Restore repository pre-commit baseline (#311)
yangzhuxinyzx Aug 26, 2026
1d64f84
[Bugfix][SM70] Bound Gemma4 tower attention memory (#310)
yangzhuxinyzx Aug 26, 2026
f5fc157
[Model][SM70] Exclude unsafe PP2 TP4 QPN8 gate/up (#313)
yangzhuxinyzx Aug 26, 2026
1b1c9fa
[Kernel][SM70] Default audited PP2 TP4 decode hot paths (#314)
yangzhuxinyzx Aug 26, 2026
d9d0da2
[Kernel][SM70] Default safe FP8 prescaled M1 decode (#316)
yangzhuxinyzx Aug 26, 2026
232e1e4
[CI/Build] Repair CUDA test dependency updates (#317)
yangzhuxinyzx Aug 26, 2026
fe1c138
[Bench][SM70] Record prefix architecture environment (#318)
yangzhuxinyzx Aug 26, 2026
5245946
[Bugfix][SM70] Emit sampler stable ABI module (#320)
yangzhuxinyzx Aug 26, 2026
2c0aee1
[CI/Build] Use latest compatible charset stack (#321)
yangzhuxinyzx Aug 26, 2026
6a424f2
[CI/Build] Refresh compatible dependency stack (#323)
yangzhuxinyzx Aug 26, 2026
8700861
[Kernel][SM70] Default guarded packed FP13 GEMV (#325)
yangzhuxinyzx Aug 26, 2026
9bbc554
[Doc][SM70] Plan exact-8K FP8 prefill 5500 work (#324)
yangzhuxinyzx Aug 26, 2026
b06f54c
[Bugfix][SM70] Isolate MXFP4 direct-order offsets (#326)
yangzhuxinyzx Aug 26, 2026
89ac768
[Kernel] Skip masked DFlash2 draft history
yangzhuxinyzx Aug 26, 2026
f4c3451
[Release] Restore public source snapshot to v1.3.0 (#329)
yangzhuxinyzx Aug 26, 2026
99d67d7
Bump webcolors from 24.11.1 to 25.10.0
dependabot[bot] Aug 26, 2026
5ac5a29
Bump pandas from 2.2.3 to 2.3.3
dependabot[bot] Aug 26, 2026
698d7b9
Bump wrapt from 1.17.2 to 2.3.0
dependabot[bot] Aug 26, 2026
720153d
[Kernel][SM70] Default exact DFlash2 long-context verifier (#9)
yangzhuxinyzx Aug 26, 2026
a0336cf
[Kernel][SM70] Default stable D256 GQA prefill through 256K (#8)
yangzhuxinyzx Aug 26, 2026
d63e949
[Kernel][SM70] Default exact PP2 TP4 decode optimizations (#10)
yangzhuxinyzx Aug 26, 2026
fe9953d
[Doc][SM70] Clarify no-copy endpoint attribution
yangzhuxinyzx Aug 26, 2026
e7bf082
[Doc][SM70] Record merged defaults AOT validation
yangzhuxinyzx Aug 26, 2026
3fffc42
[Bugfix][SM70] Gate shared QPN8 on quality
yangzhuxinyzx Aug 26, 2026
6d82fe5
[Kernel][SM70] Add exact shared-gate prescaled route
yangzhuxinyzx Aug 26, 2026
59adf8d
[Bugfix][SM70] Bound MXFP4 post-load memory
yangzhuxinyzx Aug 26, 2026
a3cc771
[Model] Start Qwen3.8 Flash Next SM70 adaptation
yangzhuxinyzx Aug 26, 2026
d6f3515
[Core] Guard DFlash2 selector ordering
yangzhuxinyzx Aug 26, 2026
8165861
[Bugfix] Repair structured spec decode state
yangzhuxinyzx Aug 26, 2026
fbbdcab
[Bugfix][SM70] Default quality-regressing routes off
yangzhuxinyzx Aug 26, 2026
9852ce8
[Bench] Add DFlash2 multi-seed quality gates
yangzhuxinyzx Aug 26, 2026
22a25e8
[Doc][SM70] Record shared prescale quality root
yangzhuxinyzx Aug 26, 2026
ee4ac48
[Doc] Record DFlash2 quality audit
yangzhuxinyzx Aug 26, 2026
a90419b
[Model] Add Qwen3.8 Flash Next SM70 V2 route
yangzhuxinyzx Aug 26, 2026
6b23eea
[Doc] Record verified ModelScope snapshot
yangzhuxinyzx Aug 26, 2026
faa1269
[Bugfix][SM70] Restore D256 prefill sidecar loading
yangzhuxinyzx Aug 26, 2026
d944992
[Core] Register SM70 D256 sidecar environment
yangzhuxinyzx Aug 26, 2026
3fc247d
[Bugfix] Attach Qwen4Exp expert mapping
yangzhuxinyzx Aug 26, 2026
657c5d3
[Bench] Require real D256 operator capability
yangzhuxinyzx Aug 26, 2026
09f68f8
[Core] Report checkpoint name on weight-load failure
yangzhuxinyzx Aug 26, 2026
be6c637
[Bugfix][SM70] Validate D256 sidecar capability
yangzhuxinyzx Aug 26, 2026
86b1912
[Bugfix] Preserve QKV shard metadata in auto loading
yangzhuxinyzx Aug 26, 2026
78225e6
[Model] Pass 1Cat GDN output buffer in Qwen4Exp
yangzhuxinyzx Aug 26, 2026
d174f3f
[Model] Honor custom V2 model state providers
yangzhuxinyzx Aug 26, 2026
7fb6068
[Bugfix] Zero heterogeneous hybrid KV pages
yangzhuxinyzx Aug 26, 2026
dc047cd
[Kernel][SM70] Stage QPN2-packed NVFP4 prefill
yangzhuxinyzx Aug 26, 2026
702722b
[Bugfix][SM70] Bridge QPN2 prefill layouts
yangzhuxinyzx Aug 26, 2026
f73cedb
[Bugfix] Fall back for unsupported custom AR dtypes
yangzhuxinyzx Aug 26, 2026
49eb470
perf(nvfp4): use Triton weight dequant on SM70-SM88
Leonccaa Aug 26, 2026
d64150f
[Core] Invoke custom KV cache bind hooks
yangzhuxinyzx Aug 26, 2026
b37cd74
[Bugfix] Match QSA to local Flash KV layout
yangzhuxinyzx Aug 26, 2026
7349fe2
[Bugfix] Keep PLE scales in model dtype
yangzhuxinyzx Aug 26, 2026
c228412
[Kernel] Decode offloaded PLE FP8 rows on SM70
yangzhuxinyzx Aug 26, 2026
de10e2e
[Bugfix] Preserve dynamic PLE request shapes
yangzhuxinyzx Aug 26, 2026
383ff45
[Kernel][SM70] Bypass single-token NVFP4 MoE sorting
yangzhuxinyzx Aug 27, 2026
c57d412
[Core][SM70] Start Qwen3.8 Flash Next prefill campaign
yangzhuxinyzx Aug 27, 2026
da7beb2
[Model][SM70] Enable Qwen4Exp native MTP
yangzhuxinyzx Aug 27, 2026
aa5384d
[Core][SM70] Enable Qwen4Exp prefix caching
yangzhuxinyzx Aug 27, 2026
606527e
[Perf][SM70] Accelerate Qwen3.8 Flash Next prefill
yangzhuxinyzx Aug 27, 2026
c37a884
[Model] Add GLM-5.3-Flash SM70 support
yangzhuxinyzx Aug 27, 2026
a21d15e
[Spec Decode][SM70] Handle Qwen4Exp MTP feedback states
yangzhuxinyzx Aug 27, 2026
eb9547e
[Core] Align Qwen4Exp short-conv metadata
yangzhuxinyzx Aug 27, 2026
6097689
[Bugfix] Stage Qwen4Exp spec masks from lists
yangzhuxinyzx Aug 27, 2026
96ffb20
[Bugfix][SM70] Reuse prebuilt FlashQLA extensions
yangzhuxinyzx Aug 27, 2026
d9a39ea
[Core] Support heterogeneous Mamba state groups
yangzhuxinyzx Aug 27, 2026
b6ded5b
[Doc] Record Qwen4Exp MTP4 bring-up
yangzhuxinyzx Aug 27, 2026
31bd61d
[Doc] Record Qwen3.8 Flash Next prefill
yangzhuxinyzx Aug 27, 2026
2366d54
[Perf][SM70] Narrow Qwen3.8 QSA prefill tiles
yangzhuxinyzx Aug 27, 2026
a271361
[Doc] Record Qwen3.8 prefill follow-up boundary
yangzhuxinyzx Aug 27, 2026
70b63a1
[Spec Decode] Reduce Qwen4Exp MTP cost
yangzhuxinyzx Aug 27, 2026
5378eb4
[Bugfix] Harden Qwen3 coder tool parsing
yangzhuxinyzx Aug 27, 2026
f5a93e2
[Bench] Add tool protocol quality gates
yangzhuxinyzx Aug 27, 2026
5abeaa6
[Bench] Record per-prompt speculative acceptance
yangzhuxinyzx Aug 27, 2026
58beb34
Revert "[Release] Restore public source snapshot to v1.3.0 (#329)"
yangzhuxinyzx Aug 27, 2026
b4ff293
[Release] Import latest private development main
yangzhuxinyzx Aug 27, 2026
42adeb6
[Release] Resume public development from latest private main (#342)
yangzhuxinyzx Aug 27, 2026
854a4e0
perf(kv-cache): avoid singleton hybrid group sizing
Leonccaa Aug 27, 2026
cf5c44a
[Bugfix] Load fused Qwen4Exp MTP experts
yangzhuxinyzx Aug 27, 2026
ceb543c
[Bugfix] Reject incomplete Qwen4Exp MTP loads
yangzhuxinyzx Aug 27, 2026
06724d0
Update README.md
TCat2003 Aug 27, 2026
e9aef44
[Core][SM70] Start DFlash2 lookup drafting campaign
yangzhuxinyzx Aug 27, 2026
8acc3b9
Merge remote-tracking branch 'onecat/main' into codex/v100-dflash2-la…
yangzhuxinyzx Aug 27, 2026
5bf433c
[Core] Account for DFlash2 hybrid cache capacity
yangzhuxinyzx Aug 27, 2026
3ce6e9e
Merge pull request #343 from Leonccaa/perf/hybrid-kv-singleton-group-…
yangzhuxinyzx Aug 27, 2026
8800477
[Bugfix][SM70] Keep bounded FP13 path enabled
yangzhuxinyzx Aug 27, 2026
1889515
[Kernel][SM70] Add exact q16 DFlash2 verification
yangzhuxinyzx Aug 27, 2026
395231a
Merge pull request #340 from Leonccaa/perf/nvfp4-weight-dequant-sm70-v2
yangzhuxinyzx Aug 27, 2026
ff97c07
Merge pull request #332 from 1CatAI/dependabot/pip/webcolors-25.10.0
yangzhuxinyzx Aug 27, 2026
7c550fc
Merge pull request #333 from 1CatAI/dependabot/pip/pandas-2.3.3
yangzhuxinyzx Aug 27, 2026
aeda07b
Merge pull request #335 from 1CatAI/dependabot/pip/wrapt-2.3.0
yangzhuxinyzx Aug 27, 2026
8fc2685
Merge pull request #356 from 1CatAI/codex/v100-fix-pr344-fp13-default…
yangzhuxinyzx Aug 27, 2026
5aa2ea8
Merge pull request #344 from 1CatAI/agent/private-v100-dsv4-pp2tp4-fo…
yangzhuxinyzx Aug 27, 2026
9d62e5d
[Perf][SM70] Accelerate Qwen3.8 QSA indexing
yangzhuxinyzx Aug 27, 2026
606482b
Merge pull request #304 from 1CatAI/dependabot/pip/sentence-transform…
yangzhuxinyzx Aug 27, 2026
e8d7184
Merge pull request #305 from 1CatAI/dependabot/pip/pillow-12.3.0
yangzhuxinyzx Aug 27, 2026
31de47b
Merge pull request #306 from 1CatAI/dependabot/pip/black-26.5.1
yangzhuxinyzx Aug 27, 2026
c29cf34
Merge pull request #269 from 1CatAI/agent/v100-xqa-pv-software-pipeli…
yangzhuxinyzx Aug 27, 2026
be44103
[CI] Use approved regex import in SM70 benchmarks
yangzhuxinyzx Aug 27, 2026
5adbb4a
Merge pull request #357 from 1CatAI/agent/v100-fix-pr346-regex-import…
yangzhuxinyzx Aug 27, 2026
5fe10f2
Merge pull request #346 from 1CatAI/codex/v100-dflash2-quality-audit-…
yangzhuxinyzx Aug 27, 2026
c220fa5
Merge branch 'main' into codex/v100-dflash2-prefill-closure-20260826-…
yangzhuxinyzx Aug 27, 2026
093f789
Merge pull request #350 from 1CatAI/codex/v100-dflash2-prefill-closur…
yangzhuxinyzx Aug 27, 2026
95fdf66
[Bugfix][SM70] Repair Qwen4Exp integration gates
yangzhuxinyzx Aug 27, 2026
282b693
Merge pull request #359 from 1CatAI/agent/v100-fix-pr345-integration-…
yangzhuxinyzx Aug 27, 2026
0942ef4
Merge remote-tracking branch 'onecat/main' into agent/v100-fix-pr345-…
yangzhuxinyzx Aug 27, 2026
4676f72
Merge pull request #360 from 1CatAI/agent/v100-fix-pr345-main-sync-20…
yangzhuxinyzx Aug 27, 2026
2d752e3
Merge pull request #345 from 1CatAI/codex/v100-qwen38-flash-next-nvfp…
yangzhuxinyzx Aug 27, 2026
91566c8
Merge branch 'main' into codex/v100-qwen38-flash-next-prefill-2026082…
yangzhuxinyzx Aug 27, 2026
5aad3a0
[Kernel] Accelerate Qwen3.8 Flash Next decode on SM70
yangzhuxinyzx Aug 27, 2026
8b36dae
Merge pull request #351 from 1CatAI/codex/v100-qwen38-flash-next-pref…
yangzhuxinyzx Aug 27, 2026
a42459f
[CI] Fix Qwen3.8 public integration hooks
yangzhuxinyzx Aug 27, 2026
cc093d5
Merge remote-tracking branch 'onecat/main' into agent/v100-audit-pr34…
yangzhuxinyzx Aug 27, 2026
32b6178
[CI][SM70] Start #361 audit repair
yangzhuxinyzx Aug 27, 2026
992f883
[Bugfix][SM70] Harden Qwen3.8 default fast paths
yangzhuxinyzx Aug 27, 2026
82f0d6b
Merge pull request #362 from 1CatAI/agent/v100-audit-pr341-glm53-2026…
yangzhuxinyzx Aug 27, 2026
6db601a
Merge pull request #341 from 1CatAI/codex/v100-glm53-flash-sm70-20260…
yangzhuxinyzx Aug 27, 2026
cd1c954
Merge pull request #363 from 1CatAI/agent/v100-audit-pr361-qwen38-82t…
yangzhuxinyzx Aug 27, 2026
98076cf
Merge branch 'main' into codex/v100-qwen38-flash-next-nvfp4-20260826-…
yangzhuxinyzx Aug 27, 2026
d6bdacc
Merge pull request #361 from 1CatAI/codex/v100-qwen38-flash-next-nvfp…
yangzhuxinyzx Aug 27, 2026
a64245d
[WIP] Repair #355 against latest main
yangzhuxinyzx Aug 27, 2026
0a272cd
[Core][SM70] Sync #355 with latest main
yangzhuxinyzx Aug 27, 2026
62b0979
[CI] Format q16 grouped verifier
yangzhuxinyzx Aug 27, 2026
d9ca65c
Merge pull request #364 from 1CatAI/agent/v100-repair-pr355-labd-q16-…
yangzhuxinyzx Aug 27, 2026
afabbcd
Merge pull request #355 from 1CatAI/codex/v100-dflash2-labd-q16-20260…
yangzhuxinyzx Aug 27, 2026
4ba7cb5
[WIP] Sync #328 with latest main
yangzhuxinyzx Aug 27, 2026
6e47d9f
[Kernel][SM70] Sync #328 with latest main
yangzhuxinyzx Aug 27, 2026
c689e06
[Core][SM70] Add adaptive DFlash2 lookup drafting
yangzhuxinyzx Aug 27, 2026
4cd1f0e
[Bugfix] Preserve burst tool-call arguments
yangzhuxinyzx Aug 27, 2026
7849d8b
[Core][SM70] Warm MRV2 GDN decode fallback
yangzhuxinyzx Aug 27, 2026
e0067ad
[Doc] Record adaptive DFlash2 validation
yangzhuxinyzx Aug 27, 2026
1d96b35
[CI] Format adaptive DFlash2 lookup
yangzhuxinyzx Aug 27, 2026
ee67907
[WIP] Sync #302 with latest main
yangzhuxinyzx Aug 27, 2026
035af5d
[Model][SM70] Sync #302 with latest main
yangzhuxinyzx Aug 27, 2026
e702439
Merge pull request #365 from 1CatAI/agent/v100-sync-pr328-latest-main…
yangzhuxinyzx Aug 27, 2026
11b2411
Merge pull request #367 from 1CatAI/agent/v100-sync-pr302-latest-main…
yangzhuxinyzx Aug 27, 2026
808504a
[CI][SM70] Start adaptive DFlash2 repair
yangzhuxinyzx Aug 27, 2026
0c8ed2a
[CI][SM70] Repair adaptive DFlash2 gates
yangzhuxinyzx Aug 27, 2026
15d6208
Merge pull request #328 from 1CatAI/codex/v100-dflash2-long-decay-wav…
yangzhuxinyzx Aug 27, 2026
fdc23bb
Merge pull request #302 from 1CatAI/agent/v100-dsv4-pp2tp4-qpn8-accur…
yangzhuxinyzx Aug 27, 2026
46fe1ab
Merge pull request #368 from 1CatAI/agent/v100-repair-pr366-static-20…
yangzhuxinyzx Aug 27, 2026
c199148
Merge pull request #366 from 1CatAI/codex/v100-dflash2-labd-adaptive-…
yangzhuxinyzx Aug 27, 2026
7e0e68a
[CI][SM70] Start PR #308 latest-main sync
yangzhuxinyzx Aug 27, 2026
6e0527d
[CI][SM70] Sync PR #308 to audited latest main
yangzhuxinyzx Aug 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .buildkite/test-amd.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -416,7 +416,7 @@ steps:
- tests/kernels/helion/
- vllm/platforms/rocm.py
commands:
- pip install helion==1.0.0
- pip install helion==1.4.0
- pytest -v -s kernels/helion/

- label: Kernels Mamba Test # TBD
Expand Down
2 changes: 1 addition & 1 deletion .buildkite/test_areas/kernels.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ steps:
- vllm/utils/import_utils.py
- tests/kernels/helion/
commands:
- pip install helion==1.0.0
- pip install helion==1.4.0
- pytest -v -s kernels/helion/


Expand Down
12 changes: 6 additions & 6 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ default_install_hook_types:
default_stages:
- pre-commit # Run locally
- manual # Run in CI
exclude: '(vllm/third_party/.*|flash_qla/.*)'
exclude: '(vllm/third_party/.*|flash_qla/.*|csrc/sm70_turbomind/lmdeploy/.*)'
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.14.0
Expand Down Expand Up @@ -35,6 +35,11 @@ repos:
rev: v1.7.7
hooks:
- id: actionlint
- repo: https://github.com/shellcheck-py/shellcheck-py
rev: 745eface02aef23e168a8afb6b5737818efbea95 # v0.11.0.1
hooks:
- id: shellcheck
args: ["-s", "bash", "--format=gcc", "--severity=error"]
- repo: https://github.com/astral-sh/uv-pre-commit
rev: 0.11.1
hooks:
Expand Down Expand Up @@ -177,11 +182,6 @@ repos:
entry: python tools/pre_commit/mypy.py 1 "3.13"
<<: *mypy_common
stages: [manual] # Only run in CI
- id: shellcheck
name: Lint shell scripts
entry: tools/pre_commit/shellcheck.sh
language: script
types: [shell]
- id: png-lint
name: Lint PNG exports from excalidraw
entry: tools/pre_commit/png-lint.sh
Expand Down
2 changes: 2 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -397,6 +397,7 @@ if(VLLM_GPU_LANG STREQUAL "CUDA")
"${VLLM_SM70_TURBOMIND_LMDEPLOY_ROOT}/src/turbomind/kernels/gemm/kernel/sm70_884_16.cu"
"${VLLM_SM70_TURBOMIND_ROOT}/ops/tm_registry_sm70.cu"
"${VLLM_SM70_TURBOMIND_ROOT}/ops/fp8_qpn8_sm70.cu"
"${VLLM_SM70_TURBOMIND_ROOT}/ops/mxfp4_qpn_m1_sm70.cu"
"${VLLM_SM70_TURBOMIND_ROOT}/ops/nvfp4_qpn4_sm70.cu"
"${VLLM_SM70_TURBOMIND_ROOT}/ops/qwen38_prefill_cutlass.cu"
"${VLLM_SM70_TURBOMIND_ROOT}/ops/nvfp4_qpn2_sm70.cu"
Expand Down Expand Up @@ -729,6 +730,7 @@ if(VLLM_GPU_LANG STREQUAL "CUDA" AND SM70_TURBOMIND_ARCHS)
SOURCES ${VLLM_SM70_SAMPLER_FRAGMENT_SRCS}
COMPILE_FLAGS ${VLLM_GPU_FLAGS}
ARCHITECTURES ${VLLM_GPU_ARCHES}
USE_SABI 3
WITH_SOABI)
set_target_properties(_sm70_sampler_C PROPERTIES
CXX_STANDARD 17
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -349,9 +349,9 @@ python -m pip install -e . --no-build-isolation

请使用微信扫描下方二维码加入群组:

![1Cat-vLLM 微信交流群二维码](docs/assets/wechat-group-qr-7.png)
<img width="966" height="1518" alt="e52eca541f6c191928963c97ac1b38e5" src="https://github.com/user-attachments/assets/73be9e1e-41c3-49d7-9d4e-db4ce97cce9b" />

> 提示:微信群二维码通常 7 天内有效。若扫描失败或提示过期,请重新打开本页查看最新图片,或关注仓库更新。
> 提示:微信群二维码通常 7 天内有效。若扫描失败或提示过期,请微信搜索微信号添加:YM_isi。

## Repository Notes

Expand Down
1 change: 1 addition & 0 deletions benchmarks/benchmark_dspark_api.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-License-Identifier: Apache-2.0
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project

"""Issue one reproducible OpenAI chat request for DSpark validation."""

Expand Down
1 change: 1 addition & 0 deletions benchmarks/benchmark_dspark_stream.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-License-Identifier: Apache-2.0
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project

"""Measure one streamed completions request with separate TTFT and TPOT."""

Expand Down
79 changes: 66 additions & 13 deletions benchmarks/benchmark_sm70_decode.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,20 +52,42 @@ def _sm70_fa2_d256_prefill_status(torch: Any) -> dict[str, Any]:
"sm70_d256_splitd_n32_paged_fwd",
)
optional_ops = ("sm70_d256_splitd_n32_dense_splitkv3_fwd",)
try:
importlib.import_module("vllm.vllm_flash_attn.flash_attn_interface")
except (AttributeError, ImportError, RuntimeError) as exc:
return {
"available": False,
"error": f"{type(exc).__name__}: {exc}",
"extension_file": None,
"extension_realpath": None,
"required_ops": {name: False for name in required_ops},
"optional_ops": {name: False for name in optional_ops},
}

extension_file = _module_file("vllm.vllm_flash_attn._vllm_fa2_C")
namespace = getattr(torch.ops, "_vllm_fa2_C", None)
import_error: Exception | None = None
if namespace is None or not all(hasattr(namespace, name) for name in required_ops):
try:
importlib.import_module("vllm.vllm_flash_attn.flash_attn_interface")
except (AttributeError, ImportError, RuntimeError) as exc:
import_error = exc
namespace = getattr(torch.ops, "_vllm_fa2_C", None)
if namespace is None or not all(hasattr(namespace, name) for name in required_ops):
library_path = os.getenv("VLLM_SM70_FA2_D256_LIBRARY")
if library_path is not None:
try:
torch.ops.load_library(library_path)
except (OSError, RuntimeError) as load_exc:
return {
"available": False,
"error": f"{type(load_exc).__name__}: {load_exc}",
"extension_file": library_path,
"extension_realpath": str(Path(library_path).resolve()),
"required_ops": {name: False for name in required_ops},
"optional_ops": {name: False for name in optional_ops},
}
extension_file = library_path
elif import_error is not None:
return {
"available": False,
"error": f"{type(import_error).__name__}: {import_error}",
"extension_file": None,
"extension_realpath": None,
"required_ops": {name: False for name in required_ops},
"optional_ops": {name: False for name in optional_ops},
}
namespace = getattr(torch.ops, "_vllm_fa2_C", None)
if extension_file is None:
extension_file = os.getenv("VLLM_SM70_FA2_D256_LIBRARY")
required_status = {
name: namespace is not None and hasattr(namespace, name)
for name in required_ops
Expand Down Expand Up @@ -169,6 +191,7 @@ def _tracked_env() -> dict[str, str]:
"VLLM_FLASH_",
"FLASH_ATTN",
"FLA_",
"PREFIX_",
"CUDA_MODULE_LOADING",
"TORCH_CUDA_ARCH_LIST",
"TORCHINDUCTOR_",
Expand Down Expand Up @@ -1172,6 +1195,8 @@ def _sm70_gdn_fla_policy() -> dict[str, Any]:

def _sm70_moe_policy() -> dict[str, Any]:
add_allreduce = _env_bool("VLLM_SM70_MOE_ADD_ALLREDUCE", False)
qwen38_router_topk = _env_bool("VLLM_SM70_QWEN38_ROUTER_TOPK", True)
qwen38_nvfp4_qpn_m1 = _env_bool("VLLM_SM70_NVFP4_QWEN38_MOE_QPN_M1_DECODE", True)
single_token_fastpath = _env_bool("VLLM_SM70_MOE_SINGLE_TOKEN_FASTPATH", False)
single_token_permute = _env_bool(
"VLLM_SM70_MOE_SINGLE_TOKEN_PERMUTE_FASTPATH", False
Expand Down Expand Up @@ -1203,6 +1228,12 @@ def _sm70_moe_policy() -> dict[str, Any]:
return {
"VLLM_SM70_MOE_ADD_ALLREDUCE": os.environ.get("VLLM_SM70_MOE_ADD_ALLREDUCE"),
"moe_add_allreduce_effective": add_allreduce,
"VLLM_SM70_QWEN38_ROUTER_TOPK": os.environ.get("VLLM_SM70_QWEN38_ROUTER_TOPK"),
"qwen38_router_topk_effective": qwen38_router_topk,
"VLLM_SM70_NVFP4_QWEN38_MOE_QPN_M1_DECODE": os.environ.get(
"VLLM_SM70_NVFP4_QWEN38_MOE_QPN_M1_DECODE"
),
"qwen38_nvfp4_qpn_m1_effective": qwen38_nvfp4_qpn_m1,
"VLLM_SM70_MOE_SINGLE_TOKEN_FASTPATH": os.environ.get(
"VLLM_SM70_MOE_SINGLE_TOKEN_FASTPATH"
),
Expand Down Expand Up @@ -1249,8 +1280,16 @@ def _sm70_moe_policy() -> dict[str, Any]:
),
"profile_trace_effective": profile_trace,
"expected_default": False,
"qwen38_router_topk_expected_default": True,
"qwen38_nvfp4_qpn_m1_expected_default": True,
"single_token_unpermute_expected_default": True,
"route_hit_oracle": (
"The exact Qwen3.8 E512/K10 lane requires "
"qwen38_router_topk_effective=true and the "
"`SM70 Qwen3.8 E512/K10 router top-k path enabled` marker. "
"The accepted routed-expert lane additionally requires "
"qwen38_nvfp4_qpn_m1_effective=true and the `SM70 Qwen3.8 "
"NVFP4 direct QPN-M1 expert path enabled` marker. "
"For CUDA-graph fast-path acceptance, require the C++ trace "
"`SM70 custom all_reduce_sum2 op reached ... capture=active`; "
"the Python MoERunner candidate log alone is not a custom-op hit. "
Expand All @@ -1267,6 +1306,7 @@ def _sm70_moe_policy() -> dict[str, Any]:


def _sm70_sampling_policy() -> dict[str, Any]:
use_v2_model_runner = _env_bool("VLLM_USE_V2_MODEL_RUNNER", False)
flash_0dot3_compile = _env_bool(
"VLLM_SM70_FLASH_V100_0DOT3_COMPILE_GRAPH",
False,
Expand All @@ -1279,6 +1319,8 @@ def _sm70_sampling_policy() -> dict[str, Any]:
full_lm_head = _env_bool("VLLM_SM70_ENABLE_LM_HEAD_FASTPATH", False)
dense_f16 = _env_bool("VLLM_SM70_ENABLE_DENSE_F16_FASTPATH", False)
return {
"VLLM_USE_V2_MODEL_RUNNER": os.environ.get("VLLM_USE_V2_MODEL_RUNNER"),
"use_v2_model_runner_effective": use_v2_model_runner,
"VLLM_SM70_GREEDY_TOKEN_FASTPATH": os.environ.get(
"VLLM_SM70_GREEDY_TOKEN_FASTPATH"
),
Expand Down Expand Up @@ -1319,14 +1361,25 @@ def _sm70_sampling_policy() -> dict[str, Any]:
and not full_lm_head
and not custom_top1_ar
),
"v2_greedy_tp_local_pair_policy": (
use_v2_model_runner
and greedy_fastpath
and not lm_head_top1
and not lm_head_top1_tc
and not full_lm_head
and not custom_top1_ar
),
"route_hit_oracle": (
"Accepted default greedy decode requires "
"`SM70 LM head top1 layout prepared` plus "
"`SM70 fused LM head top1 path enabled`; "
"The SM70 Flash-V100 compile-graph quality lane instead requires "
"VLLM_SM70_LM_HEAD_TOP1=0 and "
"compile_graph_local_logits_top1_policy=true, preserving greedy "
"pair-gather while avoiding the fused top1 epilogue. "
"pair-gather while avoiding the fused top1 epilogue. The MRv2 "
"single-token lane additionally requires "
"v2_greedy_tp_local_pair_policy=true and the "
"`SM70 MRv2 greedy TP-local pair path enabled` log marker. "
"`SM70 dense fp16 fast path enabled for LM head` is expected only "
"when the explicit full LM-head fast path gate is enabled. "
"The 0.0.3 LM-head baseline lane requires full LM-head fast path "
Expand Down
Loading
Loading