NVIDIA / NVIDIA/TensorRT-LLM

[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

Open
#15,634 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Customized kernels
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_prefill import (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_rule on Blackwell.
  • flashinfer-ai/flashinfer#3170 — flashinfer SM12x GDN support audit.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.