[Bug] Qwen3-Next (Gated-DeltaNet) fails at warmup on consumer Blackwell sm120 (RTX PRO 6000) — TRT-LLM 1.3.0rc19 bundles flashinfer 0.6.12 (Hopper-only GDN); please bump to >=0.6.13
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 14.7k
- Forks
- 2.8k
- Avg merge
- 2d 23h
- Merged PRs (30d)
- 489
Description
Summary
trtllm-serve cannot serve nvidia/Qwen3-Next-80B-A3B-Instruct-NVFP4 (or any Qwen3NextForCausalLM / Gated-DeltaNet model) on a consumer Blackwell GPU (sm120, RTX PRO 6000). The model dies during the Gated-DeltaNet (GDN) prefill warmup with a hard device-arch rejection from the bundled FlashInfer kernel.
Root cause is a packaging/version lag: TRT-LLM 1.3.0rc19 bundles flashinfer 0.6.12, whose chunk_gated_delta_rule / gdn_prefill kernel is Hopper-only and hard-rejects compute capability 12.0. FlashInfer >=0.6.13 added the sm120 GDN/delta-rule prefill kernel (see flashinfer-ai/flashinfer#3479, merged 2026-06-17, released in v0.6.13 on 2026-06-24).
Both Qwen3-Next and Blackwell are listed as supported, so this fails out-of-the-box.
Environment
- TensorRT-LLM: 1.3.0rc19 (NGC release container)
- GPU: NVIDIA RTX PRO 6000 Blackwell, sm120 / compute capability 12.0, single GPU
- Bundled flashinfer-python: 0.6.12
- Model:
nvidia/Qwen3-Next-80B-A3B-Instruct-NVFP4(ModelOpt NVFP4) - Architecture:
Qwen3NextForCausalLM(hybrid Gated-DeltaNet + MoE)
Reproduction
trtllm-serve nvidia/Qwen3-Next-80B-A3B-Instruct-NVFP4 \
--backend pytorch \
--extra_llm_api_options extra_llm_api_options.yaml
Server initializes, then aborts during GDN prefill warmup at model load.
Exact error
RuntimeError: delta rule kernel does not support this device major version: 12
raised from the bundled flashinfer GDN launcher, e.g.:
flashinfer/.../gdn_prefill_sm90/gdn_prefill_launcher.cu
The path component gdn_prefill_sm90 makes the Hopper-only scope explicit. gdn_mixer.py binds chunk_gated_delta_rule to the SM90-only FlashInfer GDN prefill kernel at import time, so on sm120 prefill aborts at warmup.
Root cause
- TRT-LLM 1.3.0rc19 pins/bundles flashinfer 0.6.12, which only ships the Hopper (sm90) GDN/delta-rule prefill kernel and additionally guards the datacenter-Blackwell GDN path behind CUDA >= 13.
- flashinfer >=0.6.13 adds the consumer Blackwell (sm_120a) delta-rule prefill kernel (flashinfer-ai/flashinfer#3479).
Workaround (verified)
Install a newer flashinfer into the container and force-wire the sm120 kernel:
pip install --upgrade "flashinfer-python>=0.6.13"
export FLASHINFER_CUDA_ARCH_LIST=12.0f
export FLASHINFER_FORCE_SM=120f
Plus a Blackwell-friendly extra_llm_api_options.yaml:
attn_backend: TRTLLM
enable_block_reuse: false
cuda_graph_config: null
moe_config:
backend: CUTLASS
After this, the GDN warmup succeeds and the model serves on sm120.
Ask
Bump the bundled/pinned flashinfer-python to >=0.6.13 in TensorRT-LLM releases so Qwen3-Next / Gated-DeltaNet models work on consumer Blackwell (sm120) out of the box, instead of relying on the Hopper-only kernel (or the slower device-agnostic Triton fallback).
Related
- NVIDIA/TensorRT-LLM#14973 — same crash and GPU (
delta rule kernel does not support this device major version: 12, sm120 RTX PRO 6000); internal fix gates flashinfer to sm90 + Triton fallback rather than bumping flashinfer. - NVIDIA/TensorRT-LLM#14780 — re-applies the SM>=90 guard around the same
gdn_prefillimport (primary repro on A100/SM80). - NVIDIA/TensorRT-LLM#13644 — origin PR that integrated the flashinfer GDN prefill kernel for Qwen3.5/Qwen3-Next.
- NVIDIA/TensorRT-LLM#11932 — sibling sm120 RTX PRO 6000 Qwen3-Next NVFP4 failure in the MoE path (TRTLLMGenFusedMoE / CUTLASS), the other broken kernel half.
- NVIDIA/TensorRT-LLM#14805 — chore bumping bundled flashinfer to 0.6.12 (no sm120 GDN coverage).
- flashinfer-ai/flashinfer#3479 — upstream PR adding the sm120 delta-rule prefill kernel (lands in 0.6.13).
- flashinfer-ai/flashinfer#2340 — upstream request to support
chunk_gated_delta_ruleon Blackwell. - flashinfer-ai/flashinfer#3170 — flashinfer SM12x GDN support audit.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the TRT-LLM release dependency pin for flashinfer-python and inspect gdn_mixer.py, where chunk_gated_delta_rule is bound to the prefill kernel. Confirm the bundled version is 0.6.12, update it to >=0.6.13, then run the trtllm-serve reproduction with Qwen3-Next on sm120. Done means GDN warmup completes without the device-architecture rejection.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, pytorch
- Domain
- ai, performance, release
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 64/100