[CI] Fix old NVCC dependency in GH CI#3230
Conversation
Signed-off-by: Fred Heinecke <fheinecke@nvidia.com>
Greptile SummaryThis PR unblocks CI by upgrading the CUDA container image to
Confidence Score: 4/5Safe to merge as an unblocking CI fix; the hardcoded NCCL package version is the only maintenance risk. The changes are straightforward container and package updates. The only concern is the hardcoded .github/workflows/build.yml — the duplicated NCCL version pins in the Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[PR Trigger] --> B[core job\ncuda:12.9.2-devel-ubuntu22.04]
A --> C[pytorch job\ncuda:12.9.2-devel-ubuntu22.04]
A --> D[jax job\nghcr.io/nvidia/jax:jax]
A --> E[all job\nghcr.io/nvidia/jax:jax]
B --> B1[apt-mark unhold libnccl2 libnccl-dev]
B1 --> B2[apt-get install git python3 python3-pip\ncudnn9-cuda-12 libnccl2=2.30.7 libnccl-dev=2.30.7]
B2 --> B3[pip install cmake pybind11 ninja cudnn-frontend]
B3 --> B4[Checkout + sccache]
B4 --> B5[pip install TE - NVTE_FRAMEWORK=none]
B5 --> B6[Sanity check: import transformer_engine]
C --> C1[docker run cuda:12.9.2 container]
C1 --> C2[apt-mark unhold libnccl2 libnccl-dev]
C2 --> C3[apt-get install git python3 python3-pip\ncudnn9-cuda-12 libnccl2=2.30.7 libnccl-dev=2.30.7]
C3 --> C4[pip install cmake torch ninja...]
C4 --> C5[pip install TE - NVTE_FRAMEWORK=pytorch]
C5 --> C6[Sanity check: test_sanity_import.py]
D --> D1[pip install cmake pybind11 cudnn-frontend]
D1 --> D2[pip install TE - NVTE_FRAMEWORK=jax]
D2 --> D3[Sanity check: jax test_sanity_import.py]
E --> E1[docker run jax container]
E1 --> E2[pip install cmake torch cudnn-frontend...]
E2 --> E3[pip install TE - NVTE_FRAMEWORK=all]
E3 --> E4[Sanity check: pytorch + jax]
Reviews (1): Last reviewed commit: "[CI] Fix old NVCC dependency in GH CI" | Re-trigger Greptile |
Description
CI is failing because the NVCC version in the CUDA container image used is too old. Newer container images don't include a sufficiently new version of NVCC.
This installs the dependency via apt. This is less than ideal, but it unblocks CI while I work on a better solution.
Note: this fixes the
fatal error: nccl_device.h: No such file or directorycompilation issue, but pipelines still won't pass due to issues farther down in the build process (compilation choking out the runner agent process, runners failing to compile everything within 6 hour limit, etc).Type of change
Changes
Please list the changes introduced in this PR:
Install nvcc via apt, bypassing old nvcc version in base image.
Fixed setup installing python3-llfuse instead of just python
Checklist: