Repository navigation
Conversation
Remove env vars and serve args that are no-ops or already defaults, enable AITER RMSNorm and torch.compile where accuracy holds, keep the smoke test and bench serve recipes identical, and harden model-to-model teardown. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018bdzYBMY9tvQKUWasAEG5W
|
👋 Hi! Thank you for contributing to the vLLM project. 💬 Join our developer Slack at https://slack.vllm.ai to discuss your PR in #pr-reviews, coordinate on features in #feat- channels, or join special interest groups in #sig- channels. Just a reminder: PRs would not trigger full CI run by default. Instead, it would only run You ask your reviewers to trigger select CI tests on top of Once the PR is approved and ready to go, your PR reviewer(s) can run CI to test the changes comprehensively before merging. To run CI, PR reviewers can either: Add If you have any questions, please reach out to us on Slack at https://slack.vllm.ai. 🚀 |
Remove params that were each tested by removing them one at a time (gsm8k and bench serve hold): - VLLM_ROCM_USE_SKINNY_GEMM=0 for dsr1, minimax, dsv41f - TRITON_HIP_USE_ASYNC_COPY=0 for dsr1 - VLLM_USE_BREAKABLE_CUDAGRAPH=1 for dsv41f - --trust-remote-code for dsr1 and minimax - minimax --max-num-batched-tokens 32768 (already max_model_len) - qwen --no-enable-flashinfer-autotune (no-op on ROCm) gptoss keeps SKINNY_GEMM=0: bench throughput was mixed without it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018bdzYBMY9tvQKUWasAEG5W
…dsv4f Removed together and checked with gsm8k plus bench serve (two runs each): - oaigptoss: TRITON_HIP_USE_ASYNC_COPY=0, VLLM_ROCM_USE_SKINNY_GEMM=0 gsm8k 0.90, output tok/s 4831 -> 4924 (+2%) - dsv4f: VLLM_ROCM_USE_AITER_LINEAR=0, VLLM_ROCM_USE_SKINNY_GEMM=0 gsm8k 0.95, output tok/s 893 -> 1368 (+53%), median TPOT 66 -> 43 ms Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018bdzYBMY9tvQKUWasAEG5W
Upstream added glm, kimik3 and musespark (recipes taken verbatim), the MODEL_BENCH_ARGS hook, and a 1 h readiness wait (taken over our 40 min). Existing model recipes keep this branch's cleanups; upstream did not change them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018bdzYBMY9tvQKUWasAEG5W
Clean up gfx1250 smoke test and bench serve params
Summary
Prunes stale env vars and serve args from
vllm_smoketest.shandvllm_benchserve.sh. Turns on AITER RMSNorm and torch.compile where accuracy holds. Makes the two scripts use identical model recipes and fixes two teardown/timeout bugs found while testing.Removed
Env vars (all models):
HSA_ENABLE_SDMA=0 USE_SVM=0 HSA_XNACK=0: no longer needed.Env vars (no-ops or defaults):
VLLM_ROCM_USE_AITER_UNIFIED_ATTENTION=1: dsr1 only hasTRITON_MLA, and minimax is forced toROCM_ATTN, so it never takes effect.VLLM_FORCE_TORCH_BLOCK_FP8=1: nothing in vLLM reads it.VLLM_ROCM_USE_AITER_TRITON_GEMM=1andVLLM_ROCM_USE_AITER_FP8BMM=0: these are already the defaults.VLLM_DISABLE_COMPILE_CACHE=1(dsr1, minimax) andVLLM_ROCM_USE_AITER_MLA=0(minimax): no effect on these models.VLLM_ROCM_USE_AITER_RMSNORM=0:aiterkernel is selected and gsm8k accuracy holds (see below).Env vars (removed one at a time; gsm8k and bench serve hold):
VLLM_ROCM_USE_SKINNY_GEMM=0: dsr1, minimax, dsv41f.TRITON_HIP_USE_ASYNC_COPY=0: dsr1.VLLM_USE_BREAKABLE_CUDAGRAPH=1: dsv41f.Env vars (removed together; gsm8k holds, bench serve is faster):
TRITON_HIP_USE_ASYNC_COPY=0andVLLM_ROCM_USE_SKINNY_GEMM=0. Bench throughput goes from 4855 / 4807 to 4936 / 4911 tok/s (+2%), and gsm8k is 0.90.VLLM_ROCM_USE_AITER_LINEAR=0andVLLM_ROCM_USE_SKINNY_GEMM=0. Bench throughput goes from 872 / 914 to 1300 / 1437 tok/s (+53%), median TPOT drops from 66 to 43 ms, and gsm8k is 0.95.Serve args:
--dtype autoand--enable-prefix-caching: both are vLLM defaults."cudagraph_mode":"FULL_AND_PIECEWISE": vLLM overrides it toFULL_DECODE_ONLYanyway."mode":0: this disabled torch.compile. Compile is now on in both scripts.--trust-remote-code(dsr1, minimax): both load with built-in vLLM model classes. dsr1 was tested with it removed (gsm8k 0.95).--max-num-batched-tokens 32768: with chunked prefill off, vLLM already sets it tomax_model_len(32768).--no-enable-flashinfer-autotune: the autotune only runs when flashinfer is installed and on CUDA, so this does nothing on ROCm.Changed
--tensor-parallel-size Nbecomes-tp N. It's a default for tp=1 but kept as a visual check./data/model/DeepSeek-V4-Probecomes/data/models/DeepSeek-V4-Pro.--long).MODEL_PATHS,MODEL_ENVandMODEL_SERVEtables are now identical between the two scripts.Fixed
stop_server: in images withoutrocm-smi, it only slept 8 s, so the next model could load while the previous model'sVLLM::workers still held GPU memory. dsv41f ran out of memory this way. It now waits for those processes to exit first./healthwait: raised from ~20 to ~40 minutes. dsv41f takes more than 20 minutes to load.Kept
VLLM_ROCM_USE_AITER_MLA=0: without it, the server crashes on A0 silicon (mla_decode_stage1_asm_fwd asm is only supported on gfx1250 B0+).VLLM_ROCM_USE_AITER_LINEAR=0: without it, host memory pressure hits 94% during load.VLLM_ROCM_USE_SKINNY_GEMM=0: accuracy is the same without it, but bench throughput was mixed: 3176 / 4223 / 3530 tok/s without it vs 4287 / 5817 with it. Time per token was the same either way (~9.5 ms), but runs without it had more generation stalls, so it stays.VLLM_ENGINE_READY_TIMEOUT_S,--gpu-memory-utilization, dsr1--max-num-batched-tokens 8192,--max-num-seqs, minimax's multimodal flags, and--distributed-executor-backend mp.Test results
rocm/vllm-dev:nightly_455_wip__torch__1021_b353Generation samples, so run-to-run noise is about ±0.03–0.08.
RMSNORM=0, and its resolved engine config and compile-cache hash are identical before and after, so nothing in this PR changes its behaviour. The original 0.94 was a single run; the three later runs scored 0.87–0.88.Final run of this PR's scripts (one back-to-back pass, gsm8k):
Bench serve (random 1k/1k, concurrency 64, no failed requests):
gptoss throughput moves around a lot between runs on this shared box (3.2k–5.8k tok/s) because of occasional generation stalls. Median TPOT stays at about 9.5 ms in every run.
dsr1 and minimax have high TTFT because they use
--max-num-seqs 32, which is below concurrency 64.Not tested
stop_serverwait fix has since been exercised in several back-to-back multi-model runs (smoke test followed by bench serve), with clean server handoffs every time.🤖 Generated with Claude Code