[NV] llm-d-vllm: optimize DSv4-Pro GB200 recipe configs - #2498
Conversation
Tune decode and prefill vLLM flags based on validated GB200 NVL72 benchmarks showing +2-43% tok/s/GPU and 15-25% lower TPOT: Decode (mid-curve-megamoe): - gpu-memory-utilization 0.85 -> 0.9 (larger KV cache pool) - Add max-model-len 9280 (tight ISL8192+OSL1024 bound) - max-num-seqs/batched-tokens/cudagraph-capture 512 -> 1024 - Disable NCCL symmetric memory (standard NVLink path faster) - Add no-enable-flashinfer-autotune, rust frontend Prefill (both recipes): - gpu-memory-utilization 0.9 -> 0.95 - Add max-model-len 9280, max-num-seqs 16, max-num-batched-tokens 32768 - Disable NCCL symmetric memory, enable rust frontend - Enable randomize-dp-dummy-inputs EPP (both recipes): - Switch from max-score-picker to weighted-random-picker (threshold=0.1) for better load distribution under high concurrency Low-latency decode: disable NCCL symmetric memory, add rust frontend.
Resolve perf-changelog conflict: keep PR #2242 entry plus upstream additions.
…v/update-dsv4 Resolve perf-changelog conflict: keep single PR #2242 entry with upstream additions.
|
Thanks for the contribution! Please reach out to respective companies' CODEOWNER to fill in the latest PR_REVIEW_CHECKLIST.md before pinging core maintainer on Slack for review. In order for the signoff PR check bot to trigger, you must follow the PR_REVIEW_CHECKLIST.md template correctly, including the phrase For PR verification, add the PR authors are responsible for ensuring that after merging, all GitHub Action jobs fully pass. A lot of the time, failures are just flakes and simply re-running the failed jobs will fix it. See GitHub's docs on re-running failed jobs 感谢你的贡献!请联系相应公司的 CODEOWNER 填写最新的 PR_REVIEW_CHECKLIST.md,然后再在 Slack 上联系核心维护者进行审阅。为了触发 signoff PR 检查机器人,你必须正确遵循 PR_REVIEW_CHECKLIST.md 模板,包括保留英文语句 如需进行 PR 验证,请为此 PR 添加 PR 作者有责任确保合并后所有 GitHub Action 任务完全通过。 很多时候失败只是偶发抖动(flake),重新运行失败的任务即可解决。参见 GitHub 关于重新运行失败任务的文档 |
2 similar comments
|
Thanks for the contribution! Please reach out to respective companies' CODEOWNER to fill in the latest PR_REVIEW_CHECKLIST.md before pinging core maintainer on Slack for review. In order for the signoff PR check bot to trigger, you must follow the PR_REVIEW_CHECKLIST.md template correctly, including the phrase For PR verification, add the PR authors are responsible for ensuring that after merging, all GitHub Action jobs fully pass. A lot of the time, failures are just flakes and simply re-running the failed jobs will fix it. See GitHub's docs on re-running failed jobs 感谢你的贡献!请联系相应公司的 CODEOWNER 填写最新的 PR_REVIEW_CHECKLIST.md,然后再在 Slack 上联系核心维护者进行审阅。为了触发 signoff PR 检查机器人,你必须正确遵循 PR_REVIEW_CHECKLIST.md 模板,包括保留英文语句 如需进行 PR 验证,请为此 PR 添加 PR 作者有责任确保合并后所有 GitHub Action 任务完全通过。 很多时候失败只是偶发抖动(flake),重新运行失败的任务即可解决。参见 GitHub 关于重新运行失败任务的文档 |
|
Thanks for the contribution! Please reach out to respective companies' CODEOWNER to fill in the latest PR_REVIEW_CHECKLIST.md before pinging core maintainer on Slack for review. In order for the signoff PR check bot to trigger, you must follow the PR_REVIEW_CHECKLIST.md template correctly, including the phrase For PR verification, add the PR authors are responsible for ensuring that after merging, all GitHub Action jobs fully pass. A lot of the time, failures are just flakes and simply re-running the failed jobs will fix it. See GitHub's docs on re-running failed jobs 感谢你的贡献!请联系相应公司的 CODEOWNER 填写最新的 PR_REVIEW_CHECKLIST.md,然后再在 Slack 上联系核心维护者进行审阅。为了触发 signoff PR 检查机器人,你必须正确遵循 PR_REVIEW_CHECKLIST.md 模板,包括保留英文语句 如需进行 PR 验证,请为此 PR 添加 PR 作者有责任确保合并后所有 GitHub Action 任务完全通过。 很多时候失败只是偶发抖动(flake),重新运行失败的任务即可解决。参见 GitHub 关于重新运行失败任务的文档 |
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=31012181762 |
Point pr-link at #2498 and drop inaccurate max-num-seqs 512->1024 claim. Co-authored-by: Cursor <cursoragent@cursor.com>
Move the changelog entry to the file tail and restore the two-space separator after PR #2420 so process_changelog sees additions only. Co-authored-by: Cursor <cursoragent@cursor.com>
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=31040445843 |
Move the shared image URI and squash import helpers before the llm-d early path, then use the same locked and atomic importer for its Quay image. Give fresh imports a private temporary Enroot runtime directory so CI does not fall back to /run/enroot. 中文:修复 GB200 启动器,让 llm-d 的 Quay 镜像复用带锁、原子替换和校验的共享导入逻辑。为全新导入创建独立的临时 Enroot 运行目录,避免 CI 回退到无写权限的 /run/enroot。
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=31042076258 |
Pin the vllm0.26 OCI index so Enroot 3.5 can query it on GB200. Quay returns 404 for the tag during Enroot’s headerless permission probe, while the immutable digest returns 200 and resolves the arm64 manifest. 中文:固定 vllm0.26 的 OCI 索引摘要,使 GB200 上的 Enroot 3.5 能够正常查询镜像。Quay 对 Enroot 不带 Accept 标头的标签权限探测返回 404,而不可变摘要返回 200 并可解析 arm64 清单。
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=31042613540 |
…old. EPP v0.9.0 rejects the threshold parameter; remove it from both GB200 recipes and update the changelog entry accordingly. Co-authored-by: Cursor <cursoragent@cursor.com>
The low-latency recipe is tuned for c1 only (1P×1D); high-concurrency 1P×4D jobs were misconfigured and failing CI unrelated to recipe tuning. Co-authored-by: Cursor <cursoragent@cursor.com>
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=31086141030 |
Tune decode and prefill vLLM flags based on validated GB200 NVL72 benchmarks showing +2-43% tok/s/GPU and 15-25% lower TPOT:
Decode (mid-curve-megamoe):
--stream-intervalfrom both recipes (unsupported by rust frontend on v0.23; removed in v0.26 branch regardless)Prefill (both recipes):
EPP (both recipes):
Low-latency decode: disable NCCL symmetric memory, add rust frontend.