Skip to content

[Kernel][ROCm] Native W4A16 kernel for AMD RDNA3 (gfx1100) — fp16 + bf16 - #41394

Merged
tjtanaa merged 48 commits into
vllm-project:mainfrom
JartX:perf/rdna3_w4a16_squashed
May 29, 2026
Merged

tjtanaa merged 48 commits into
vllm-project:mainfrom
JartX:perf/rdna3_w4a16_squashed

Conversation

@JartX

@JartX JartX commented Apr 30, 2026 •

Copy link
Copy Markdown
Contributor

Motivation

This work was driven by a concrete production problem: on RDNA3 the only fast W4A16 path was ExLlama, which is fp16-only, and casting bf16-trained models down to fp16 introduces numerical instability. Modern model families (Qwen2/Qwen3, Qwen3-Coder, Llama 3.x, Mistral, etc.) are trained and released in bf16; their weight ranges and activation magnitudes routinely exceed fp16's ±65504 dynamic range, producing inf/NaN propagation, silently degraded outputs, and garbled tool-calling / structured-output generations under load. The Triton W4A16 kernel does support bf16, but at ~82 tk/s it's roughly 3× slower than ExLlama fp16, forcing users into a "fast but numerically wrong" vs "correct but unusably slow" trade-off.

This PR removes that trade-off: native bf16 W4A16 at 205–345 tk/s (2.5–4.2× faster than Triton bf16), plus a fp16 path that beats ExLlama by 6–17% for users who don't need bf16. Models stay in their native bf16 dtype, no manual casts, no quality regression.

Summary

Adds a native HIP W4A16 kernel for AMD RDNA3 (gfx1100/1101/1102 — RX 7900 XT/XTX class), registered as RDNA3W4A16LinearKernel ahead of the Triton kernel on the ROCm priority list. Falls through gracefully on non-RDNA3 ROCm devices (CDNA / MI300) via can_implement() gating on vllm.platforms.rocm.on_gfx11().

Two compute paths share a single torch.ops._C.gptq_gemm_rdna3 entry (all dispatch in C++ to keep apply_weights torch.compile-friendly):

  • Scalar dot-product kernel for decode and any M < 16. fp16 uses v_dot2_f32_f16 (__builtin_amdgcn_fdot2); bf16 widens to fp32 to sidestep the missing v_pk_fma_bf16 on gfx11.
  • v_wmma_f32_16x16x16 kernel for bf16 prefill / batched (M ≥ 16). Two variants share a launcher: v1 (1 wave/block, 16M×16N tile) for M < 32, v2 (2 waves/block, 32M×16N tile, double-buffered LDS) for M ≥ 32.

The full architecture write-up, fragment-layout discussion, lessons learned (including reverted experiments) and bench commands live in csrc/quantization/gptq/README_RDNA3.md.

No open PR adds a native HIP W4A16 kernel for RDNA3. ExLlama (fp16-only) and Triton W4A16 are the existing options on ROCm; this kernel beats both at every concurrency tested and adds bf16 support that ExLlama lacks.

Note:
Also can load AWQ Like cyankiwi/Qwen3.5-9B-AWQ-BF16-INT4 or cyankiwi/Qwen3.5-9B-AWQ-INT4

End-to-end performance

All benchmarks run with evalscope perf openqa against vLLM serving Qwen3.6-27B-GPTQ-W4A16-G32 on RX 7900 XTX, tp=2, 50 requests, concurrency 100, output ~1800 tok.

Summary table (Qwen3.6-27B-GPTQ-W4A16-G32)

Kernel dtype max-num-seqs=8 max-num-seqs=32
Triton W4A16 bf16 82.4 tk/s —
Triton W4A16 fp16 83.2 tk/s —
ExLlama (no bf16) fp16 255.0 tk/s 382.5 tk/s
RDNA3 W4A16 (this PR) bf16 205.3 tk/s 345.6 tk/s
RDNA3 W4A16 (this PR) fp16 270.2 tk/s 445.7 tk/s

Common evalscope client command

evalscope perf \
  --url "http://127.0.0.1/v1/chat/completions" \
  --parallel 100 \
  --model INCCODER \
  --number 50 \
  --api openai \
  --dataset openqa \
  --stream

12 files changed, +2820 / 0 lines.

Test plan

  • Build the C++ extension in a ROCm container (gfx1100 target):
    uv pip install -e . --torch-backend=auto
    
  • Correctness — gptq_gemm_rdna3_wmma_probe op confirms mode-1 fragment layout with random-A.
  • Correctness — v1 vs v2 kernel parity check across multiple shapes / M / dtype:
    # max abs diff between v1 and v2 outputs is at numerical-rounding level# across {M=32..2048, K=N ∈ {4096, 5120, 11008}, fp16 / bf16}
    
  • Microbench M-sweep (csrc/quantization/gptq/tools/bench_prefill_msweep.py) over the 5 Qwen-class shapes confirms expected behaviour: WMMA bf16 wins at M ≥ 16, scalar fp16 stays competitive across all M, v2 saves 5–7% vs v1 at M ≥ 64.
  • End-to-end evalscope perf openqa against vllm serve on RX 7900 XTX, tp=2 — numbers in the table above.
  • Verified the kernel does NOT regress decode-only configs: pre-PR ExLlama fp16 baselines reproduced when the kernel is disabled via VLLM_DISABLED_KERNELS=RDNA3W4A16LinearKernel.
  • VGPR / spill audit (gfx1100 .note.AMDGPU.metadata static analysis): bf16 M_COUNT=8 went from 192-VGPR cap with 144 spilled to scratch → 130 VGPR / 0 spill. fp16 path register-clean throughout. WMMA v1/v2 both 43–44 VGPR.

Hardware tested

  • AMD Radeon RX 7900 XTX (gfx1100, 96 CUs, 24 GB)
  • ROCm runtime: rocm-X series (hipcc 7.2.1)
  • Model: Qwen3.6-27B-GPTQ-W4A16-G32 (group_size=32)
  • vLLM serving config: --attention-backend TRITON_ATTN --kv-cache-dtype fp8 --enable-prefix-caching (full flags in README)

The kernel is gated to gfx11 only; CDNA / MI3xx / RDNA4 fall through to TritonW4A16LinearKernel automatically.

Out of scope (tracked in README "Known limitations")

  • fp16 → WMMA dispatch: tested end-to-end, was a wash with scalar+fdot2 (445.7 vs 440.7 tk/s, within run-to-run variance) despite a 47% kernel microbench advantage. Dispatch stays bf16-only; the standalone WMMA op remains callable for fp16 if a future workload benefits.
  • Multi-wave WMMA with LDS-shared A (not just B). Realistic 10–15% more on bf16 prefill but a significantly bigger rewrite.
  • fp16 → fp32-output-buffer experiment: untested.
  • rocprof returns 0 for most counters on gfx1100 (only SQ_BUSY_CYCLES and SQ_WAVES work in practice on rocprofv3) — limits diagnostic depth.
## Motivation

This work was driven by a concrete production problem: on RDNA3 the only fast W4A16 path was ExLlama, which is fp16-only, and casting bf16-trained models down to fp16 introduces numerical instability. Modern model families (Qwen2/Qwen3, Qwen3-Coder, Llama 3.x, Mistral, etc.) are trained and released in bf16; their weight ranges and activation magnitudes routinely exceed fp16's ±65504 dynamic range, producing inf/NaN propagation, silently degraded outputs, and garbled tool-calling / structured-output generations under load. The Triton W4A16 kernel does support bf16, but at ~82 tk/s it's roughly 3× slower than ExLlama fp16, forcing users into a "fast but numerically wrong" vs "correct but unusably slow" trade-off.

This PR removes that trade-off: native bf16 W4A16 at 205–345 tk/s (2.5–4.2× faster than Triton bf16), plus a fp16 path that beats ExLlama by 6–17% for users who don't need bf16. Models stay in their native bf16 dtype, no manual casts, no quality regression.

Summary

Adds a native HIP W4A16 kernel for AMD RDNA3 (gfx1100/1101/1102 — RX 7900 XT/XTX class), registered as RDNA3W4A16LinearKernel ahead of the Triton kernel on the ROCm priority list. Falls through gracefully on non-RDNA3 ROCm devices (CDNA / MI300) via can_implement() gating on vllm.platforms.rocm.on_gfx11().

Two compute paths share a single torch.ops._C.gptq_gemm_rdna3 entry (all dispatch in C++ to keep apply_weights torch.compile-friendly):

  • Scalar dot-product kernel for decode and any M < 16. fp16 uses v_dot2_f32_f16 (__builtin_amdgcn_fdot2); bf16 widens to fp32 to sidestep the missing v_pk_fma_bf16 on gfx11.
  • v_wmma_f32_16x16x16 kernel for bf16 prefill / batched (M ≥ 16). Two variants share a launcher: v1 (1 wave/block, 16M×16N tile) for M < 32, v2 (2 waves/block, 32M×16N tile, double-buffered LDS) for M ≥ 32.

