Skip to content

[ci] build the PPU image from this repo - #613

Open
tiankongdeguiji wants to merge 4 commits into
release/v1.2from
ppu-ci-image-1.2
Open

[ci] build the PPU image from this repo#613
tiankongdeguiji wants to merge 4 commits into
release/v1.2from
ppu-ci-image-1.2

Conversation

@tiankongdeguiji

@tiankongdeguiji tiankongdeguiji commented Jul 27, 2026

Copy link
Copy Markdown
Collaborator

Build the PPU image from this repo instead of an out-of-tree addons checkout, and pick up the PPU artifacts' new home.

The PPU image was built outside the repo, so it drifted from requirements/ whenever the release pins moved and could not be reproduced from a checkout. docker/Dockerfile.ppu now installs the PPU torch/triton/faiss/fbgemm builds from the vendor pypi index on top of the vendor PPU base image, then installs requirements.txt like the other images do. The torch==2.11.0 / fbgemm-gpu==1.6.0 / torchrec==1.6.0 pins in requirements/runtime.txt are satisfied by the PPU builds (their local version +v0.1.0.ppu2.1.1 matches the pin), so no non-PPU wheel is pulled in.

Changes:

  • docker/Dockerfile.ppu: base image ppu:v2.1.1-cuda13.0-ubuntu24-py312, PPU wheels from the vendor index, mirrors.aliyun.com for everything else. Drops the PIP_INDEX_URL + sitecustomize.py / aiextpypi.pth STS shim the old out-of-tree Dockerfile carried; it is no longer needed.
  • scripts/build_docker_ppu.sh / scripts/promote_docker_ppu.sh: build and promotion for the single PPU tag. Kept separate from build_docker.sh / promote_docker.sh because the PPU image is built and validated on its own cadence and may lag the cpu/cu* images; it also never takes the <tag> / latest aliases.
  • .github/workflows/unittest_ppu_ci.yml: run the PPU lane on the freshly built image (switched back to tzrec-devel:1.2-ppu after promotion).
  • docs/source/develop.md: document the PPU image build.
  • Version bumped to 1.2.24.

Test Plan

  • Built the image from this branch and smoke-tested it off-device: torch 2.11.0+v0.1.0.ppu2.1.1, triton 3.6.0+v0.2.0.ppu2.1.1, faiss 1.14.1+v0.1.0.ppu2.1.1, fbgemm_gpu 1.6.0+v0.1.0.ppu2.1.1, torchrec 1.6.0; torch, triton, faiss, fbgemm_gpu, torchrec, torchmetrics, graphlearn, pyfg, tensorboard, sklearn all import.
  • Confirmed in the build log that pip install -r requirements.txt reports torch/fbgemm-gpu/torchrec as already satisfied, i.e. the shared requirements files do not re-resolve a non-PPU torch.
  • Validated cache-cold (--no-cache): an earlier build had cached a layer from when the vendor index still proxied the upstream fbgemm_gpu wheel, which loads against real CUDA but not the PPU CUDA shim (undefined symbol: __cudaGetKernel, version libcudart.so.13). The vendor index now serves only PPU artifacts for that name, and the cold build resolves fbgemm_gpu-1.6.0+v0.1.0.ppu2.1.1.
  • PPU unit-test CI lane (scripts/ci/ci_test_ppu.sh, full tzrec/tests/run.py) on the built image.

tiankongdeguiji and others added 3 commits July 27, 2026 17:49
The PPU image was built out of tree, so it drifted from requirements/ whenever
the release pins moved and could not be reproduced from a checkout. Move the
build in: docker/Dockerfile.ppu installs the PPU torch/triton/faiss builds from
the FlyTiger Eco pypi index on top of the vendor PPU base image and then
installs requirements.txt like the other images do. PPU build and promotion get
their own scripts because the image is validated on its own cadence and may lag
the cpu/cu* images.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H5JspSJLDuxSnprexTKwba
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H5JspSJLDuxSnprexTKwba
@tiankongdeguiji tiankongdeguiji changed the title [ci] bump ppu unit test image to tzrec-test:1.2-ppu [ci] build the PPU image from this repo Aug 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant