Repository navigation
[ROCm] Revamp CI/release deployment: collapse image tiers, unify build pipeline - #61917
Closed
AndreasKaratzas wants to merge 201 commits into
Closed
AndreasKaratzas wants to merge 201 commits into
AndreasKaratzas wants to merge 201 commits into
Conversation
…ect#60721) Signed-off-by: mgoin <mgoin64@gmail.com> Co-authored-by: Claude <noreply@anthropic.com> Signed-off-by: Andreas Karatzas <AndreasKaratzas@users.noreply.github.com>
Signed-off-by: mgoin <mgoin64@gmail.com> Co-authored-by: Simon Veitner <sveitner@redhat.com> Co-authored-by: Claude <noreply@anthropic.com> Signed-off-by: Andreas Karatzas <AndreasKaratzas@users.noreply.github.com>
…llm-project#60766) Signed-off-by: Haotian An <haotiaa@amazon.com> Signed-off-by: Andreas Karatzas <AndreasKaratzas@users.noreply.github.com>
…robs=-1 (vllm-project#55717) Signed-off-by: Chester <42577861+superdiaodiao@users.noreply.github.com> Signed-off-by: Andreas Karatzas <AndreasKaratzas@users.noreply.github.com>
…llm-project#61108) Signed-off-by: Laith Sakka <lsakka@meta.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> Signed-off-by: Andreas Karatzas <AndreasKaratzas@users.noreply.github.com>
Signed-off-by: mgoin <mgoin64@gmail.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Andreas Karatzas <AndreasKaratzas@users.noreply.github.com>
…8715) Signed-off-by: Simon Veitner <sveitner@redhat.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Lucas Wilkinson <LucasWilkinson@users.noreply.github.com> Signed-off-by: Andreas Karatzas <AndreasKaratzas@users.noreply.github.com>
vllm-project#60941) Signed-off-by: Maroon Ayoub <mayoub@redhat.com> Signed-off-by: Matthew Bonanni <mbonanni@redhat.com> Co-authored-by: Robert Shaw <114415538+robertgshaw2-redhat@users.noreply.github.com> Co-authored-by: Matthew Bonanni <mbonanni@redhat.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Andreas Karatzas <AndreasKaratzas@users.noreply.github.com>
Signed-off-by: Woosuk Kwon <woosuk@inferact.ai> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Andreas Karatzas <AndreasKaratzas@users.noreply.github.com>
Signed-off-by: josh schell <josh.schell@amd.com> Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com> Co-authored-by: Micah Williamson <micah.williamson@amd.com> Signed-off-by: Andreas Karatzas <AndreasKaratzas@users.noreply.github.com>
…project#58381) Signed-off-by: lifulu <fululi12@amd.com> Signed-off-by: lifulu <lifulu@users.noreply.github.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> Co-authored-by: lifulu <lifulu@users.noreply.github.com> Signed-off-by: Andreas Karatzas <AndreasKaratzas@users.noreply.github.com>
… weight (vllm-project#60020) Signed-off-by: lesj0610 <lesj0610@gmail.com> Co-authored-by: Ning Xie <andy.xning@gmail.com> Signed-off-by: Andreas Karatzas <AndreasKaratzas@users.noreply.github.com>
…llm-project#61023) Signed-off-by: Maroon Ayoub <mayoub@redhat.com> Co-authored-by: Claude <noreply@anthropic.com> Signed-off-by: Andreas Karatzas <AndreasKaratzas@users.noreply.github.com>
Signed-off-by: yewentao256 <zhyanwentao@126.com> Signed-off-by: Andreas Karatzas <AndreasKaratzas@users.noreply.github.com>
…letions render (vllm-project#61236) Signed-off-by: Martin Hickey <martin.hickey@ie.ibm.com> Signed-off-by: Andreas Karatzas <AndreasKaratzas@users.noreply.github.com>
… reuse (vllm-project#59721) Signed-off-by: ztysth <rnk.liulw@gmail.com> Signed-off-by: ztysth <166926442+ztysth@users.noreply.github.com> Co-authored-by: OpenAI Codex <noreply@openai.com> Signed-off-by: Andreas Karatzas <AndreasKaratzas@users.noreply.github.com>
…llm-project#61220) Signed-off-by: Martin Hickey <martin.hickey@ie.ibm.com> Signed-off-by: Andreas Karatzas <AndreasKaratzas@users.noreply.github.com>
…#61181) Signed-off-by: zjy0516 <riverclouds.zhu@qq.com> Signed-off-by: Andreas Karatzas <AndreasKaratzas@users.noreply.github.com>
Signed-off-by: Mikko Tukiainen <Mikko.Tukiainen@amd.com> Signed-off-by: Mikko Tukiainen <mikko.tukiainen@amd.com> Signed-off-by: Andreas Karatzas <AndreasKaratzas@users.noreply.github.com>
…oject#61269) Signed-off-by: Andrey Talman <atalman@fb.com> Signed-off-by: Andreas Karatzas <AndreasKaratzas@users.noreply.github.com>
…vllm-project#59340) Signed-off-by: lesj0610 <lesj0610@users.noreply.github.com> Co-authored-by: lesj0610 <lesj0610@users.noreply.github.com> Co-authored-by: Misha Goin <mgoin64@gmail.com> Signed-off-by: Andreas Karatzas <AndreasKaratzas@users.noreply.github.com>
…0285) Signed-off-by: Matthew Bonanni <mbonanni@redhat.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Andreas Karatzas <AndreasKaratzas@users.noreply.github.com>
…project#61022) Signed-off-by: Almog Tavor <almogtavor@gmail.com> Co-authored-by: Robert Shaw <114415538+robertgshaw2-redhat@users.noreply.github.com> Signed-off-by: Andreas Karatzas <AndreasKaratzas@users.noreply.github.com>
vllm-project#61253) Signed-off-by: Maroon Ayoub <mayoub@redhat.com> Co-authored-by: Flora Feng <4florafeng@gmail.com> Signed-off-by: Andreas Karatzas <AndreasKaratzas@users.noreply.github.com>
…TING_FOR_REMOTE_KVS (vllm-project#57705) Signed-off-by: Akshay Viswanathan <4953343+akshayv@users.noreply.github.com> Co-authored-by: Akshay Viswanathan <4953343+akshayv@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Simon Danielsson <70206058+simondanielsson@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> Co-authored-by: Hongxia Yang <62075498+hongxiayang@users.noreply.github.com> Signed-off-by: Andreas Karatzas <AndreasKaratzas@users.noreply.github.com>
vllm-project#59314) Signed-off-by: wxin <wxin@nvidia.com> Signed-off-by: Bugen Zhao <i@bugenzhao.com> Co-authored-by: Bugen Zhao <i@bugenzhao.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Andreas Karatzas <AndreasKaratzas@users.noreply.github.com>
…61213) Signed-off-by: Tomas Ruiz <tomas.ruiz.te@gmail.com> Co-authored-by: Codex <noreply@openai.com> Co-authored-by: Nick Hill <nickhill123@gmail.com> Signed-off-by: Andreas Karatzas <AndreasKaratzas@users.noreply.github.com>
Signed-off-by: Ilya Boytsov <ieboytsov@nebius.com> Signed-off-by: Misha Goin <mgoin64@gmail.com> Signed-off-by: mgoin <mgoin64@gmail.com> Co-authored-by: Ilya Boytsov <ieboytsov@nebius.com> Co-authored-by: Codex <noreply@openai.com> Co-authored-by: Misha Goin <mgoin64@gmail.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Andreas Karatzas <AndreasKaratzas@users.noreply.github.com>
…erify, with empty-segment/padding hardening (vllm-project#56148) Signed-off-by: venkywonka <23023424+venkywonka@users.noreply.github.com> Signed-off-by: Venky <23023424+venkywonka@users.noreply.github.com> Co-authored-by: OpenAI GPT-6 Astra <noreply@openai.com> Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: Andreas Karatzas <AndreasKaratzas@users.noreply.github.com>
…roject#59070) Signed-off-by: whx-sjtu <xiaowang990929@gmail.com> Co-authored-by: OpenAI Codex <noreply@openai.com> Co-authored-by: Claude Code <noreply@anthropic.com> Co-authored-by: Fangzhou Ai <31551580+Fangzhou-Ai@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> Co-authored-by: Simon Danielsson <70206058+simondanielsson@users.noreply.github.com> Signed-off-by: Andreas Karatzas <AndreasKaratzas@users.noreply.github.com>
Member
Author
|
Closing to reopen with a clean branch — merge conflict resolution and DCO handling were done incorrectly. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Currently on CI and deployment, we have:
ci-bake-rocm.sh; release rebuilt from scratch using a separate pipeline. The bytes shipped to users were never the bytes tested on GPUs.ci-bake-rocm.shalone was 2,784 lines. The ROCm build/deploy surface totalled ~12,000 lines of shell with no human able to read, modify or debug it under pressure.In this PR, the purpose is to have:
Two image tiers, one Dockerfile, one HCL, three readable scripts.
rocm/vllm-ci:stack-rocm-<Ks>) — base OS + ROCm + PyTorch. Built only whendocker/Dockerfile.rocm_baseortools/vllm-rocm/therock_wheels.pychanges (content keyKs). Pushed once; reused by every subsequent build.rocm/vllm-ci:build-<build-id>) — vLLM compiled on top of the stack. The runtime keyKr(hash ofKs+ Dockerfile above the marker + pip requirement files) gates whether the runtime layer is rebuilt. A Python-only commit reuses the runtime; a requirements bump rebuilds it; a csrc-only change rebuilds neither.One shared
docker/Dockerfile.rocm. A named BuildKit context (stack) is injected by the bake HCL, so the same Dockerfile builds on any stack without duplication.One static
docker/docker-bake-rocm.hclreplaces the dynamically generateddocker/ci-rocm.hcl. All parameterisation is through HCLvariableblocks from environment variables. Targets cover all combinations: stack, runtime, CI test, csrc, wheels, release.build.sh(240 lines) replaces ~5,000 lines of shell scripts. Six modes:keys,base,ci,check,csrc,release. Each mode is a self-contained named section, readable end-to-end.Release promotes the CI digest — no rebuild.
build.sh releasereads the exact digest of the CI-tested image and reuses it. A non-blockingrel-csrcstep compiles csrc for all 9 GPU arches (gfx90a/942/950/1100/1101/1200/1201/1150/1151); because csrc inputs rarely change (~8% of commits), this is almost always a BuildKit cache hit.rocm-release.yaml(53 lines) +publish.sh(200 lines) handle release publishing. A trigger-onlyamd-releaseBuildkite pipeline uploadsrocm-release.yamlonce per main commit.publish.shcopies digests viaimagetools createto ECR, Docker Hub, and S3 — no Docker build, no layer transfer.ROCm 7.2 (apt) deprecated. All
rocm_72stack plumbing removed:Dockerfile.rocm_72_base,stack-rocm_72bake target,rocm72-check-amdCI step, ROCm 7.2 release pipeline group. TheRock 10 (rocm) is the only supported stack.ci-infra is dual-mode. The pipeline generator checks for
.buildkite/scripts/rocm/build.shin the vLLM checkout. Present → new pipeline renders. Absent (old checkouts, forks) → existing pipeline unchanged.Image pre-warming. Runtime tags are content-keyed (
runtime-rocm-<Kr>). A cluster cron job can pre-pull by checking tag presence before pulling, avoiding the 200-node simultaneous pull on rare runtime rebuilds.What is preserved
image-build-amd— unchanged. All 229 GPU test steps continue to depend on it.SETUP_STEP_KEYS = {"refresh-rocm-base-amd", "pre-commit"}openai-smokeandtest-smokestages inDockerfile.rocm;rel-gpuGPU smoke onamd_mi250_1inrocm-release.yaml.run-amd-test.shhandles:CONTAINER_TIMEOUT_Swall-clock timeout (timeout --foreground), structured[amd-ci-teardown]lifecycle log events, exit-code propagation, DPX GPU partition lock, HF mount check, NFS xet redirect, GPU preflight, diagnostics bundle on failure.vllm/vllm-openai-rocm:nightly*,base-nightly*), S3 wheels per main commit, perf-eval ECR image, credential boundaries.AITER_SPEC.Net change
39 files, +1,894 / −8,922 vs
origin/main.docker/Dockerfile.rocmdocker/Dockerfile.rocm_basedocker/docker-bake-rocm.hcl.buildkite/scripts/rocm/build.sh.buildkite/scripts/rocm/publish.sh.buildkite/rocm-release.yamltests/tools/test_rocm_build.pydocker/context/base-wheels/.keep.buildkite/scripts/hardware_ci/run-amd-test.sh.buildkite/hardware_tests/amd.yaml.buildkite/release-pipeline.yamldocker/Dockerfile.rocm_72_basedocker/ci-rocm.hcl.buildkite/scripts/ci-bake-rocm.shrocm/*.shscripts (8 files)requirements/build/rocm.txtROCm build/deploy surface after this PR: 1 Dockerfile (483 lines), 1 HCL (118 lines), 3 bash scripts (build 240, publish 200, run-amd-test 182 = 622 lines total).
Follow-up infra tasks
amd-releaseBuildkite pipeline — create trigger-only pipeline in vllm-project's org withROCM_STACKenv var.rocm/vllm-ci-prDocker Hub repo — create with push access for theamd-cpuagent token.amd-cpu-prqueue split — run PR builds on separate hosts with their own Hub token. One comment inbuild.shmarks the boundary.rocm/vllm-ci:runtime-rocm-<Kr>on CI nodes with a tag-presence check.Dockerfile.rocm_gfx1250,Dockerfile.rocm_base_gfx1250) — kept as-is, not wired into CI or release; needs owner sign-off before removal.AI assistance (Claude Code) was used to draft this change. Every line was reviewed by the submitter.