The full architecture write-up, fragment-layout discussion, lessons learned (including reverted experiments) and bench commands live in [csrc/quantization/gptq/README_RDNA3.md](https://claude.ai/chat/csrc/quantization/gptq/README_RDNA3.md).

No open PR adds a native HIP W4A16 kernel for RDNA3. ExLlama (fp16-only) and Triton W4A16 are the existing options on ROCm; this kernel beats both at every concurrency tested and adds bf16 support that ExLlama lacks.

End-to-end performance

All benchmarks run with evalscope perf openqa against vLLM serving Qwen3.6-27B-GPTQ-W4A16-G32 on RX 7900 XTX, tp=2, 50 requests, concurrency 100, output ~1800 tok.

Summary table (Qwen3.6-27B-GPTQ-W4A16-G32)

Kernel dtype max-num-seqs=8 max-num-seqs=32
Triton W4A16 bf16 82.4 tk/s —
Triton W4A16 fp16 83.2 tk/s —
ExLlama (no bf16) fp16 255.0 tk/s 382.5 tk/s
RDNA3 W4A16 (this PR) bf16 205.3 tk/s 345.6 tk/s
RDNA3 W4A16 (this PR) fp16 270.2 tk/s 445.7 tk/s

Full comparative table (Qwen3.6-27B-GPTQ-W4A16-G32)

All runs: RX 7900 XTX, tp=2, 50 requests, concurrency 100, ~1800 output tokens.

Kernel dtype max-num-seqs Output rate (tk/s) Total time (s) Avg lat. (s) P99 lat. (s) Avg TTFT (s) Avg TPOT (s) Speedup vs Triton*
Triton W4A16 bf16 8 82.37 1068.21 591.27 1068.20 429.72 0.092 1.00× (baseline)
Triton W4A16 fp16 8 83.23 1066.78 564.48 1066.77 408.99 0.088 1.01×
ExLlama fp16 8 255.00 346.19 195.14 346.18 142.82 0.030 3.10×
ExLlama fp16 32 382.52 229.91 154.43 229.90 42.83 0.064 4.65×
RDNA3 W4A16 (this PR) bf16 8 205.34 430.76 236.44 430.75 172.70 0.036 2.49×
RDNA3 W4A16 (this PR) bf16 32 345.64 259.83 172.64 259.83 48.81 0.069 4.20×
RDNA3 W4A16 (this PR) fp16 8 270.19 332.03 188.50 332.02 137.84 0.028 3.28×
RDNA3 W4A16 (this PR) fp16 32 445.74 203.65 137.94 203.65 39.61 0.054 5.41×

* Speedup vs Triton W4A16 bf16 @ max-num-seqs=8 (slowest baseline).

Head-to-head deltas

Comparison Output rate Δ
RDNA3 fp16 vs Triton fp16 (seqs=8) 270.19 vs 83.23 tk/s +224.6% (3.25×)
RDNA3 bf16 vs Triton bf16 (seqs=8) 205.34 vs 82.37 tk/s +149.3% (2.49×)
RDNA3 fp16 vs ExLlama fp16 (seqs=8) 270.19 vs 255.00 tk/s +5.96%
RDNA3 fp16 vs ExLlama fp16 (seqs=32) 445.74 vs 382.52 tk/s +16.5%
RDNA3 bf16 vs ExLlama fp16 (seqs=8)† 205.34 vs 255.00 tk/s −19.5%
RDNA3 bf16 vs ExLlama fp16 (seqs=32)† 345.64 vs 382.52 tk/s −9.6%

† ExLlama does not support bf16; this comparison is included only to quantify the cost of bf16 vs fp16 on the new kernel against the best fp16-only alternative. For the apples-to-apples bf16 comparison, see the Triton bf16 row (RDNA3 bf16 is 2.49–4.20× faster).

Detailed benchmarks (Qwen3.6-27B-GPTQ-W4A16-G32)

ExLlama — fp16, max-num-seqs=8

VLLM_DISABLED_KERNELS=TritonW4A16LinearKernel,ConchLinearKernel,RDNA3W4A16LinearKernel \
VLLM_TUNED_CONFIG_FOLDER=/app/moe_configs \
vllm serve /models/Qwen3.6-27B-GPTQ-W4A16-G32 \
  --gpu-memory-utilization 0.95 --max_model_len 262144 -tp 2 --port 8000 \
  --attention-backend TRITON_ATTN --enable-prefix-caching \
  --max-num-seqs 8 --kv-cache-dtype fp8 --dtype float16
Metric Value
Total generated 88,277 tokens
Avg output rate 255.00 tk/s
Total test time 346.19 s
Avg latency 195.140 s
P99 latency 346.182 s
Avg TTFT 142.824 s
Avg TPOT 0.030 s
Success rate 100.0%

ExLlama — fp16, max-num-seqs=32

VLLM_DISABLED_KERNELS=TritonW4A16LinearKernel,ConchLinearKernel,RDNA3W4A16LinearKernel \
VLLM_TUNED_CONFIG_FOLDER=/app/moe_configs \
vllm serve /models/Qwen3.6-27B-GPTQ-W4A16-G32 \
  --gpu-memory-utilization 0.95 --max_model_len 262144 -tp 2 --port 8000 \
  --attention-backend TRITON_ATTN --enable-prefix-caching \
  --max-num-seqs 32 --kv-cache-dtype fp8 --dtype float16
Metric Value
Total generated 87,947 tokens
Avg output rate 382.52 tk/s
Total test time 229.91 s
Avg latency 154.427 s
P99 latency 229.904 s
Avg TTFT 42.827 s
Avg TPOT 0.064 s
Success rate 100.0%

Triton W4A16 — bf16, max-num-seqs=8

VLLM_DISABLED_KERNELS=ConchLinearKernel,RDNA3W4A16LinearKernel \
VLLM_TUNED_CONFIG_FOLDER=/app/moe_configs \
vllm serve /models/Qwen3.6-27B-GPTQ-W4A16-G32 \
  --gpu-memory-utilization 0.95 --max_model_len 262144 -tp 2 --port 8000 \
  --attention-backend TRITON_ATTN --enable-prefix-caching \
  --max-num-seqs 8 --kv-cache-dtype fp8
Metric Value
Total generated 87,993 tokens
Avg output rate 82.37 tk/s
Total test time 1068.21 s
Avg latency 591.269 s
P99 latency 1068.199 s
Avg TTFT 429.724 s
Avg TPOT 0.092 s
Success rate 100.0%

Triton W4A16 — fp16, max-num-seqs=8

VLLM_DISABLED_KERNELS=ConchLinearKernel,RDNA3W4A16LinearKernel \
VLLM_TUNED_CONFIG_FOLDER=/app/moe_configs \
vllm serve /models/Qwen3.6-27B-GPTQ-W4A16-G32 \
  --gpu-memory-utilization 0.95 --max_model_len 262144 -tp 2 --port 8000 \
  --attention-backend TRITON_ATTN --enable-prefix-caching \
  --max-num-seqs 8 --kv-cache-dtype fp8 --dtype float16
Metric Value
Total generated 88,784 tokens
Avg output rate 83.23 tk/s
Total test time 1066.78 s
Avg latency 564.476 s
P99 latency 1066.771 s
Avg TTFT 408.985 s
Avg TPOT 0.088 s
Success rate 100.0%

RDNA3 W4A16 (this PR) — fp16, max-num-seqs=8

VLLM_TUNED_CONFIG_FOLDER=/app/moe_configs \
vllm serve /models/Qwen3.6-27B-GPTQ-W4A16-G32 \
  --gpu-memory-utilization 0.95 --max_model_len 262144 -tp 2 --port 8000 \
  --attention-backend TRITON_ATTN --enable-prefix-caching \
  --max-num-seqs 8 --kv-cache-dtype fp8 --dtype float16
Metric Value
Total generated 89,711 tokens
Avg output rate 270.19 tk/s
Total test time 332.03 s
Avg latency 188.498 s
P99 latency 332.022 s
Avg TTFT 137.837 s
Avg TPOT 0.028 s
Success rate 100.0%

RDNA3 W4A16 (this PR) — bf16, max-num-seqs=8

VLLM_TUNED_CONFIG_FOLDER=/app/moe_configs \
vllm serve /models/Qwen3.6-27B-GPTQ-W4A16-G32 \
  --gpu-memory-utilization 0.95 --max_model_len 262144 -tp 2 --port 8000 \
  --attention-backend TRITON_ATTN --enable-prefix-caching \
  --max-num-seqs 8 --kv-cache-dtype fp8
Metric Value
Total generated 88,453 tokens
Avg output rate 205.34 tk/s
Total test time 430.76 s
Avg latency 236.441 s
P99 latency 430.752 s
Avg TTFT 172.696 s
Avg TPOT 0.036 s
Success rate 100.0%

RDNA3 W4A16 (this PR) — bf16, max-num-seqs=32

VLLM_TUNED_CONFIG_FOLDER=/app/moe_configs \
vllm serve /models/Qwen3.6-27B-GPTQ-W4A16-G32 \
  --gpu-memory-utilization 0.95 --max_model_len 262144 -tp 2 --port 8000 \
  --attention-backend TRITON_ATTN --enable-prefix-caching \
  --max-num-seqs 32 --kv-cache-dtype fp8
Metric Value
Total generated 89,808 tokens
Avg output rate 345.64 tk/s
Total test time 259.83 s
Avg latency 172.637 s
P99 latency 259.827 s
Avg TTFT 48.806 s
Avg TPOT 0.069 s
Success rate 100.0%

RDNA3 W4A16 (this PR) — fp16, max-num-seqs=32

VLLM_TUNED_CONFIG_FOLDER=/app/moe_configs \
vllm serve /models/Qwen3.6-27B-GPTQ-W4A16-G32 \
  --gpu-memory-utilization 0.95 --max_model_len 262144 -tp 2 --port 8000 \
  --attention-backend TRITON_ATTN --enable-prefix-caching \
  --max-num-seqs 32 --kv-cache-dtype fp8 --dtype float16
Metric Value
Total generated 90,775 tokens
Avg output rate 445.74 tk/s
Total test time 203.65 s
Avg latency 137.941 s
P99 latency 203.645 s
Avg TTFT 39.607 s
Avg TPOT 0.054 s
Success rate 100.0%

Common evalscope client command

evalscope perf \
  --url "http://127.0.0.1/v1/chat/completions" \
  --parallel 100 \
  --model INCCODER \
  --number 50 \
  --api openai \
  --dataset openqa \
  --stream

12 files changed, +2820 / 0 lines.

Test plan

  • Build the C++ extension in a ROCm container (gfx1100 target):
    uv pip install -e . --torch-backend=auto
  • Correctness — gptq_gemm_rdna3_wmma_probe op confirms mode-1 fragment layout with random-A.
  • Correctness — v1 vs v2 kernel parity check across multiple shapes / M / dtype:
    # max abs diff between v1 and v2 outputs is at numerical-rounding level
    # across {M=32..2048, K=N ∈ {4096, 5120, 11008}, fp16 / bf16}
  • Microbench M-sweep (csrc/quantization/gptq/tools/bench_prefill_msweep.py) over the 5 Qwen-class shapes confirms expected behaviour: WMMA bf16 wins at M ≥ 16, scalar fp16 stays competitive across all M, v2 saves 5–7% vs v1 at M ≥ 64.
  • End-to-end evalscope perf openqa against vllm serve on RX 7900 XTX, tp=2 — numbers in the table above.
  • Verified the kernel does NOT regress decode-only configs: pre-PR ExLlama fp16 baselines reproduced when the kernel is disabled via VLLM_DISABLED_KERNELS=RDNA3W4A16LinearKernel.
  • VGPR / spill audit (gfx1100 .note.AMDGPU.metadata static analysis): bf16 M_COUNT=8 went from 192-VGPR cap with 144 spilled to scratch → 130 VGPR / 0 spill. fp16 path register-clean throughout. WMMA v1/v2 both 43–44 VGPR.

Hardware tested

  • AMD Radeon RX 7900 XTX (gfx1100, 96 CUs, 24 GB)
  • ROCm runtime: rocm-X series (hipcc 7.2.1)
  • Model: Qwen3.6-27B-GPTQ-W4A16-G32 (group_size=32)
  • vLLM serving config: --attention-backend TRITON_ATTN --kv-cache-dtype fp8 --enable-prefix-caching (full flags in README)

The kernel is gated to gfx11 only; CDNA / MI3xx / RDNA4 fall through to TritonW4A16LinearKernel automatically.

Out of scope (tracked in README "Known limitations")

  • fp16 → WMMA dispatch: tested end-to-end, was a wash with scalar+fdot2 (445.7 vs 440.7 tk/s, within run-to-run variance) despite a 47% kernel microbench advantage. Dispatch stays bf16-only; the standalone WMMA op remains callable for fp16 if a future workload benefits.
  • Multi-wave WMMA with LDS-shared A (not just B). Realistic 10–15% more on bf16 prefill but a significantly bigger rewrite.
  • fp16 → fp32-output-buffer experiment: untested.
  • rocprof returns 0 for most counters on gfx1100 (only SQ_BUSY_CYCLES and SQ_WAVES work in practice on rocprofv3) — limits diagnostic depth.

IMPORTANT(UPDATE: 2026-05-11):

This kernel is complemented by the following HIP kernels for kvcache int8_per_token_head and int4_per_token_head from the branch:

https://github.com/JartX/vllm/tree/feat/rdna3_int8_int4_hip_kernels

which also leverage the mechanisms of the following pull request:

#40835

Currently, all developments are being compiled into

https://github.com/JartX/vllm/tree/perf/rdna3_full_stack

It can be compiled with:

docker build -f docker/Dockerfile.rocm_fa -t vllm-rocm-rdna3-full-stack .

The Dockerfile includes a temporary fix to enable RCCL, as there's a confirmed bug in the official rccl version on AMD.

ROCm/legacy-rocm-build#6074 (comment)

Regards

JartX added 4 commits April 30, 2026 17:04
Adds a native HIP W4A16 GPTQ kernel for AMD RDNA3 (gfx1100/1101/1102),
registered as RDNA3W4A16LinearKernel ahead of the Triton kernel in the
ROCm priority list. Falls through on non-RDNA3 ROCm devices via
can_implement() gating on vllm.platforms.rocm.on_gfx11().

Two compute paths share a single Python entry point
(torch.ops._C.gptq_gemm_rdna3); all branching lives in C++ to keep
apply_weights torch.compile-friendly:

  * Scalar dot-product kernel (q_gemm_rdna3.cu) for decode and any
    M < 16. Templated on dtype × M_COUNT ∈ {1, 2, 4, 8}. fp16 uses
    v_dot2_f32_f16 (__builtin_amdgcn_fdot2) for the inner dot; bf16
    widens to fp32 to sidestep the missing v_pk_fma_bf16 on gfx11.
    Output goes through atomic_add_pk4 (a 64-bit packed CAS covering
    4 fp16/bf16 lanes per row) since gfx11 has no native packed
    atomic add for fp16/bf16.

  * WMMA kernel (q_gemm_rdna3_wmma.cu) for bf16 prefill and M >= 16
    batches, using v_wmma_f32_16x16x16_bf16_w32. K-split via
    gridDim.z (K_SPLIT = 4 if K >= 1024) multiplies wave count to
    raise CU saturation; epilogue uses shfl_xor pair + 32-bit packed
    CAS to avoid intra-block atomic contention. Wave32 fragment
    layout is mode 1 (A row, B col, output [m=2*i+lane_hi][n=lane_lo])
    identified empirically with the gptq_gemm_rdna3_wmma_probe op
    (still registered for future toolchain re-verification).

End-to-end benchmarks (Qwen3.6-27B-GPTQ-W4A16-G32, RX 7900 XTX tp=2,
evalscope perf openqa, 50 reqs, concurrency 100):

  Triton bf16 / fp16, seqs=8 :   82.4 / 83.2 tk/s
  ExLlama  fp16,      seqs=8 :  255.0 tk/s
  ExLlama  fp16,      seqs=32:  382.5 tk/s
  RDNA3    bf16,      seqs=8 :  205.3 tk/s
  RDNA3    bf16,      seqs=32:  345.6 tk/s
  RDNA3    fp16,      seqs=8 :  270.2 tk/s   (+5.96 % vs ExLlama fp16)
  RDNA3    fp16,      seqs=32:  445.7 tk/s   (+16.52 % vs ExLlama fp16)

Triton bf16 had no fp16-class baseline before this PR (ExLlama doesn't
support bf16); RDNA3 bf16 is ~2.5x faster than Triton bf16 at seqs=8.

Files:
  csrc/quantization/gptq/q_gemm_rdna3.cu
  csrc/quantization/gptq/q_gemm_rdna3_wmma.cu
  csrc/quantization/gptq/qdq_4_rdna3.cuh
  csrc/quantization/gptq/README_RDNA3.md
  vllm/model_executor/kernels/linear/mixed_precision/rdna3_w4a16.py
  + bindings in csrc/{ops.h,torch_bindings.cpp}, vllm/_custom_ops.py,
    vllm/platforms/rocm.py, kernel registry __init__.py, CMakeLists.txt

See csrc/quantization/gptq/README_RDNA3.md for the full architecture
write-up, fragment-layout discussion, lessons learned (including the
attempts that didn't work and were reverted), and bench commands.

AI-assisted change. Human reviewed every changed line and ran the
benches above end-to-end on RX 7900 XTX hardware.

Signed-off-by: JartX <sagformas@epdcenter.es>
Fixes stale or inaccurate comments / docstrings across the touched files
that contradicted the actual implementation. Numeric claims that were
not measurable (rocprof returns 0 for most counters on gfx1100) are
removed; verifiable wave-slot counts are kept.

q_gemm_rdna3.cu file header: rewritten. Was claiming a "FP32 tile +
cast at end" output design and "32 threads / 1 wave per block /
BLOCK_KN_SIZE=128" — both wrong. Real design is direct write to
T-typed output via global_atomic_cmpswap_b64 (atomic_add_pk4_*) with
THREADS_X=256 (8 waves/block) and BLOCK_KN_SIZE=256.

q_gemm_rdna3.cu inline:
* Drop unmeasurable "~26% HBM peak" / "~25% HBM2 BW" claims.
* Drop speculative "~5-10 μs/call → 11-22% of decode budget" estimate
  on the no-fp32-buffer benefit.
* "all 128 threads always do" → "all THREADS_X (=256) threads always
  do" (was stale from BLOCK_KN_SIZE=128 era).
* Add concrete fp16-WMMA-vs-scalar serving numbers (440.7 vs 445.7
  tk/s) to the dispatch-rationale comment.

q_gemm_rdna3_wmma.cu file header: corrected the C-fragment layout
description. Was saying lanes 0..15 hold cols 0..7 and lanes 16..31
hold cols 8..15 — but the verified mode-1 layout is lane=COLUMN
(n=lane_lo) with slot=ROW interleaved by lane_hi (lanes 0..15 = even
rows, lanes 16..31 = odd rows). Pointed at the detailed diagram on
gemm_q4_wmma_kernel.

_custom_ops.py: cleaned up dev-time bisect comment referencing a
commit hash that no longer exists in the squashed branch.

README_RDNA3.md: same cleanups (HBM%, rocprof bullet) plus minor
ASCII-diagram fix where the scalar fp16 dequant was mis-labelled as
"sub*scale" (the scalar uses one half2 FMA; "sub then mul" is the
WMMA TU's `_precise` variant).

Signed-off-by: JartX <sagformas@epdcenter.es>
Signed-off-by: JartX <sagformas@epdcenter.es>
Adds a second WMMA kernel (gemm_q4_wmma_kernel_v2) that targets the bf16
prefill regime (size_m >= 32) where v1's single-wave-per-block layout
left the SIMD WMMA pipeline under-fed. The v2 kernel:

  * Launches 2 waves per block on a 32M × 16N tile. Wave 0 handles
    rows 0..15, wave 1 rows 16..31. The 16×16 B-tile in LDS is shared
    (only wave 0 dequants); both waves load their own A slice from
    global and issue their own v_wmma. Dequant work is amortised over
    2 wmmas instead of 1.
  * Uses a double-buffered LDS B-tile (b_lds[2][16][16]). Wave 0
    dequants the next K-tile into the alternate buffer while both
    waves consume the current one. One __syncthreads() per K-iter
    remains and is cheap on a 2-wave block.

Dispatch:
  - launch_gemm_q4_wmma_v2 is the production WMMA entry; falls back to
    the v1 launcher internally when size_m < 32 (where the second wave
    would process out-of-range M rows and waste SIMD cycles — bench
    measured +47% regression at M=16 vs v1).
  - The auto-dispatch in gptq_gemm_rdna3 (bf16 && M >= 16) is unchanged.
    fp16 still routes to scalar, bf16 routes through v2's launcher
    which picks v1 vs v2 by size_m.

Bench (kernel microbench, RX 7900 XTX, bf16, K=N=4096, 5 Qwen shapes):

  M=32:    +5.7 %  (v2 slightly slower at the threshold)
  M=64:    -3.6 %
  M=128:   -7.0 %
  M=256:   -6.4 %
  M=512:   -6.9 %
  M=1024:  -5.3 %
  M=2048:  -5.3 %

Same 5-7% pattern across the other 4 Qwen-class shapes. The expected
+30-50% from "filling the WMMA pipeline" did not materialise because
gridDim is huge at high M and the wave scheduler already had plenty
of waves across the device — the win comes mostly from dequant
amortisation, not pipeline fill.

End-to-end serving impact pending re-bench. Expected modest (1-3%)
TTFT improvement on bf16 prefill.

README updated:
  - Dispatch tree now shows v1/v2 split inside the WMMA path.
  - Compute-paths ASCII diagram has 3 columns (scalar / WMMA v1 /
    WMMA v2) instead of 2.
  - New Round 6 in Development history with the per-M bench table.
  - New Lesson 12 with the design + diminishing-returns analysis
    on why v3 (N-tile=32, 4 waves) is not pursued in this round.

Signed-off-by: JartX <sagformas@epdcenter.es>

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@mergify mergify Bot added ci/build rocm Related to AMD ROCm labels Apr 30, 2026
@github-project-automation github-project-automation Bot moved this to Todo in AMD Apr 30, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces optimized W4A16 GPTQ kernels specifically designed for AMD RDNA3 (gfx1100) GPUs, providing a high-performance alternative to Triton and ExLlama kernels on the ROCm path. The implementation includes a scalar dot-product path for decode and a WMMA-based matrix-instruction path for prefill, incorporating hardware-specific optimizations such as bf16 widening to fp32 and packed CAS-64 atomic accumulation to overcome RDNA3 ISA limitations. Review feedback suggests replacing #define macros with constexpr constants in the C++ source files to improve type safety and scoping in accordance with modern C++ standards.

Comment thread csrc/rocm/q_gemm_rdna3.cu Resolved
@mergify

mergify Bot commented Apr 30, 2026

Copy link
Copy Markdown
Contributor

Hi @JartX, the pre-commit checks have failed. Please run:

uv pip install pre-commit>=4.5.1
pre-commit install
pre-commit run --all-files

Then, commit the changes and push to your branch.

For future commits, pre-commit will run automatically on changed files before each commit.

Tip

Is mypy failing?
mypy is run differently in CI. If the failure is related to this check, please use the following command to run it locally:
# For mypy (substitute "3.10" with the failing version if needed)
pre-commit run --hook-stage manual mypy-3.10

@AndreasKaratzas AndreasKaratzas left a comment •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks decent, but before I dive deeper into this I would like to see what other AMD engineers think of this. While this is a good feature to be added, it also forces us to commit into maintaining such features. I am not sure if this should be upstream or in a fork. I'll leave others to comment on that as well.

cc @micah-wil @Rohan138

UPDATE: I feel I owe a bit more explanation regarding this. One of the reasons that I say this is because our CI does not have RDNA3 devices. So one of the pitfalls is that any upcoming regression here would not be detected.

Comment thread vllm/platforms/rocm.py
Comment on lines 187 to 194
_ON_GFX1X = any(arch in _GCN_ARCH for arch in ["gfx11", "gfx12"])
# RDNA3 only (gfx11xx). Distinct from the broader _ON_GFX1X — used by the
# RDNA3 W4A16 GPTQ kernel to gate against gfx12 (RDNA4) which has different
# WMMA semantics.
_ON_GFX11 = "gfx11" in _GCN_ARCH
_ON_GFX12X = any(arch in _GCN_ARCH for arch in ["gfx12"])
_ON_MI3XX = any(arch in _GCN_ARCH for arch in ["gfx942", "gfx950"])
_ON_GFX9 = any(arch in _GCN_ARCH for arch in ["gfx90a", "gfx942", "gfx950"])

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is getting out of control. There should be a dataclass probably or something else for this one.

@Rohan138 Rohan138 Apr 30, 2026 •

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cc @gshtras this is likely going to get worse in the future with gfx12xx, do we have any threads/thoughts on cleaning this up?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello both, the comment is pending removal; it was just explaining why it was approved, but it was a topic to discuss with you, because the list is growing :S

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've also uploaded the readme file as a log, so you can tell me where I could document the architecture, tests, etc., how the kernel is structured, because I had to do it through reverse engineering.

The readme shouldn't just stay there.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My only concern here is gfx115x which is not a Radeon. Should it also be included?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@gshtras I can find a way to skip it

Signed-off-by: JartX <sagformas@epdcenter.es>
@mergify

mergify Bot commented Apr 30, 2026

Copy link
Copy Markdown
Contributor

Hi @JartX, the pre-commit checks have failed. Please run:

uv pip install pre-commit>=4.5.1
pre-commit install
pre-commit run --all-files

Then, commit the changes and push to your branch.

For future commits, pre-commit will run automatically on changed files before each commit.

Tip

Is mypy failing?
mypy is run differently in CI. If the failure is related to this check, please use the following command to run it locally:
# For mypy (substitute "3.10" with the failing version if needed)
pre-commit run --hook-stage manual mypy-3.10

JartX added 2 commits April 30, 2026 20:16
Signed-off-by: JartX <sagformas@epdcenter.es>
Signed-off-by: JartX <sagformas@epdcenter.es>
@@ -0,0 +1,201 @@
# SPDX-License-Identifier: Apache-2.0
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
"""W4A16 GPTQ kernel for AMD RDNA3 (gfx1100) — fp16 + bf16.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could this kernel work for general w4a16 (e.g., awq, etc) or is it specific to gptq?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@BowenBao
Yes, you can also load cyankiwi/Qwen3.5-9B-AWQ-BF16-INT4 or cyankiwi/Qwen3.5-9B-AWQ-INT4

The GPTQ is to follow the convention; I've also changed the references in the PR text :)

@JartX JartX changed the title [Kernel][ROCm] Native W4A16 GPTQ kernel for AMD RDNA3 (gfx1100) — fp16 + bf16 [Kernel][ROCm] Native W4A16 kernel for AMD RDNA3 (gfx1100) — fp16 + bf16 May 1, 2026
Two launch-parameter overrides for RDNA3 (gfx11xx, wave32) that
dramatically improve prefill throughput on the unified attention kernel:

1. BLOCK_M=32 (vs default 16): doubles Q data reuse per K/V tile load.
   Benchmarked +97% TFLOPS at seq_len=4096 (49.2 vs 25.0 TF).

2. num_warps=2, num_stages=1 (vs Triton default of 4 warps): the
   per-block workload with BLOCK_M=16 × TILE_SIZE=32 is too small for
   4 waves — extra register pressure and sync overhead for no benefit.
   Benchmarked +57% TFLOPS at seq_len=1024 (33.4 vs 21.3 TF).

Combined improvement on RX 7900 XTX (Qwen3.5-27B shapes, bf16):

  seq_len  baseline    patched    speedup
     512    8.9 TF     13.6 TF    1.5×
    1024   21.3 TF     36.3 TF    1.7×
    2048   18.0 TF     46.1 TF    2.6×
    4096   11.9 TF     44.5 TF    3.7×

Both changes are gated on gfx11 detection (on_gfx11()) and prefill-only
(max_seqlen_q > 1 for BLOCK_M, not use_3d for launch kwargs). Decode
(3D path) is untouched — verified no regression at batch=1..32.

Signed-off-by: JartX <sagformas@epdcenter.es>
@mgehre-amd

Copy link
Copy Markdown
Contributor

Hey, nice to see those improvements!

I had opened #40977 to address w4a16 for both fp16 and bf16 activations on gfx11/gfx12 (and specifically tuned for Strix Halo) using a new HIP kernel for the skinny GEMM (decode) and a Triton kernel for prefill.

I will check your PR in more detail to see where our approaches differ and how they could be combined.

@JartX

JartX commented May 4, 2026

Copy link
Copy Markdown
Contributor Author

@mgehre-amd, thanks for taking a look. My implementation is focused solely on the GFX1100; I've gone into the nitty-gritty down to the core. But if we can combine our efforts, even better. I'd also like you to see the downstream version I have.

@rasmith

rasmith commented May 4, 2026

Copy link
Copy Markdown
Contributor

I'd like to see this broken up into smaller PRs with tests. For example, I'd like to see a test for each custom op.

@JartX

JartX commented May 4, 2026 •

Copy link
Copy Markdown
Contributor Author

@rasmith Yes, the last links refer to documentation and how the branch rdna3_full_stack (It's not from this PR) about having right people with the right expertise to have a lookis structured and how many branches it comprises; they were just in case you wanted to take a look. For now, efforts will be focused on working with @mgehre-amd to see how we can combine our efforts. The other branch with everything won't be released all at once, not by a long shot; that would be crazy. But the kernel is the kernel, along with the performance data.

@mgehre-amd

Copy link
Copy Markdown
Contributor

Thanks again for the detailed write-up — your gfx1100 numbers look great. I gave the kernel a closer look on AMD Strix Halo (gfx1151, RDNA 3.5, 40 CUs, LPDDR5X-8000) since the on_gfx11() gate matches gfx1151 too. Sharing all the numbers in case they're useful — fully understand gfx1151 is outside the PR's stated target.

I compared this PR head-to-head against the hybrid W4A16 kernel I'm working on for gfx1151 (#40977). To make it apples-to-apples I rebased my branch onto the same upstream base as this PR (b4806c8ee1, vllm-project/vllm main from 2026-04-30), and reran the same benchmarks for both.

Setup

  • vLLM built locally with uv pip install -e ., torch 2.10.0 + ROCm nightly, gfx1151 venv.
  • Both kernels: same upstream base, same venv, same bench command (only --model/--input-len vary):
    vllm bench latency --model <MODEL> \
      --input-len <128|1920> --output-len 128 \
      --max-model-len 4096 --max-num-seqs 1
  • Each rep = full server restart + warmup. 3 reps for the main 4 cases (variance), 1 rep for the broader 10-case sweep.
  • Each run wrapped in an exclusive GPU lock — no concurrent GPU work.
  • Verified the expected kernel name in every startup log (Using RDNA3W4A16LinearKernel or Using HybridW4A16LinearKernel).

Variance (3 reps × 4 cases)

Run-to-run variance is very tight on this rig: TTFT sd ≤ 15 ms, TPOT sd ≤ 0.02 ms — well under the 1% iGPU bench noise floor. Every Δ below is far outside the 5×pooled-stddev threshold.

Case Kernel TTFT mean ± sd (ms) TPOT mean ± sd (ms)
Qwen3-4B-quantized.w4a16 in=128/out=128 RDNA3 141.6 ± 0.7 14.05 ± 0.01
Qwen3-4B-quantized.w4a16 in=128/out=128 Hybrid 68.0 ± 0.0 13.57 ± 0.01
Qwen3-4B-quantized.w4a16 in=1920/out=128 RDNA3 1930.7 ± 14.7 15.62 ± 0.02
Qwen3-4B-quantized.w4a16 in=1920/out=128 Hybrid 759.3 ± 1.9 15.13 ± 0.00
gemma-3-4b-it-quantized.w4a16 in=128/out=128 RDNA3 137.3 ± 0.8 16.72 ± 0.01
gemma-3-4b-it-quantized.w4a16 in=128/out=128 Hybrid 65.7 ± 0.5 15.47 ± 0.00
gemma-3-4b-it-quantized.w4a16 in=1920/out=128 RDNA3 1694.6 ± 1.5 25.35 ± 0.01
gemma-3-4b-it-quantized.w4a16 in=1920/out=128 Hybrid 724.3 ± 0.9 24.07 ± 0.02

(Note: gemma-3-4b's TPOT growth with context length is attention-bound, not GEMM-bound — gemma-3 has head_dim=256 and sliding_window=1024, both of which disable the ROCm custom paged-attn fast path. Both kernels are affected equally; the W4A16 kernel does the same work per decode step regardless of context.)

Full 10-case sweep (5 models × 2 shapes, 1 rep each)

This shows what happens on the larger model suite, including AWQ and asymmetric compressed-tensors models. PR 41394's RDNA3 kernel only supports symmetric uint4b8, so the asymmetric models fall through to TritonW4A16 (correctly, per can_implement()). The hybrid kernel accepts both symmetric and asymmetric.

Model in/out RDNA3 TTFT / TPOT (ms) Kernel Hybrid TTFT / TPOT (ms) ΔTTFT ΔTPOT
RedHatAI/Qwen3-4B-quantized.w4a16 (sym, g=128) 128/128 138 / 13.98 RDNA3 → Hybrid 67 / 13.55 −51% −3%
RedHatAI/Qwen3-4B-quantized.w4a16 (sym, g=128) 1920/128 1894 / 15.56 RDNA3 → Hybrid 759 / 15.11 −60% −3%
Qwen/Qwen2.5-7B-Instruct-AWQ (asym, g=128) 128/128 119 / 83.48 Triton (fallback) → Hybrid 98 / 20.92 −18% −75%
Qwen/Qwen2.5-7B-Instruct-AWQ (asym, g=128) 1920/128 2014 / 85.37 Triton (fallback) → Hybrid 1183 / 21.54 −41% −75%
RedHatAI/gemma-3-4b-it-quantized.w4a16 (sym, g=128) 128/128 137 / 16.74 RDNA3 → Hybrid 65 / 15.48 −52% −8%
RedHatAI/gemma-3-4b-it-quantized.w4a16 (sym, g=128) 1920/128 1680 / 25.24 RDNA3 → Hybrid 722 / 24.03 −57% −5%
RedHatAI/Qwen3-8B-quantized.w4a16 (asym, g=128) 128/128 146 / 112.45 Triton (fallback) → Hybrid 139 / 24.46 −5% −78%
RedHatAI/Qwen3-8B-quantized.w4a16 (asym, g=128) 1920/128 3204 / 115.20 Triton (fallback) → Hybrid 1533 / 26.08 −52% −77%
trymirai/SmolLM2-1.7B-Instruct-AWQ (asym, g=32) 128/128 38 / 22.71 Triton (fallback) → Hybrid 47 / 7.29 +24% −68%
trymirai/SmolLM2-1.7B-Instruct-AWQ (asym, g=32) 1920/128 775 / 25.88 Triton (fallback) → Hybrid 417 / 10.54 −46% −59%

Notes

  • None of this is a knock on the PR — your gfx1100 numbers look great and that's the hardware you're targeting. The WMMA prefill kernel and the M ≥ 32 double-buffered LDS variant are clearly designed around the 96-CU GDDR6 part. On 40-CU LPDDR5X they spend more cycles waiting on memory than on compute, and prefill in particular shows a 2× gap.
  • For the asymmetric AWQ / CT models, this PR correctly falls through to TritonW4A16 (per can_implement()) — no regression vs the prior state, just no acceleration. The hybrid kernel covers those too, which is most of the gap on those rows above.

Maybe you want to try running the HybridW4A16 from my PR on your gfx1100 and check how performance compares for you?

@JartX

JartX commented May 5, 2026

Copy link
Copy Markdown
Contributor Author

@mgehre-amd

Hmm, I'm looking at your PR code, some very interesting things that have given me an idea, and the gap before seeing it is real. Wow, what a pair we've been put together, hahahaha 👿

Mirror Hybrid PR vllm-project#40977's union+pointer-cast data-flow opacity to defeat
clang ROCm 7.2 InstCombine fold (LLVM #76000) that previously dropped
v_dot2_f32_bf16 from our M=1 bf16 path despite multiple inline-asm and
builtin attempts:

  - Activations stored in a fp32-aliased union via uint32 writes
  - Weight magic values (nibble | 0x4300) written into another union
  - Inner dot uses *((bf16x2_t*)(&union.f[b])) pointer-cast to force
    bf16-typed reads, breaking the InstCombine fold chain
  - sum_a computed via a second v_dot2 with bf162(1.0, 1.0) constant,
    avoiding any fp32 widening of activations
  - Bias correction y_b_f * partial + z_b_f * sum_a unchanged

Verified via llvm-objdump --offloading + --disassemble-symbols on the
gemm_q4_kernel_rdna3<__hip_bfloat16, 1> instance: 32 v_dot2_f32_bf16
emits (was 0). VGPR=35.

Bench impact (Qwen3-4B b=1 in128/out128): 847 ms -> 828 ms (-2.2%).
Modest because M=1 decode is memory-bound on gfx1100 — the fp32 FMA
chain we replaced was already fast, v_dot2 saves only a few cycles
per int32 weight word. Closing the rest of the gap to Hybrid (~17%
on small models) requires architectural changes (YTILE-style multi-N
processing, DPP wave reduce instead of atomic CAS).

Signed-off-by: JartX <sagformas@epdcenter.es>
@tjtanaa
tjtanaa merged commit 0cff074 into vllm-project:main May 29, 2026
179 of 180 checks passed
@github-project-automation github-project-automation Bot moved this from Todo to Done in AMD May 29, 2026
Liuweixiong0118 pushed a commit to Liuweixiong0118/vllm that referenced this pull request Jun 1, 2026
…f16 (vllm-project#41394)

Signed-off-by: JartX <sagformas@epdcenter.es>
Signed-off-by: Liuweixiong0118 <lwx34158427@gmail.com>
hynky1999 added a commit to macrodata-labs/vllm that referenced this pull request Jun 2, 2026
* [MM] Enable FlashInfer metadata support for Qwen2.5-VL vision attention (#42787)

Signed-off-by: Hua Huang <huah@nvidia.com>
Co-authored-by: Isotr0py <mozf@mail2.sysu.edu.cn>

* [Docs] Fix stale version number in token_embed.md (#43488)

Signed-off-by: holegots <ikun3.1415927@gmail.com>

* [Docs] Fix stale version number in token_classify.md (#43489)

Signed-off-by: holegots <ikun3.1415927@gmail.com>

* [MoE] Migrate W4A8 CT to oracle kernel setup (#42680)

Signed-off-by: Siddharth Bedekar <bedeksid@gmail.com>
Co-authored-by: OpenAI Codex <codex@openai.com>

* [Mooncake] Add metrics for MooncakeStoreConnector operations (#43392)

* [ROCm][Critical] Fix the GDN import bug (#43486)

Signed-off-by: tjtanaa <tunjian.tan@embeddedllm.com>

* Revert "[Misc] add humming to dependencies" (#43492)

* [Bugfix] Fix reasoning dropped on streaming boundary deltas (#42691)

Signed-off-by: sfeng33 <4florafeng@gmail.com>

* [Model Runner v2] Force v1 runner for tests (#43233)

Signed-off-by: yewentao256 <zhyanwentao@126.com>

* [KV Connector] Keep MooncakeStore full hits block-aligned (#43494)

Signed-off-by: Dao Le <daole@inferact.ai>
Signed-off-by: Dao Le <Dao007forever@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>

* [kv_offload]: Add DSv4 support (#43142)

Signed-off-by: Or Ozeri <oro@il.ibm.com>

* [ROCm][CI] Stabilize 400 error return code for invalid schema inputs (#43016)

Signed-off-by: Andreas Karatzas <akaratza@amd.com>

* [ROCm] [DSv4] [Perf] Support DeepSeek v4 MTP (#43385)

Signed-off-by: tjtanaa <tunjian.tan@embeddedllm.com>

* Tuning script and configs for Triton Mamba SSU kernel (#43083)

Signed-off-by: Banani Ghosh <bg2502@nyu.edu>
Signed-off-by: Daniel Serebrenik <daserebrenik@nvidia.com>
Co-authored-by: Banani Ghosh <bg2502@nyu.edu>

* File system secondary tier implemented in python (#41735)

Signed-off-by: Rotem Shavitt <rshavitt@gmail.com>
Signed-off-by: Or Ozeri <oro@il.ibm.com>
Co-authored-by: Or Ozeri <oro@il.ibm.com>

* [Kernel] Add mhc_pre_big_fuse_with_norm_tilelang  (#43474)

Signed-off-by: Jee Jee Li <jeejeelee@inferact.ai>

* fix: MoE model using shared routed experts crashes on AMD GPUs (#42373)

Signed-off-by: weizhou.lan@daocloud.io <weizhou.lan@daocloud.io>

* [Docs] Reorganize offline inference docs.  (#43552)

Signed-off-by: wang.yuqi <yuqi.wang@daocloud.io>
Signed-off-by: wang.yuqi <noooop@126.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* [Docker] Non-root support for vllm-openai; add opt-in vllm-openai-nonroot target (#40275)

Signed-off-by: TheDuyIT <nduy250299@gmail.com>
Signed-off-by: dtnguyen <dtnguyen@nvidia.com>
Co-authored-by: Claude <noreply@anthropic.com>

* [Feat][KVConnector] Support DSV4 in SimpleCPUOffloadBackend (#42296)

Signed-off-by: Yifan Qiao <yifanqiao@inferact.ai>

* [Doc] Add section on escalating stalled contributions (#43568)

Signed-off-by: esmeetu <jasonailu87@gmail.com>

* Reduce memory usage for granite_speech. (#42933)

Signed-off-by: Yihuki <wangbovbvb@gmail.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* [KV Connector] Handle Mooncake finish after preemption (#43281)

Signed-off-by: Zhewen Li <zhewenli@inferact.ai>
Co-authored-by: Zhewen Li <zhewenli@inferact.ai>

* [Misc] Print accuracy value for PD tests even on success  (#43583)

Signed-off-by: NickLucche <nlucches@redhat.com>

* [Kernel] Remove NormGateLinear (#43554)

Signed-off-by: Jee Jee Li <jeejeelee@inferact.ai>

* [XPU] Ensure RNG offset alignment with PyTorch requirements in XPU sampler (#43028)

Signed-off-by: chaojun-zhang <chaojun.zhang@intel.com>
Signed-off-by: Chaojun Zhang <chaojun.zhang@intel.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* [LoRA] Add one shot triton kernel For MoE LoRA (#42290)

Signed-off-by: Jee Jee Li <pandaleefree@gmail.com>

* [DeepSeek V4] Move MegaMoE input prep kernel to nvidia/ops (#43632)

Signed-off-by: Woosuk Kwon <woosuk@inferact.ai>

* [KV Connector][Bugfix] MooncakeStore: don't double-apply Eagle prune in load_mask (#43516)

Signed-off-by: Dao Le <daole@inferact.ai>
Signed-off-by: Dao Le <Dao007forever@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>

* [KV Connector] Propagate MooncakeStore load failures (#42788)

Signed-off-by: Dao Le <Dao007forever@gmail.com>

* [Bugfix] fix device mismatch in MiniCPM-o-4_5 resampler (#43194)

Signed-off-by: Yan Ma <yan.ma@intel.com>

* [Frontend] Split the offline inference APIs and utils. (#43553)

Signed-off-by: wang.yuqi <yuqi.wang@daocloud.io>
Signed-off-by: wang.yuqi <noooop@126.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* [Bugfix][Model] Fix GPT2ForSequenceClassification sub-module prefix (#43579)

Signed-off-by: QingZhou-YangHY <3868850350@qq.com>
Co-authored-by: Cyrus Leung <tlleungac@connect.ust.hk>

* [GDN] GDN Prefill kernel for SM100 (#43273)

Signed-off-by: Thien Tran <gau.nernst@yahoo.com.sg>

* [CPU] Enable non-divisible GQA for decode workitems in mixed batches (#43032)

Signed-off-by: zhejiangxiaomai <zhenhui.zhao@intel.com>

* Upgrade tpu-inference to v0.20.0 (#43394)

* Add CuTe DSL sparse compressor support (#43584)

Signed-off-by: Yongye Zhu <zyy1102000@gmail.com>
Co-authored-by: OpenAI Codex <codex@openai.com>
Co-authored-by: Yongye Zhu <zyy1102000@gmail.com>

* [chores][log] change registry log from `warning` to `debug` (#43045)

Signed-off-by: Hank <hcc.mayday@gmail.com>

* [Bugfix] Apply fc_norm in Eagle3DeepseekV2 combine_hidden_states (#43482)

Signed-off-by: Yubo Wang <yubowang2019@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>

* [KV Transfer] Enable HMA by default for connectors that support it (#41847)

Signed-off-by: Ethan Feng <ethan.fengch@gmail.com>

* [Misc][Refactor][ROCm] Convert MoRI-related envvars to extra config args (#43303)

Signed-off-by: simondanielsson <simon.danielsson99@hotmail.com>
Co-authored-by: TJian <tunjian.tan@embeddedllm.com>

* [Misc] Support interleaved custom image benchmark datasets (#43636)

Signed-off-by: ThibaultCastells <thib.castells@icloud.com>

* [Reasoning] [Bugfix] Reject invalid thinking_token_budget values (#43402)

Signed-off-by: linzm1007 <linzm1007@126.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* [Model] Use AutoWeightsLoader for InternLM2 (#38278)

Signed-off-by: Jesus De Jesus <dejesus.9297@gmail.com>
Signed-off-by: javierdejesusda <javier.dejesusj9@gmail.com>
Co-authored-by: Cyrus Leung <tlleungac@connect.ust.hk>

* [XPU] Fix fused MoE LoRA kernel crash on XPU by using platform-agnos num_compute_units (#43646)

Signed-off-by: Chaojun,Zhang <chaojun.zhang@intel.com>

* Fix CuPy runtime deps and restore humming (#43530)

Signed-off-by: Mohammad Miadh Angkad <176301910+mmangkad@users.noreply.github.com>

* [Docs][ROCm] MoRI-IO Connector Usage Guide (#43603)

Signed-off-by: simondanielsson <simon.danielsson99@hotmail.com>
Signed-off-by: Simon Danielsson <70206058+simondanielsson@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* [ROCm][CI] Extend ROCm quick reduce coverage (#40990)

Signed-off-by: Andreas Karatzas <akaratza@amd.com>

* [Feat][DSV4] Fuse q pad into deepseek v4 fused kernel (#43162)

* [MoE Refactor] Migrate ModelOptMxFp8FusedMoE to oracle (#42768)

Signed-off-by: Bill Nell <bnell@redhat.com>
Co-authored-by: Robert Shaw <114415538+robertgshaw2-redhat@users.noreply.github.com>

* [MoE Refactor] W4a8 int8 oracle (#42789)

Signed-off-by: Bill Nell <bnell@redhat.com>
Co-authored-by: Robert Shaw <114415538+robertgshaw2-redhat@users.noreply.github.com>

* [ROCm] Remove MegaMoE integration in deepseek v4 (#43629)

Signed-off-by: Woosuk Kwon <woosuk@inferact.ai>

* Add LM head quantization support for ModelOpt (#42124)

Signed-off-by: weimingc <17592131+meenchen@users.noreply.github.com>

* [Doc] Add line limit to AGENTS.md (#43635)

Signed-off-by: Woosuk Kwon <woosuk@inferact.ai>
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Co-authored-by: Mark McLoughlin <markmc@redhat.com>

* [DSv4] Drop _get_compressed_kv_buffer in DeepseekCompressor (#43690)

Signed-off-by: Woosuk Kwon <woosuk@inferact.ai>

* [CI] Soft-fail AMD entrypoints mirror tests (#43709)

Signed-off-by: Kevin Luu <kevin@inferact.ai>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* [Kernel] Porting  fuse_minimax_qk_norm  to manual fusion (#43410)

Signed-off-by: Jee Jee Li <jeejeelee@inferact.ai>

* [KV Connector] MooncakeStore: drop dead discard_partial_chunks parameter (#43627)

Signed-off-by: Zhewen Li <zhewen@inferact.ai>
Co-authored-by: Zhewen Li <zhewen@inferact.ai>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* [Bugfix][V1] Fix TOCTOU race causing intermittent `EADDRINUSE` on multi-API-server DP startup (#42585)

Signed-off-by: Vadim Gimpelson <vadim.gimpelson@gmail.com>
Signed-off-by: Vadim Gimpelson <156319763+vadiklyutiy@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* [ci] Add arm64 ci image (#41303)

Signed-off-by: khluu <khluu000@gmail.com>
Signed-off-by: Kevin H. Luu <khluu000@gmail.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* [Bugfix] Split attention groups by num_heads_q for spec-decode drafts (#43543)

Signed-off-by: Luciano Martins <lucianommartins@users.noreply.github.com>
Co-authored-by: Luciano Martins <lucianommartins@users.noreply.github.com>

* [Rust Frontend] Add reasoning/tool parser & renderer roundtrip tests (#43582)

Signed-off-by: Bugen Zhao <i@bugenzhao.com>

* [ROCm][CI] Fix ROCm multimodal Qwen2.5-VL activation compile and Phi4MM ragged image mask handling (#43647)

Signed-off-by: Andreas Karatzas <akaratza@amd.com>

* [Perf] Optimize Fp8BlockScaledMMLinearKernel input_scale tensor using new_empty() (#43677)

Signed-off-by: Xin Yang <xyangx@amazon.com>

* [Attention] Make FlexAttention and FlashAttention use num-blocks first layouts (#42095)

Signed-off-by: Lucas Wilkinson <lwilkins@redhat.com>
Signed-off-by: Matthew Bonanni <mbonanni@redhat.com>
Co-authored-by: Matthew Bonanni <mbonanni@redhat.com>
Co-authored-by: Nicolò Lucchesi <nlucches@redhat.com>

* [MLA][Attention] Add OOT MLA prefill backend registration mechanism (#43325)

Signed-off-by: Matthew Bonanni <mbonanni@redhat.com>

* [Deprecation] Deprecate functions as scheduled for v0.21.0 (#43358)

Signed-off-by: yewentao256 <zhyanwentao@126.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* [DSv4] Refactor compressor & Fix ROCm compatibility (#43710)

Signed-off-by: Woosuk Kwon <woosuk@inferact.ai>

* Fix test_aot_compile for torch 2.12 (#43695)

Signed-off-by: Angela Yi <yiangela7@gmail.com>

* [KVConnector][Mooncake] Wire reset_cache cascade end-to-end (#42694)

Signed-off-by: aoshen524 <aoshen524@gmail.com>
Signed-off-by: Ao Shen <aoshen@inferact.ai>
Co-authored-by: aoshen524 <aoshen524@gmail.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* [ROCm][Perf] Expose AITER MoE sorting dispatch policy via env var (#39177)

Signed-off-by: nholmber <nholmber@users.noreply.github.com>

* [MRV2][BugFix] Fix KV connector handling in spec decode case (#43719)

Signed-off-by: Nick Hill <nickhill123@gmail.com>
Co-authored-by: Wentao Ye <44945378+yewentao256@users.noreply.github.com>

* [Frontend] Add MiniCPM5 XML tool call parser (#43175)

Signed-off-by: zhangtao <zhangtao2@modelbest.cn>
Signed-off-by: zhangtao2 <zhangtao2@modelbest.cn>
Co-authored-by: zhangtao <zhangtao2@modelbest.cn>
Co-authored-by: Chauncey <chaunceyjiang@gmail.com>

* [ROCm][GPT-OSS] Avoid repeated compile-time `cos_sin_cache.to(bf16)` casts in rotary path (#42833)

Signed-off-by: Aakif Nawaz <aakif.nawaz@amd.com>

* [Doc] Add Ascend NPU tab to the quickstart installation guide (#43550)

Signed-off-by: Aditya Singh <adisin650@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* [Rust Frontend] Align tool parser fallback behavior between streaming & non-streaming paths (#43662)

Signed-off-by: Bugen Zhao <i@bugenzhao.com>

* [Docs] Fix MLA prefill backend default docs (#43697)

Signed-off-by: Mohammad Miadh Angkad <176301910+mmangkad@users.noreply.github.com>

* [Kernel] Enable TritonW4A16LinearKernel as CUDA fallback for non-Marlin-aligned W4A16 shapes (#43731)

Signed-off-by: Luciano Martins <lucianommartins@users.noreply.github.com>
Co-authored-by: Luciano Martins <lucianommartins@users.noreply.github.com>

* [Bugfix] Map reasoning_effort to enable_thinking in chat template kwargs (#43401)

Signed-off-by: Ashwin Giridharan <girida@amazon.com>
Signed-off-by: Chauncey <chaunceyjiang@gmail.com>
Co-authored-by: Chauncey <chaunceyjiang@gmail.com>

* [misc] Bump cutedsl version to 4.5.2 (#43745)

Signed-off-by: Yongye Zhu <zyy1102000@gmail.com>

* [BugFix] HFValidationError with cloud storage URIs when HF_HUB_OFFLINE=1 (#39155)

Signed-off-by: Injae Ryou <injaeryou@gmail.com>

* [Docs] Fix the duplicate doc icon issue (#43546)

Signed-off-by: chunyang.wen <chunyang.wen@gmail.com>

* Fix early CUDA init (#43791)

Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>

* [ROCm] mori: add InterNodeV1LL inter-node kernel selection via VLLM_MORI_INTERNODE_KERNEL (#41751)

Signed-off-by: jatseng-ai <jatseng@amd.com>

* [8/n] Migrate merge_attn_states, mamba, sampler to torch stable ABI (continued) (#43361)

Signed-off-by: Mikayla Gawarecki <mikaylagawarecki@gmail.com>
Signed-off-by: Chris Leonard <chleonar@redhat.com>
Co-authored-by: Mikayla Gawarecki <mikaylagawarecki@gmail.com>
Co-authored-by: Shengqi Chen <harry-chen@outlook.com>

* [Quantization] Fix Humming RoutedExperts import (#43540)

Signed-off-by: Minh Vu <vuhoangminh97@gmail.com>
Co-authored-by: Wentao Ye <44945378+yewentao256@users.noreply.github.com>

* Remove Transformers forward/backward compatibility tests (#43785)

Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>

* Validate against some config fields being set to 0 (#43794)

Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>

* [Bugfix][DFlash]allocate the proper number of lookahead slots (#43733)

Signed-off-by: Benjamin Chislett <bchislett@nvidia.com>
Signed-off-by: Benjamin Chislett <chislett.ben@gmail.com>
Co-authored-by: Nicolò Lucchesi <nicolo.lucchesi@gmail.com>

* Fix Qwen3-VL and Qwen3-omni-thinker accuracy degradation from deepstack inputs under torch.compile (#43617)

Signed-off-by: Dakai An <dakaian108@gmail.com>

* Add @AndreasKaratzas to CODEOWNERS (#43740)

Signed-off-by: Andreas Karatzas <akaratza@amd.com>

* [Bugfix][Kernel] TRTLLM NVFP4 MoE chunking (#43599)

Signed-off-by: amitz-nv <203509407+amitz-nv@users.noreply.github.com>

* [ModelRunnerV2][Hybrid model] Support kernel block size in hybrid model (#38831)

Signed-off-by: MengqingCao <cmq0113@163.com>
Signed-off-by: Nick Hill <nickhill123@gmail.com>
Signed-off-by: Mengqing Cao <cmq0113@163.com>
Co-authored-by: Nick Hill <nickhill123@gmail.com>

* [Rust Frontend] Introduce mock engine for benchmark baseline (#43469)

Signed-off-by: Bugen Zhao <i@bugenzhao.com>

* Fix RunAI streamer tensor buffer reuse during weight loading (#43464)

Signed-off-by: bbartels <benjamin@bartels.dev>

* [MoE] Remove inplace fused experts mechanism (#43727)

Signed-off-by: Yongye Zhu <zyy1102000@gmail.com>

* [Misc][Rocm] Remove redundant `AiterUnifiedAttentionBackend` block size log (#43664)

Signed-off-by: NickLucche <nlucches@redhat.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* [ROCm][CI] Stabilize Cargo cache and pre-test image checks (#43815)

Signed-off-by: Andreas Karatzas <akaratza@amd.com>

* fix: parse Qwen3 XML JSON arguments first (#43243)

Signed-off-by: Yufeng He <40085740+he-yufeng@users.noreply.github.com>
Co-authored-by: Flora Feng <4florafeng@gmail.com>

* [Bugfix] Pass `routed_scaling_factor` to FlashInfer TRTLLM BF16 MoE (#43769)

* [BugFix] Fix blocked reasoning parsing with MRV2 (#43808)

Signed-off-by: Nick Hill <nickhill123@gmail.com>

* [Bugfix][Frontend] streaming tool-call serializer drops first args chunk when name and args share a DeltaMessage  (#42683)

Signed-off-by: ignaciosica <mignacio.sica@gmail.com>
Signed-off-by: sfeng33 <4florafeng@gmail.com>
Co-authored-by: sfeng33 <4florafeng@gmail.com>

* minor docs: fix incorrect example path (#43830)

Signed-off-by: JINO-ROHIT <find.jinorohit@gmail.com>

* [ROCm][DSV4] Enable Tilelang MHC replacing torch/triton mhc (#43679)

Signed-off-by: tjtanaa <tunjian.tan@embeddedllm.com>

* change name of fs_python secondary tier to fs. (#43600)

Signed-off-by: Rotem Shavitt <rshavitt@gmail.com>

* [BugFix] Fix hard-coded timeout for multi-API-server startup (#43768)

Signed-off-by: Vadim Gimpelson <vadim.gimpelson@gmail.com>
Co-authored-by: Nick Hill <nickhill123@gmail.com>

* [Kernel] Marlin MoE: include SM 12.x in default arch list (#40923)

Signed-off-by: Tony Liu <tonyliu0512@gmail.com>
Co-authored-by: Tony Liu <tonyliu0512@gmail.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Shengqi Chen <harry-chen@outlook.com>

* [DSV4] Remove AMD/XPU path in deepseek_v4/nvidia (#43829)

Signed-off-by: Woosuk Kwon <woosuk@inferact.ai>

* Restore `Literal` for `WeightTransferConfig.backend` (#43183)

Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>

* [Bugfix] Stream DeepSeek DSML tool-call argument deltas incrementally (#42879)

Signed-off-by: QwertyJack <7554089+QwertyJack@users.noreply.github.com>
Co-authored-by: QwertyJack <7554089+QwertyJack@users.noreply.github.com>
Co-authored-by: Chauncey <chaunceyjiang@gmail.com>

* [ROCm][CI] Move workload from MI300 to MI325 (#43824)

Signed-off-by: Andreas Karatzas <akaratza@amd.com>

* [Feature] Add support for timed trace replay in `vllm bench serve` to replay Moonshot and Alibaba workload traces (#39795)

Signed-off-by: Animesh Trivedi <Animesh.Trivedi@ibm.com>

* [UX] Increase DP Coordinator startup timeout from 30s to 120s (#42343)

Signed-off-by: wzhao18 <wzhao18.sz@gmail.com>

* [Model][Bugfix] Rename weight_mapper to hf_to_vllm_mapper in LlamaNemotronVL pooling models (#43581)

Signed-off-by: Jakub Zakrzewski <jzakrzewski@nvidia.com>
Co-authored-by: opencode <noreply@opencode.ai>
Co-authored-by: tomeras91 <57313761+tomeras91@users.noreply.github.com>

* [Bugfix][ROCm] Fix Accuracy Drop in Sparse Indexer on gfx950 (#43781)

Signed-off-by: tjtanaa <tunjian.tan@embeddedllm.com>
Signed-off-by: vllmellm <vllm.ellm@embeddedllm.com>
Signed-off-by: kliuae <kuanfu.liu@embeddedllm.com>
Co-authored-by: tjtanaa <tunjian.tan@embeddedllm.com>
Co-authored-by: vllmellm <vllm.ellm@embeddedllm.com>

* [Bugfix] Fix HyperCLOVAX CI failure after upstream removed remote code (#43860)

Signed-off-by: Kevin Luu <kevin@inferact.ai>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* [CI] Auto-apply `rust` label to relevant PRs (#43866)

Signed-off-by: Bugen Zhao <i@bugenzhao.com>

* [Feature] Add structured output and effort support to Anthropic Messages API (#42396)

Signed-off-by: chaunceyjiang <chaunceyjiang@gmail.com>

* Log dummy DP step in iteration details (#41406)

Signed-off-by: Vadim Gimpelson <vadim.gimpelson@gmail.com>
Signed-off-by: Vadim Gimpelson <156319763+vadiklyutiy@users.noreply.github.com>

* [EC Connector] Add shutdown API to EC Connector. (#42423)

Signed-off-by: omerpaz95 <omerpaz95@gmail.com>

* Fix `OlmoHybridForCausalLM` not initialising (#43846)

Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* [BUGFIX] Multimodal benchmark with MistralTokenizer (#42965)

Signed-off-by: juliendenize <julien.denize@mistral.ai>
Signed-off-by: Julien Denize <40604584+juliendenize@users.noreply.github.com>

* [Perf] Optimize moe permute by pre-allocate buffer, 9~14% kernel performance improvement (#43014)

Signed-off-by: yewentao256 <zhyanwentao@126.com>

* [Perf][KDA] Fuse gate softplus, chunk-local cumsum, and RCP_LN2 scaling (#43667)

Signed-off-by: haojiangzheng <justineric096@gmail.com>
Co-authored-by: haojiangzheng <justineric096@gmail.com>

* Add token-offset based selective offload in OffloadConnector (#39983)

Signed-off-by: Angelo Ruocco <ang@zurich.ibm.com>
Co-authored-by: Or Ozeri <or@ozery.com>

* [Model Refactoring] Remove torch compile dependency in DSv4 (#43746)

Signed-off-by: Woosuk Kwon <woosuk@inferact.ai>

* [Bugfix][ROCm] Resolve MoRI connector hangs at high concurrency (#40344)

Signed-off-by: simondanielsson <simon.danielsson99@hotmail.com>

* [CPU] Migrate cpu_awq into awq_marlin (#43841)

Signed-off-by: jiang1.li <jiang1.li@intel.com>

* [Rust Frontend] Add `hy_v3` tool parser (#43872)

Signed-off-by: Bugen Zhao <i@bugenzhao.com>

* [Rust Frontend] Reduce Gemma4 tool parser args scan complexity (#43850)

Signed-off-by: Bugen Zhao <i@bugenzhao.com>

* [rust] fix: aggregate `is_sleeping` and `reset_prefix_cache` across DP engines (#43429)

Signed-off-by: Will.hou <1205157517@qq.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* [Bug] Fix `tests/distributed/test_elastic_ep.py  - assert False` (#43813)

Signed-off-by: yewentao256 <zhyanwentao@126.com>

* [Perf] Add do_not_specialize to Mamba SSD chunk kernels (#43803)

Signed-off-by: Majid Taheri Andani <tahemaji@amazon.com>
Co-authored-by: Majid Taheri Andani <tahemaji@amazon.com>

* [Bugfix] Exclude Ray DP from #42585's deferred port allocation (#43864)

Signed-off-by: Vadim Gimpelson <vadim.gimpelson@gmail.com>

* [KV Offload] Rename `SecondaryTierManager.get_finished()` to `get_finished_jobs()` (#43870)

Signed-off-by: Ronen Schaffer <ronen.schaffer@ibm.com>

* [ROCm][Perf] Support N=5 in wvSplitK skinny GEMM kernels for speculative decoding (#40687)

Signed-off-by: Matthias Gehre <matthias.gehre@amd.com>

* [XPU][MoE] Add WNA16 oracle backend for GPTQ sym-int4 (xpu_fused_moe) (#41426)

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Kunshang Ji <kunshang.ji@intel.com>

* [ROCm] Bump ROCm to 7.2.3 (#43136)

Signed-off-by: Micah Williamson <micah.williamson@amd.com>

* Add Cosmos3 Reasoner model (#43356)

Signed-off-by: Maciej Bala <mbala@nvidia.com>
Signed-off-by: MaciejBalaNV <mbala@nvidia.com>
Co-authored-by: Isotr0py <mozf@mail2.sysu.edu.cn>
Co-authored-by: Isotr0py <2037008807@qq.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Roger Wang <hey@rogerw.io>

* [Rust Frontend] Optimize multimodal prompt expansion (#43670)

Signed-off-by: RickyChen / 陳昭儒 <ricky.chen@infinirc.com>

* Allow native KV cache dtype in Triton cache update (#43330)

Signed-off-by: Michael Gschwind <mgschwind@nvidia.com>
Co-authored-by: Michael Gschwind <mgschwind@nvidia.com>

* [Attention][AMD] Standardize kv layout to blocks first for AMD (#43660)

Signed-off-by: NickLucche <nlucches@redhat.com>

* [ROCm] Enable the aiter top-k/top-p sampler by default (#43331)

Signed-off-by: John Qin <yanyuan.qin@amd.com>
Co-authored-by: TJian <tunjian.tan@embeddedllm.com>

* [MM][CG] Avoid over-padding Qwen2.5-VL encoder cudagraph window metadata (#42796)

Signed-off-by: Hua Huang <huah@nvidia.com>

* Deprecate `JAISLMHeadModel` (#43784)

Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>

* [Feat] Add support for per GPU worker RDMA NIC selection (#42083)

Signed-off-by: Raj Joshi <rajjoshi@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>

* [Core] Cleanup KVConnector handling with PP + fix MRV2  (#43732)

Signed-off-by: Nick Hill <nickhill123@gmail.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* [KV Offload] Add per-request offloading policy via `on_new_request` lifecycle hook (#43205)

Signed-off-by: Ronen Schaffer <ronen.schaffer@ibm.com>
Co-authored-by: Or Ozeri <or@ozery.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* [Model Refactoring] Remove unncessary torch op registration for DSv4 (#43891)

Signed-off-by: Woosuk Kwon <woosuk@inferact.ai>

* [Spec Decode] Allow causal DFlash (#43445)

* Refactor output filename handling in ci-fetch-log.sh (#43901)

Signed-off-by: Michael Goin <mgoin64@gmail.com>

* [AMD][CI][BugFix] Fix  Distributed Compile Unit Tests (2xH100-2xMI300) group (#43120)

Signed-off-by: Randall Smith <Randall.Smith@amd.com>

* fix(frontend): Add multimodal placeholders to Gemma4 tool message template (#41459)

Signed-off-by: Harshal Janjani <harshaljanjani@gmail.com>
Co-authored-by: Ben Browning <bbrownin@redhat.com>

* [CI] Enable prefix caching in BFCL benchmark (#43925)

Signed-off-by: Yifan Zong <yzong@redhat.com>

* [Model]Support Step-3.7-Flash (#43859)

Signed-off-by: luotingdan <luotingdan@stepfun.com>
Signed-off-by: Isotr0py <Isotr0py@outlook.com>
Signed-off-by: Jee Jee Li <jeejeelee@inferact.ai>
Co-authored-by: luotingdan <luotingdan@stepfun.com>
Co-authored-by: Isotr0py <Isotr0py@outlook.com>
Co-authored-by: Yu Huang <yuhuang@nvidia.com>
Co-authored-by: Jee Jee Li <jeejeelee@inferact.ai>

* [Rust Frontend] Add `/version` endpoint using engine-reported value (#43854)

Signed-off-by: Bugen Zhao <i@bugenzhao.com>

* [Misc][NUMA] Auto-bind to PCT priority cores on DGX B300 + widen EngineCore across shard NUMA nodes (#43270)

Signed-off-by: Vadim Gimpelson <vadim.gimpelson@gmail.com>
Co-authored-by: Cursor <noreply@cursor.com>

* [DSv4] Move mHC tilelang kernels & Don't use CustomOP in dsv4/nvidia (#43905)

Signed-off-by: Woosuk Kwon <woosuk@inferact.ai>

* [feat] add GlmgaProcessor specific logits in `glm4_1v.py` (#43575)

Signed-off-by: JaredforReal <w13431838023@gmail.com>
Signed-off-by: Isotr0py <mozf@mail2.sysu.edu.cn>
Signed-off-by: Isotr0py <Isotr0py@outlook.com>
Co-authored-by: Isotr0py <mozf@mail2.sysu.edu.cn>
Co-authored-by: Isotr0py <Isotr0py@outlook.com>

* Adjust design around encoder_cudagraph_forward (#42288)

Signed-off-by: Weida Hong <wdhongtw@google.com>

* [XPU] add scale transpose to prepare_fp8_moe_layer_for_xpu and bump up kernels (#43277)

Signed-off-by: mayuyuace <qiming1.zhang@intel.com>
Co-authored-by: Kunshang Ji <kunshang.ji@intel.com>

* [kv_offload] Skip decode-phase blocks in CPU offload (#43797)

Signed-off-by: Itay Etelis <itay.etelis@ibm.com>
Co-authored-by: Itay Etelis <itay.etelis@ibm.com>

* [Refactor] Remove dead code (#43234)

Signed-off-by: yewentao256 <zhyanwentao@126.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* [9/n] Migrate attention and cache kernels to torch stable ABI (continued)  (#43717)

Signed-off-by: Chris Leonard <chleonar@redhat.com>
Signed-off-by: Mikayla Gawarecki <mikaylagawarecki@gmail.com>
Co-authored-by: Mikayla Gawarecki <mikaylagawarecki@gmail.com>
Co-authored-by: Shengqi Chen <harry-chen@outlook.com>

* [CI] Separate non-root smoke tests from image build step (#43712)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* [XPU] add gelu_tanh to xpu moe backend supported activations (#42822)

Signed-off-by: yintong-lu <yintong.lu@intel.com>
Co-authored-by: Kunshang Ji <kunshang.ji@intel.com>

* [CPU Backend] CPU top-k and top-p sampling kernels using Triton (#43633)

Signed-off-by: Li, Tianmu <tianmu.li@intel.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* [ROCm][DSv4] Remove device pipeline stall in sparse attention (#43898)

Signed-off-by: kliuae <kuanfu.liu@embeddedllm.com>

* [Frontend]Responses API supports chat_template_kwargs (#43761)

Signed-off-by: chaunceyjiang <chaunceyjiang@gmail.com>

* [ROCm][CI] Fix AITER unified attention for encoder-decoder cross-attention (#43945)

Signed-off-by: Andreas Karatzas <akaratza@amd.com>

* [XPU] fix xpu install document triton-xpu version (#43947)

Signed-off-by: Kunshang Ji <kunshang.ji@intel.com>

* [CI][ROCm] Don't skip MoRI-IO Connector tests (#43703)

Signed-off-by: simondanielsson <simon.danielsson99@hotmail.com>

* [XPU] support MTP of gdn attention (#43565)

Signed-off-by: mayuyuace <qiming1.zhang@intel.com>
Co-authored-by: Kunshang Ji <kunshang.ji@intel.com>

* [CI] Nixl+SimpleCPUOffloadingConnector unit tests (#43871)

Signed-off-by: NickLucche <nlucches@redhat.com>

* [Bugfix] Fix Step3 pipeline parallel KeyError for residual tensor (#37622)

Co-authored-by: Jee Jee Li <pandaleefree@gmail.com>

* [Kernel][ROCm] Native W4A16 kernel for AMD RDNA3 (gfx1100) — fp16 + bf16 (#41394)

Signed-off-by: JartX <sagformas@epdcenter.es>

* [Bugfix] [ROCm] [DSV4] Fix AITER MXFP4 MoE weight loading and shuffle… (#42595)

Co-authored-by: MHYangAMD <MHYangAMD@users.noreply.github.com>

* [ROCm][Perf] DSv3.2 MI355X TP4 decode-step orchestration cleanup (3 micro-opts) (#42982)

Signed-off-by: Frida Andersson <fanderss@amd.com>
Co-authored-by: Cursor <cursoragent@cursor.com>

* [Bugfix] Corrupted MLA + linear attention (#43961)

Signed-off-by: Thien Tran <gau.nernst@yahoo.com.sg>

* Skip docs build if PR doesn't affect docs (#43972)

Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>

* [Bugfix][CPU] Remove invalid extra deps (#43977)

Signed-off-by: jiang1.li <jiang1.li@intel.com>

* Add vLLM library info to Hugging Face Hub requests (#43857)

Signed-off-by: Wauplin <lucainp@gmail.com>
Signed-off-by: Lucain Pouget <lucain@huggingface.co>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* docs: clarify ITL acronym in optimization docs (#43922)

Signed-off-by: chunyang.wen <chunyang.wen@gmail.com>

* [Misc] added unit tests for the core pooling methods (#43818)

Signed-off-by: Taneem Ibrahim <taneem.ibrahim@gmail.com>
Co-authored-by: Wentao Ye <44945378+yewentao256@users.noreply.github.com>

* [Bugfix] Disable allreduce_rms_fusion when pipeline_parallel_size > 1 (#43616)

Signed-off-by: zixi-qi <zixi@inferact.ai>
Co-authored-by: Claude <noreply@anthropic.com>

* [MoE Refactor] WNA16 MoE backend selection into oracle module (#42553)

Signed-off-by: Bill Nell <bnell@redhat.com>
Co-authored-by: Claude <noreply@anthropic.com>

* [EPLB] Make async EPLB default (#43219)

Signed-off-by: Markov Ilya <markovilya19@gmail.com>
Co-authored-by: Markov Ilya <markovilya19@gmail.com>
Co-authored-by: Tyler Michael Smith <tyler@neuralmagic.com>

* [Bugfix] Use storage_block_size in KV cache reshape for compressed specs (DeepSeek V4) (#43988)

Signed-off-by: zixi-qi <zixi@inferact.ai>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* [Bugfix] Fix Ray placement group allocation with grouped nodes (#43998)

Signed-off-by: <conway.zhu@cohere.com>
Signed-off-by: root <conway.zhu@cohere.com>

* [Bug] Fix torch device issue for MOE permute (#44005)

Signed-off-by: yewentao256 <zhyanwentao@126.com>

* [CI] Make Model Executor test hangs fail fast with a traceback (#43971)

Signed-off-by: khluu <khluu000@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>

* [CI] Remove redundant test_chat_with_tool_reasoning.py (#44011)

Signed-off-by: sfeng33 <4florafeng@gmail.com>

* Add @khluu to CODEOWNERS (#44019)

Signed-off-by: Kevin H. Luu <khluu000@gmail.com>

* [Feature] SSL support for dp supervisor (#43688)

Signed-off-by: yewentao256 <zhyanwentao@126.com>

* [Metrics] Exclude KV transfer tokens from iteration_tokens_total (#43346)

Signed-off-by: Tyler Michael Smith <tlrmchlsmth@gmail.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* [Fronten] Clean up stop_token_ids override for Harmony (#44009)

Signed-off-by: Yifan Zong <yzong@redhat.com>

* [MoE Refactor] Migrate MoeWNA16Method quantization to MK oracle (#42647)

Signed-off-by: Bill Nell <bnell@redhat.com>
Co-authored-by: Claude <noreply@anthropic.com>

* [MoE Refactor] Remove supports_expert_map (#43108)

Signed-off-by: Bill Nell <bnell@redhat.com>

* [CI] Remove duplicate Harmony test coverage (#44023)

Signed-off-by: sfeng33 <4florafeng@gmail.com>

* [CI] Fix smoke test step key to bypass block gate (#43974)

Signed-off-by: khluu <khluu000@gmail.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Revert "[MoE Refactor] Migrate MoeWNA16Method quantization to MK orac… (#44033)

Signed-off-by: Bill Nell <bnell@redhat.com>

* [PERF]MiniMax-M2 gate kernel (#38445)

Signed-off-by: Jee Jee Li <pandaleefree@gmail.com>
Signed-off-by: qianlihuang <91178480+qianlihuang@users.noreply.github.com>
Co-authored-by: Yiliu Dong <91178480+qianlihuang@users.noreply.github.com>

* offload prompt_embeds decode in render_prompts_async to avoid blocking (#43792)

Signed-off-by: Gagan Dhakrey <gagandhakrey@gmail.com>

* [Refactor] Remove dead current_tool_name_sent assignments from tool parsers (#43997)

Signed-off-by: sfeng33 <4florafeng@gmail.com>

* [ROCm][CI] Fix failure in the Phi3V pooling test (#44028)

Signed-off-by: Andreas Karatzas <akaratza@amd.com>

* [ROCm] cmake: support PYTORCH_FOUND_HIP for torch 2.13 native HIP language support (#43881)

Signed-off-by: nemanjaudovic <nudovic@amd.com>
Co-authored-by: Shengqi Chen <harry-chen@outlook.com>

* [BugFix][Platform] Fix import vllm.platforms.rocm error on non-CUDA test_gpt_oss.py (#43571)

Signed-off-by: Ma, Liangliang <liangliang.ma@intel.com>
Co-authored-by: Kunshang Ji <kunshang.ji@intel.com>

* [Bugfix] Fix RMSNorm kernels to multiply in weight's native dtype (#42379)

Signed-off-by: Lanze Liu <lanzetech@gmail.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* [ROCm] Add attention sink support to AITer flash attention backend (#43817)

Signed-off-by: Xiaoran Chen <xiaoran@fb.com>
Co-authored-by: Xiaoran Chen <xiaoran@fb.com>

* [Governance] Add @BugenZhao as Rust frontend code owner (#44047)

Signed-off-by: Bugen Zhao <i@bugenzhao.com>

* [Bug] Fix gemma4 MTP IMA issue when TP>1, `CUDA error: an illegal memory access was encountered` (#43909)

Signed-off-by: yewentao256 <zhyanwentao@126.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* [MRV2] Support breakable CUDA graph (#44050)

Signed-off-by: Woosuk Kwon <woosuk@inferact.ai>

* [CPU][Zen] Route W8A8 and W4A16 linear inference through zentorch on AMD Zen CPUs (#41813)

Signed-off-by: R <Ganesh.R@amd.com>
Signed-off-by: Harshal Adhav <harshal.adhav@amd.com>
Signed-off-by: Aakar Dwivedi <aadwived@amd.com>
Co-authored-by: R <Ganesh.R@amd.com>
Co-authored-by: Harshal Adhav <harshal.adhav@amd.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Michael Goin <mgoin64@gmail.com>

* [CI/Build] Enable Step3p7ForConditionalGeneration testing (#43956)

Signed-off-by: Jee Jee Li <jeejeelee@inferact.ai>

* docs: fix MLA attention docstring examples (#44118)

Co-authored-by: nightcityblade <nightcityblade@gmail.com>

* [Misc] Use VLLMValidationError consistently in chat completion and completion protocol validators (#36254)

Signed-off-by: umut-polat <52835619+umut-polat@users.noreply.github.com>

* [MRV2] Remove Eagle's dedicated CUDA graph pool (#44078)

Signed-off-by: Lucas Wilkinson <lwilkins@redhat.com>

* [BugFix] Fix `_has_module` to verify native deps via trial import (#44035)

Signed-off-by: esmeetu <jasonailu87@gmail.com>
Signed-off-by: Jeffrey Wang <jeffreywang@anyscale.com>
Signed-off-by: Nick Hill <nickhill123@gmail.com>
Co-authored-by: esmeetu <jasonailu87@gmail.com>
Co-authored-by: Nick Hill <nickhill123@gmail.com>

* [Docs] Replace broken video url in examples (#44159)

Signed-off-by: Isotr0py <mozf@mail2.sysu.edu.cn>

* [CPU][RISC-V] Add missing RVV cpu_types helpers for WNA16 (#42730)

Signed-off-by: wcy <233313160abc@gmail.com>
Co-authored-by: Li, Jiang <jiang1.li@intel.com>

* fix: glm5.1 pp model loading (#42944)

Signed-off-by: UranusSeven <109661872+UranusSeven@users.noreply.github.com>

* [Frontend] Resettle generative scoring entrypoint. (#44153)

Signed-off-by: wang.yuqi <yuqi.wang@daocloud.io>

* [Rust Frontend] Add InternLM2 tool parser (#43481)

Signed-off-by: Will.hou <1205157517@qq.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Bugen Zhao <i@bugenzhao.com>

* [Bugfix] fix wrong partial_rotary_factor calculation for bailing_moe model. (#43770)

Signed-off-by: zzt <zengzetang.zzt@antgroup.com>
Co-authored-by: Jiangyun Zhu <riverclouds.zhu@qq.com>

* [XPU][CI] Fix test_audio_in_video flake by using module-scoped server fixture (#44146)

Signed-off-by: Chaojun Zhang <chaojun.zhang@intel.com>

* [Perf] Optimize cutlass fp8 scaled mm bypassing padding, 20% kernel performance improvement (#43706)

Signed-off-by: yewentao256 <zhyanwentao@126.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* [Feature] Add support for JetBrains' Mellum v2 code generation model (#43992)

Signed-off-by: Madeesh Kannan <madeeswaran.kannan@jetbrains.com>
Co-authored-by: Robert Shaw <114415538+robertgshaw2-redhat@users.noreply.github.com>

* [Kernel][DSv4] Optimize sparse FP8 compressor kernels (#44161)

Signed-off-by: Yongye Zhu <zyy1102000@gmail.com>

* [ROCm][CI] Fix and stabilize EAGLE3 acceptance tests (#41294)

Signed-off-by: Andreas Karatzas <akaratza@amd.com>
Signed-off-by: Micah Williamson <micah.williamson@amd.com>
Co-authored-by: Micah Williamson <micah.williamson@amd.com>

* [Rust Frontend] Support streaming `generate` endpoint (#43779)

Signed-off-by: xunzhuo <xunzhuo@vllm-semantic-router.ai>
Co-authored-by: Bugen Zhao <i@bugenzhao.com>

* [Frontend][Core] Add sparse NCCL weight transfer support for in-place updates (#40096)

Signed-off-by: Siddharth Bedekar <bedeksid@gmail.com>
Co-authored-by: OpenAI Codex <codex@openai.com>

* [BugFix][CI] Fix added `_has_module` tests (#44248)

Signed-off-by: Nick Hill <nickhill123@gmail.com>

* [Test][BugFix] Fix double-BOS in PD+specdec acceptance test (#44234)

Signed-off-by: Nick Hill <nickhill123@gmail.com>

* [DSV4] Remove unncessary classes & functions (#44246)

Signed-off-by: Woosuk Kwon <woosuk@inferact.ai>

* [ROCm][CI] Skip unbacked dynamic shapes tests on PyTorch < 2.11 (#44256)

Signed-off-by: JartX <sagformas@epdcenter.es>

* [DSV4] Refactor RoPE initialization (#44262)

Signed-off-by: Woosuk Kwon <woosuk@inferact.ai>

* [Bugfix][Mooncake] Release GPU pin on failed store in MooncakeStoreConnector (#43742)

Signed-off-by: Dao Le <Dao007forever@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>

* [ROCm] Upgrade AITER to v0.1.13.post1 (#44265)

Signed-off-by: Micah Williamson <micah.williamson@amd.com>

* [Bugfix][CI] Normalize NIXL connector CUDA wheel installs (#44266)

Signed-off-by: Alec Flowers <aflowers@nvidia.com>

* [Refactor] Move unstreamed tool-arg flush from serving layer to parser (#44017)

Signed-off-by: sfeng33 <4florafeng@gmail.com>

* [CI] Stabilize OpenAI schema fuzzing for malformed structural tags (#44131)

Signed-off-by: Andreas Karatzas <akaratza@amd.com>

* [BugFix] Fix TypeError in MiniCPM-O audio feature unpadding (#38053)

Signed-off-by: Krishna Chaitanya Balusu <krishnabkc15@gmail.com>
Signed-off-by: wjinxu <1299461899@qq.com>
Signed-off-by: Kc Balusu <kcbalusu@users.noreply.github.com>
Co-authored-by: wjinxu <1299461899@qq.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cyrus Leung <tlleungac@connect.ust.hk>
Co-authored-by: Kc Balusu <kcbalusu@users.noreply.github.com>

* [BugFix][kv_offload]: Prevent offloading stale sliding window blocks (#42959)

Signed-off-by: Or Ozeri <oro@il.ibm.com>

* [XPU][Bugfix] Fix per_token_group_fp8_quant missing dummy args on XPU (#43930)

Signed-off-by: Chaojun,Zhang <chaojun.zhang@intel.com>
Co-authored-by: Kunshang Ji <kunshang.ji@intel.com>

* [MM][CG] Profile encoder CUDA graph pool memory (#41714)

Signed-off-by: JooHo Lee <jooho414@gmail.com>

* [Bugfix] Convert Gemma4-MM ViT linear layers to vllm native impl (#43798)

Signed-off-by: Isotr0py <mozf@mail2.sysu.edu.cn>
Co-authored-by: ZiTian Zhao <zitian.zhao@tencentmusic.com>
Co-authored-by: B-201 <Joy25810@foxmail.com>

* [Model Runner V2] Support zeroing freshly allocated KV blocks for hybrid + fp8 KVCache (#43990)

Signed-off-by: zhuhaoran <zhuhaoran.zhr@alibaba-inc.com>

* [Model Runner V2] Use actual batch max_seq_len for attn metadata (#43991)

Signed-off-by: zhuhaoran <zhuhaoran.zhr@alibaba-inc.com>

* [Refactor] Unify reasoning + tool-call parsing behind Parser.parse() (#44267)

Signed-off-by: sfeng33 <4florafeng@gmail.com>

---------

Signed-off-by: Hua Huang <huah@nvidia.com>
Signed-off-by: holegots <ikun3.1415927@gmail.com>
Signed-off-by: Siddharth Bedekar <bedeksid@gmail.com>
Signed-off-by: tjtanaa <tunjian.tan@embeddedllm.com>
Signed-off-by: sfeng33 <4florafeng@gmail.com>
Signed-off-by: yewentao256 <zhyanwentao@126.com>
Signed-off-by: Dao Le <daole@inferact.ai>
Signed-off-by: Dao Le <Dao007forever@gmail.com>
Signed-off-by: Or Ozeri <oro@il.ibm.com>
Signed-off-by: Andreas Karatzas <akaratza@amd.com>
Signed-off-by: Banani Ghosh <bg2502@nyu.edu>
Signed-off-by: Daniel Serebrenik <daserebrenik@nvidia.com>
Signed-off-by: Rotem Shavitt <rshavitt@gmail.com>
Signed-off-by: Jee Jee Li <jeejeelee@inferact.ai>
Signed-off-by: weizhou.lan@daocloud.io <weizhou.lan@daocloud.io>
Signed-off-by: wang.yuqi <yuqi.wang@daocloud.io>
Signed-off-by: wang.yuqi <noooop@126.com>
Signed-off-by: TheDuyIT <nduy250299@gmail.com>
Signed-off-by: dtnguyen <dtnguyen@nvidia.com>
Signed-off-by: Yifan Qiao <yifanqiao@inferact.ai>
Signed-off-by: esmeetu <jasonailu87@gmail.com>
Signed-off-by: Yihuki <wangbovbvb@gmail.com>
Signed-off-by: Zhewen Li <zhewenli@inferact.ai>
Signed-off-by: NickLucche <nlucches@redhat.com>
Signed-off-by: chaojun-zhang <chaojun.zhang@intel.com>
Signed-off-by: Chaojun Zhang <chaojun.zhang@intel.com>
Signed-off-by: Jee Jee Li <pandaleefree@gmail.com>
Signed-off-by: Woosuk Kwon <woosuk@inferact.ai>
Signed-off-by: Yan Ma <yan.ma@intel.com>
Signed-off-by: QingZhou-YangHY <3868850350@qq.com>
Signed-off-by: Thien Tran <gau.nernst@yahoo.com.sg>
Signed-off-by: zhejiangxiaomai <zhenhui.zhao@intel.com>
Signed-off-by: Yongye Zhu <zyy1102000@gmail.com>
Signed-off-by: Hank <hcc.mayday@gmail.com>
Signed-off-by: Yubo Wang <yubowang2019@gmail.com>
Signed-off-by: Ethan Feng <ethan.fengch@gmail.com>
Signed-off-by: simondanielsson <simon.danielsson99@hotmail.com>
Signed-off-by: ThibaultCastells <thib.castells@icloud.com>
Signed-off-by: linzm1007 <linzm1007@126.com>
Signed-off-by: Jesus De Jesus <dejesus.9297@gmail.com>
Signed-off-by: javierdejesusda <javier.dejesusj9@gmail.com>
Signed-off-by: Chaojun,Zhang <chaojun.zhang@intel.com>
Signed-off-by: Mohammad Miadh Angkad <176301910+mmangkad@users.noreply.github.com>
Signed-off-by: Simon Danielsson <70206058+simondanielsson@users.noreply.github.com>
Signed-off-by: Bill Nell <bnell@redhat.com>
Signed-off-by: weimingc <17592131+meenchen@users.noreply.github.com>
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Kevin Luu <kevin@inferact.ai>
Signed-off-by: Zhewen Li <zhewen@inferact.ai>
Signed-off-by: Vadim Gimpelson <vadim.gimpelson@gmail.com>
Signed-off-by: Vadim Gimpelson <156319763+vadiklyutiy@users.noreply.github.com>
Signed-off-by: khluu <khluu000@gmail.com>
Signed-off-by: Kevin H. Luu <khluu000@gmail.com>
Signed-off-by: Luciano Martins <lucianommartins@users.noreply.github.com>
Signed-off-by: Bugen Zhao <i@bugenzhao.com>
Signed-off-by: Xin Yang <xyangx@amazon.com>
Signed-off-by: Lucas Wilkinson <lwilkins@redhat.com>
Signed-off-by: Matthew Bonanni <mbonanni@redhat.com>
Signed-off-by: Angela Yi <yiangela7@gmail.com>
Signed-off-by: aoshen524 <aoshen524@gmail.com>
Signed-off-by: Ao Shen <aoshen@inferact.ai>
Signed-off-by: nholmber <nholmber@users.noreply.github.com>
Signed-off-by: Nick Hill <nickhill123@gmail.com>
Signed-off-by: zhangtao <zhangtao2@modelbest.cn>
Signed-off-by: zhangtao2 <zhangtao2@modelbest.cn>
Signed-off-by: Aakif Nawaz <aakif.nawaz@amd.com>
Signed-off-by: Aditya Singh <adisin650@gmail.com>
Signed-off-by: Ashwin Giridharan <girida@amazon.com>
Signed-off-by: Chauncey <chaunceyjiang@gmail.com>
Signed-off-by: Injae Ryou <injaeryou@gmail.com>
Signed-off-by: chunyang.wen <chunyang.wen@gmail.com>
Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>
Signed-off-by: jatseng-ai <jatseng@amd.com>
Signed-off-by: Mikayla Gawarecki <mikaylagawarecki@gmail.com>
Signed-off-by: Chris Leonard <chleonar@redhat.com>
Signed-off-by: Minh Vu <vuhoangminh97@gmail.com>
Signed-off-by: Benjamin Chislett <bchislett@nvidia.com>
Signed-off-by: Benjamin Chislett <chislett.ben@gmail.com>
Signed-off-by: Dakai An <dakaian108@gmail.com>
Signed-off-by: amitz-nv <203509407+amitz-nv@users.noreply.github.com>
Signed-off-by: MengqingCao <cmq0113@163.com>
Signed-off-by: Mengqing Cao <cmq0113@163.com>
Signed-off-by: bbartels <benjamin@bartels.dev>
Signed-off-by: Yufeng He <40085740+he-yufeng@users.noreply.github.com>
Signed-off-by: ignaciosica <mignacio.sica@gmail.com>
Signed-off-by: JINO-ROHIT <find.jinorohit@gmail.com>
Signed-off-by: Tony Liu <tonyliu0512@gmail.com>
Signed-off-by: QwertyJack <7554089+QwertyJack@users.noreply.github.com>
Signed-off-by: Animesh Trivedi <Animesh.Trivedi@ibm.com>
Signed-off-by: wzhao18 <wzhao18.sz@gmail.com>
Signed-off-by: Jakub Zakrzewski <jzakrzewski@nvidia.com>
Signed-off-by: vllmellm <vllm.ellm@embeddedllm.com>
Signed-off-by: kliuae <kuanfu.liu@embeddedllm.com>
Signed-off-by: chaunceyjiang <chaunceyjiang@gmail.com>
Signed-off-by: omerpaz95 <omerpaz95@gmail.com>
Signed-off-by: juliendenize <julien.denize@mistral.ai>
Signed-off-by: Julien Denize <40604584+juliendenize@users.noreply.github.com>
Signed-off-by: haojiangzheng <justineric096@gmail.com>
Signed-off-by: Angelo Ruocco <ang@zurich.ibm.com>
Signed-off-by: jiang1.li <jiang1.li@intel.com>
Signed-off-by: Will.hou <1205157517@qq.com>
Signed-off-by: Majid Taheri Andani <tahemaji@amazon.com>
Signed-off-by: Ronen Schaffer <ronen.schaffer@ibm.com>
Signed-off-by: Matthias Gehre <matthias.gehre@amd.com>
Signed-off-by: Micah Williamson <micah.williamson@amd.com>
Signed-off-by: Maciej Bala <mbala@nvidia.com>
Signed-off-by: MaciejBalaNV <mbala@nvidia.com>
Signed-off-by: RickyChen / 陳昭儒 <ricky.chen@infinirc.com>
Signed-off-by: Michael Gschwind <mgschwind@nvidia.com>
Signed-off-by: John Qin <yanyuan.qin@amd.com>
Signed-off-by: Raj Joshi <rajjoshi@redhat.com>
Signed-off-by: Michael Goin <mgoin64@gmail.com>
Signed-off-by: Randall Smith <Randall.Smith@amd.com>
Signed-off-by: Harshal Janjani <harshaljanjani@gmail.com>
Signed-off-by: Yifan Zong <yzong@redhat.com>
Signed-off-by: luotingdan <luotingdan@stepfun.com>
Signed-off-by: Isotr0py <Isotr0py@outlook.com>
Signed-off-by: JaredforReal <w13431838023@gmail.com>
Signed-off-by: Isotr0py <mozf@mail2.sysu.edu.cn>
Signed-off-by: Weida Hong <wdhongtw@google.com>
Signed-off-by: mayuyuace <qiming1.zhang@intel.com>
Signed-off-by: Itay Etelis <itay.etelis@ibm.com>
Signed-off-by: yintong-lu <yintong.lu@intel.com>
Signed-off-by: Li, Tianmu <tianmu.li@intel.com>
Signed-off-by: Kunshang Ji <kunshang.ji@intel.com>
Signed-off-by: JartX <sagformas@epdcenter.es>
Signed-off-by: Frida Andersson <fanderss@amd.com>
Signed-off-by: Wauplin <lucainp@gmail.com>
Signed-off-by: Lucain Pouget <lucain@huggingface.co>
Signed-off-by: Taneem Ibrahim <taneem.ibrahim@gmail.com>
Signed-off-by: zixi-qi <zixi@inferact.ai>
Signed-off-by: Markov Ilya <markovilya19@gmail.com>
Signed-off-by: <conway.zhu@cohere.com>
Signed-off-by: root <conway.zhu@cohere.com>
Signed-off-by: Tyler Michael Smith <tlrmchlsmth@gmail.com>
Signed-off-by: qianlihuang <91178480+qianlihuang@users.noreply.github.com>
Signed-off-by: Gagan Dhakrey <gagandhakrey@gmail.com>
Signed-off-by: nemanjaudovic <nudovic@amd.com>
Signed-off-by: Ma, Liangliang <liangliang.ma@intel.com>
Signed-off-by: Lanze Liu <lanzetech@gmail.com>
Signed-off-by: Xiaoran Chen <xiaoran@fb.com>
Signed-off-by: R <Ganesh.R@amd.com>
Signed-off-by: Harshal Adhav <harshal.adhav@amd.com>
Signed-off-by: Aakar Dwivedi <aadwived@amd.com>
Signed-off-by: umut-polat <52835619+umut-polat@users.noreply.github.com>
Signed-off-by: Jeffrey Wang <jeffreywang@anyscale.com>
Signed-off-by: wcy <233313160abc@gmail.com>
Signed-off-by: UranusSeven <109661872+UranusSeven@users.noreply.github.com>
Signed-off-by: zzt <zengzetang.zzt@antgroup.com>
Signed-off-by: Madeesh Kannan <madeeswaran.kannan@jetbrains.com>
Signed-off-by: xunzhuo <xunzhuo@vllm-semantic-router.ai>
Signed-off-by: Alec Flowers <aflowers@nvidia.com>
Signed-off-by: Krishna Chaitanya Balusu <krishnabkc15@gmail.com>
Signed-off-by: wjinxu <1299461899@qq.com>
Signed-off-by: Kc Balusu <kcbalusu@users.noreply.github.com>
Signed-off-by: JooHo Lee <jooho414@gmail.com>
Signed-off-by: zhuhaoran <zhuhaoran.zhr@alibaba-inc.com>
Signed-off-by: Hynek Kydlicek <kydlicek.hynek@gmail.com>
Co-authored-by: Hua Huang <huangh1994@outlook.com>
Co-authored-by: Isotr0py <mozf@mail2.sysu.edu.cn>
Co-authored-by: Holegots <fuergaosi@gmail.com>
Co-authored-by: Siddharth Bedekar <104613085+bedeks@users.noreply.github.com>
Co-authored-by: OpenAI Codex <codex@openai.com>
Co-authored-by: Dao007forever <dao007forever@gmail.com>
Co-authored-by: TJian <tunjian.tan@embeddedllm.com>
Co-authored-by: Michael Goin <mgoin64@gmail.com>
Co-authored-by: Flora Feng <4florafeng@gmail.com>
Co-authored-by: Wentao Ye <44945378+yewentao256@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Or Ozeri <oro@il.ibm.com>
Co-authored-by: Andreas Karatzas <akaratza@amd.com>
Co-authored-by: danisereb <daserebrenik@nvidia.com>
Co-authored-by: Banani Ghosh <bg2502@nyu.edu>
Co-authored-by: Rotem Shavitt <rshavitt@gmail.com>
Co-authored-by: Jee Jee Li <pandaleefree@gmail.com>
Co-authored-by: weizhoublue <45163302+weizhoublue@users.noreply.github.com>
Co-authored-by: wang.yuqi <yuqi.wang@daocloud.io>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Nguyễn Thế Duy <dtnguyen@nvidia.com>
Co-authored-by: Yifan Qiao <yifanqiao@inferact.ai>
Co-authored-by: Roy Wang <jasonailu87@gmail.com>
Co-authored-by: Yihuki <wangbovbvb@gmail.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Zhewen Li <zhewenli@meta.com>
Co-authored-by: Zhewen Li <zhewenli@inferact.ai>
Co-authored-by: Nicolò Lucchesi <nlucches@redhat.com>
Co-authored-by: Chaojun Zhang <chaojun.zhang@intel.com>
Co-authored-by: Woosuk Kwon <woosuk.kwon@berkeley.edu>
Co-authored-by: Yan Ma <yan.ma@intel.com>
Co-authored-by: Huanyu Yang <20242081160@mail.dlut.edu.cn>
Co-authored-by: Cyrus Leung <tlleungac@connect.ust.hk>
Co-authored-by: Thien Tran <gau.nernst@yahoo.com.sg>
Co-authored-by: zhao, zhenhui <zhenhui.zhao@intel.com>
Co-authored-by: Sting Lin <sting.lin@cienet.com>
Co-authored-by: Jie Fang <jief@nvidia.com>
Co-authored-by: Yongye Zhu <zyy1102000@gmail.com>
Co-authored-by: Hank_ <37239608+ILikeIneine@users.noreply.github.com>
Co-authored-by: Yubo Wang <yubowang2019@gmail.com>
Co-authored-by: Ethan Feng <ethan.fengch@gmail.com>
Co-authored-by: Simon Danielsson <70206058+simondanielsson@users.noreply.github.com>
Co-authored-by: Thibault Castells <38716394+ThibaultCastells@users.noreply.github.com>
Co-authored-by: linzm1007 <96732179+linzm1007@users.noreply.github.com>
Co-authored-by: Javier De Jesus <javier.dejesusj9@gmail.com>
Co-authored-by: Mohammad Miadh Angkad <176301910+mmangkad@users.noreply.github.com>
Co-authored-by: bnellnm <49004751+bnellnm@users.noreply.github.com>
Co-authored-by: Robert Shaw <114415538+robertgshaw2-redhat@users.noreply.github.com>
Co-authored-by: Wei-Ming Chen <17592131+meenchen@users.noreply.github.com>
Co-authored-by: Mark McLoughlin <markmc@redhat.com>
Co-authored-by: Kevin H. Luu <khluu000@gmail.com>
Co-authored-by: Zhewen Li <zhewen@inferact.ai>
Co-authored-by: Vadim Gimpelson <156319763+vadiklyutiy@users.noreply.github.com>
Co-authored-by: Luciano Martins <22145370+lucianommartins@users.noreply.github.com>
Co-authored-by: Luciano Martins <lucianommartins@users.noreply.github.com>
Co-authored-by: Bugen Zhao <i@bugenzhao.com>
Co-authored-by: Xin Yang <105740670+xyang16@users.noreply.github.com>
Co-authored-by: Lucas Wilkinson <LucasWilkinson@users.noreply.github.com>
Co-authored-by: Matthew Bonanni <mbonanni@redhat.com>
Co-authored-by: Angela Yi <yiangela7@gmail.com>
Co-authored-by: aoshen02 <aoshen@inferact.ai>
Co-authored-by: aoshen524 <aoshen524@gmail.com>
Co-authored-by: Nico Holmberg <nico.holmberg@amd.com>
Co-authored-by: Nick Hill <nickhill123@gmail.com>
Co-authored-by: zhangtao2-1 <478679312@qq.com>
Co-authored-by: zhangtao <zhangtao2@modelbest.cn>
Co-authored-by: Chauncey <chaunceyjiang@gmail.com>
Co-authored-by: akii96 <aakif.nawaz@amd.com>
Co-authored-by: Aditya Singh <60082699+adityasingh2400@users.noreply.github.com>
Co-authored-by: Ashwin Giridharan <ashwing@users.noreply.github.com>
Co-authored-by: Injae Ryou <injaeryou@gmail.com>
Co-authored-by: Chunyang Wen <chunyang.wen@gmail.com>
Co-authored-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>
Co-authored-by: jatseng-ai <jatseng@amd.com>
Co-authored-by: Chris Leonard <chleonar@redhat.com>
Co-authored-by: Mikayla Gawarecki <mikaylagawarecki@gmail.com>
Co-authored-by: Shengqi Chen <harry-chen@outlook.com>
Co-authored-by: Minh Vu <vuhoangminh97@gmail.com>
Co-authored-by: Benjamin Chislett <bchislett@nvidia.com>
Co-authored-by: Nicolò Lucchesi <nicolo.lucchesi@gmail.com>
Co-authored-by: Dakai An <77474977+andakai@users.noreply.github.com>
Co-authored-by: amitz-nv <203509407+amitz-nv@users.noreply.github.com>
Co-authored-by: Mengqing Cao <cmq0113@163.com>
Co-authored-by: Benjamin Bartels <benjamin@bartels.dev>
Co-authored-by: Yufeng He <40085740+he-yufeng@users.noreply.github.com>
Co-authored-by: Ignacio Sica <mignacio.sica@gmail.com>
Co-authored-by: JINO ROHIT <find.jinorohit@gmail.com>
Co-authored-by: tonyliu312 <56969792@qq.com>
Co-authored-by: Tony Liu <tonyliu0512@gmail.com>
Co-authored-by: jack <QwertyJack@users.noreply.github.com>
Co-authored-by: QwertyJack <7554089+QwertyJack@users.noreply.github.com>
Co-authored-by: Animesh Trivedi <animesh.trivedi@gmail.com>
Co-authored-by: Wei Zhao <51183510+wzhao18@users.noreply.github.com>
Co-authored-by: Jakub Zakrzewski <jzakrzewski@nvidia.com>
Co-authored-by: opencode <noreply@opencode.ai>
Co-authored-by: tomeras91 <57313761+tomeras91@users.noreply.github.com>
Co-authored-by: kliuae <17350011+kliuae@users.noreply.github.com>
Co-authored-by: vllmellm <vllm.ellm@embeddedllm.com>
Co-authored-by: omerpaz95 <73347585+omerpaz95@users.noreply.github.com>
Co-authored-by: Julien Denize <40604584+juliendenize@users.noreply.github.com>
Co-authored-by: zexplorerhj <zhjoneson@163.com>
Co-authored-by: haojiangzheng <justineric096@gmail.com>
Co-authored-by: Angelo Ruocco <angeloruocco90@gmail.com>
Co-authored-by: Or Ozeri <or@ozery.com>
Co-authored-by: Li, Jiang <jiang1.li@intel.com>
Co-authored-by: Will.hou <1205157517@qq.com>
Co-authored-by: Majid <mjtaheri68@gmail.com>
Co-authored-by: Majid Taheri Andani <tahemaji@amazon.com>
Co-authored-by: Ronen Schaffer <ronen.schaffer@ibm.com>
Co-authored-by: Matthias Gehre <matthias.gehre@amd.com>
Co-authored-by: Jason Elie Bou Kheir <5115126+jasonboukheir@users.noreply.github.com>
Co-authored-by: Kunshang Ji <kunshang.ji@intel.com>
Co-authored-by: Micah Williamson <micah.williamson@amd.com>
Co-authored-by: MaciejBalaNV <mbala@nvidia.com>
Co-authored-by: Isotr0py <2037008807@qq.com>
Co-authored-by: Roger Wang <hey@rogerw.io>
Co-authored-by: Chao-Ju Chen <ricky.chen@infinirc.com>
Co-authored-by: Mike G <180722391+mikekg@users.noreply.github.com>
Co-authored-by: Michael Gschwind <mgschwind@nvidia.com>
Co-authored-by: JohnQinAMD <yanyuan.qin@amd.com>
Co-authored-by: Hua Huang <huah@nvidia.com>
Co-authored-by: Raj Joshi <rajjoshi@g.harvard.edu>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: rasmith <Randall.Smith@amd.com>
Co-authored-by: Harshal Janjani <harshaljanjani@gmail.com>
Co-authored-by: Ben Browning <bbrownin@redhat.com>
Co-authored-by: yzong-rh <yzong@redhat.com>
Co-authored-by: ltd0924 <32387785+ltd0924@users.noreply.github.com>
Co-authored-by: luotingdan <luotingdan@stepfun.com>
Co-authored-by: Isotr0py <Isotr0py@outlook.com>
Co-authored-by: Yu Huang <yuhuang@nvidia.com>
Co-authored-by: Jee Jee Li <jeejeelee@inferact.ai>
Co-authored-by: Cursor <noreply@cursor.com>
Co-authored-by: Jared Wen <w13431838023@gmail.com>
Co-authored-by: Weida Hong <wdhongtw@google.com>
Co-authored-by: Qiming Zhang <qiming1.zhang@intel.com>
Co-authored-by: Itay Etelis <92247226+Etelis@users.noreply.github.com>
Co-authored-by: Itay Etelis <itay.etelis@ibm.com>
Co-authored-by: Yintong Lu <yintong.lu@intel.com>
Co-authored-by: Tianmu Li <tianmu.li@intel.com>
Co-authored-by: Joaquín Mondéjar <111321569+JMonde@users.noreply.github.com>
Co-authored-by: JartX <sagformas@epdcenter.es>
Co-authored-by: MHYangAMD <meng-hsuan.yang@amd.com>
Co-authored-by: MHYangAMD <MHYangAMD@users.noreply.github.com>
Co-authored-by: frida-andersson <fanderss@amd.com>
Co-authored-by: Lucain <lucainp@gmail.com>
Co-authored-by: Taneem Ibrahim <taneem.ibrahim@gmail.com>
Co-authored-by: qizixi <22851944+zixi-qi@users.noreply.github.com>
Co-authored-by: Ilya Markov <markovilya197@gmail.com>
Co-authored-by: Markov Ilya <markovilya19@gmail.com>
Co-authored-by: Tyler Michael Smith <tyler@neuralmagic.com>
Co-authored-by: czhu-cohere <conway.zhu@cohere.com>
Co-authored-by: Tyler Michael Smith <tlrmchlsmth@gmail.com>
Co-authored-by: Yiliu Dong <91178480+qianlihuang@users.noreply.github.com>
Co-authored-by: Gagan Dhakrey <59848316+gagandhakrey@users.noreply.github.com>
Co-authored-by: nemanjaudovic <152565955+nemanjaudovic@users.noreply.github.com>
Co-authored-by: Liangliang Ma <liangliang.ma@intel.com>
Co-authored-by: Lanze Liu <86434077+liulanze@users.noreply.github.com>
Co-authored-by: Xiaoran <claire.rrchen@hotmail.com>
Co-authored-by: Xiaoran Chen <xiaoran@fb.com>
Co-authored-by: Aakar Dwivedi <82587125+aadwived@users.noreply.github.com>
Co-authored-by: R <Ganesh.R@amd.com>
Co-authored-by: Harshal Adhav <harshal.adhav@amd.com>
Co-authored-by: nightcityblade <jackchen@haloailabs.com>
Co-authored-by: nightcityblade <nightcityblade@gmail.com>
Co-authored-by: Umut Polat <52835619+umut-polat@users.noreply.github.com>
Co-authored-by: Jeffrey Wang <jeffreywang@anyscale.com>
Co-authored-by: wcy <86111164+wcynb1023@users.noreply.github.com>
Co-authored-by: Uranus <109661872+UranusSeven@users.noreply.github.com>
Co-authored-by: zzt <mf1732009@smail.nju.edu.cn>
Co-authored-by: Jiangyun Zhu <riverclouds.zhu@qq.com>
Co-authored-by: Madeesh Kannan <shadeMe@users.noreply.github.com>
Co-authored-by: Xunzhuo <xunzhuo@vllm-semantic-router.ai>
Co-authored-by: Alec <35311602+alec-flowers@users.noreply.github.com>
Co-authored-by: Krishna Chaitanya <krishnabkc15@gmail.com>
Co-authored-by: wjinxu <1299461899@qq.com>
Co-authored-by: Kc Balusu <kcbalusu@users.noreply.github.com>
Co-authored-by: JooHo Lee <96564470+BWAAEEEK@users.noreply.github.com>
Co-authored-by: ZiTian Zhao <zitian.zhao@tencentmusic.com>
Co-authored-by: B-201 <Joy25810@foxmail.com>
Co-authored-by: zhrrr <43847754+izhuhaoran@users.noreply.github.com>
Arkar-Hema added a commit to Arkar-Hema/vllm_fork that referenced this pull request Jun 9, 2026
The existing TritonW4A16LinearKernel is correct on CDNA but uses a
[K, N//8] weight layout, M-only tile dispatch, and runtime zero-point
unpacking — all sub-optimal for wave64 decode where per-output-row
scale + zp loads should be contiguous and per-iteration unpack cost
should be paid once at load time, not every K-tile.

Add CDNAHybridW4A16LinearKernel: pure Triton with [N, K//8] ExLlama-
shuffled weights, (K, N) aspect-ratio-aware tile dispatch, and
pre-unpacked zero-points. Gated by on_mi3xx() (gfx942 / gfx950); other
ROCm targets fall through to TritonW4A16LinearKernel. Yields 1.10-1.20x
bf16 decode TPOT and up to 2.99x chunked-prefill TTFT vs the Triton
baseline on Qwen2.5-7B-AWQ and Qwen3-4B-w4a16, MI300X.

Addresses vllm-project#34008. Complements vllm-project#40977 (gfx11/gfx12) and vllm-project#41394 (gfx1100).

Co-authored-by: Claude
Signed-off-by: Arkar-Hema <hema.bhaskar@multicorewareinc.com>
nkzhenhua pushed a commit to nkzhenhua/vllm that referenced this pull request Jun 24, 2026
plasticchris added a commit to plasticchris/vllm that referenced this pull request Jul 8, 2026
…1100

Native HIP skinny-decode GEMM (wvSplitK_int4_g) + Triton prefill for W4A16.
Supports compressed-tensors asymmetric uint4 (group_size 32/64/128), which the
symmetric-only RDNA3 kernel (PR vllm-project#41394) rejects. Registered ahead of
TritonW4A16LinearKernel in the ROCm mixed-precision priority list.

Adds on_gfx1151() to platforms/rocm.py (required by the hybrid prefill path).

Decode throughput on 2x RX 7900 XTX, Qwen3.6-27B W4A16-G32 asym, TP=2:
  ctx    50:  16.4 -> 28.1 tok/s (1.71x)
  ctx  8000:  14.5 -> 23.5 tok/s (1.62x)
  ctx 24000:  12.2 -> 18.6 tok/s (1.52x)
  ctx 48000:   9.9 -> 14.1 tok/s (1.42x)

Correctness: tests/kernels/quantization/test_rdna_hybrid_w4a16.py 83/83 pass
(forward parity sym+asym, all shapes/group sizes; process_weights repack).
philippesic pushed a commit to philippesic/vllm-semantic-cache that referenced this pull request Jul 19, 2026
plasticchris added a commit to plasticchris/vllm that referenced this pull request Jul 20, 2026
…1100

Native HIP skinny-decode GEMM (wvSplitK_int4_g) + Triton prefill for W4A16.
Supports compressed-tensors asymmetric uint4 (group_size 32/64/128), which the
symmetric-only RDNA3 kernel (PR vllm-project#41394) rejects. Registered ahead of
TritonW4A16LinearKernel in the ROCm mixed-precision priority list.

Adds on_gfx1151() to platforms/rocm.py (required by the hybrid prefill path).

Decode throughput on 2x RX 7900 XTX, Qwen3.6-27B W4A16-G32 asym, TP=2:
  ctx    50:  16.4 -> 28.1 tok/s (1.71x)
  ctx  8000:  14.5 -> 23.5 tok/s (1.62x)
  ctx 24000:  12.2 -> 18.6 tok/s (1.52x)
  ctx 48000:   9.9 -> 14.1 tok/s (1.42x)

Correctness: tests/kernels/quantization/test_rdna_hybrid_w4a16.py 83/83 pass
(forward parity sym+asym, all shapes/group sizes; process_weights repack).
yiminyuan added a commit to yiminyuan/vllm that referenced this pull request Jul 26, 2026
Port of the RDNA3 W4A16 kernel's fp16 scalar path (PR vllm-project#41394) to gfx1030:
a dedicated fp16-only gptq_gemm_rdna2 op (fdot2 + exllamav2 bit-trick
dequant, packed 64-bit CAS atomic epilogue) with bf16 and the M>=64 WMMA
fallback dropped (RDNA2 has neither) -- scalar for all M. Symmetric uint4b8,
gated on_gfx1030(); CMake VLLM_ROCM_GFX1030 gate. 15 correctness tests vs an
fp32 reference in tests/kernels/quantization/test_rdna2_w4a16.py.
eble-amd added a commit to ROCm/vllm that referenced this pull request Sep 8, 2026
RocmPlatform.is_gfx1151() duplicated the module-level on_gfx1151()
upstream added in vllm-project#41394, so delete it.

The Triton attention path is platform-neutral but called
current_platform.is_navi()/.is_gfx1151() unguarded; off ROCm, these
raise an error.  Resolve both once at module scope behind an is_rocm()
guard, as upstream does in rocm_aiter_mla_sparse.py and fa_utils.py.
Use the resulting bools at every call site.

conch.py's _is_rdna3() now calls on_gfx11() instead of sniffing
gcnArchName, which also stops it initialising CUDA.

Signed-off-by: Dan Eble <Dan.Eble@amd.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci/build ready ONLY add when PR is ready to merge/full CI is needed rocm Related to AMD ROCm v1

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.