Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 33 additions & 1 deletion .github/workflows/cicd-main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -232,11 +232,26 @@ jobs:
with:
python-version: 3.12

- name: Install GH CLI
shell: bash -x -e -u -o pipefail {0}
run: |
apt-get update
apt-get install -y gh

- name: Get PR info
id: get-pr-info
if: startsWith(github.ref, 'refs/heads/pull-request/')
uses: nv-gha-runners/get-pr-info@main

- name: Has lts label
id: has-lts-label
env:
GH_TOKEN: ${{ secrets.PAT }}
run: |
PR_NUMBER=${{ fromJSON(steps.get-pr-info.outputs.pr-info || '{}').number }}
HAS_LTS_LABEL=$(gh pr view $PR_NUMBER --json labels | jq '[.labels[].name] | any(. == "container::lts")') || echo "false"
echo "main=$HAS_LTS_LABEL" | tee -a $GITHUB_OUTPUT

- name: Download test data
shell: bash
env:
Expand Down Expand Up @@ -275,6 +290,22 @@ jobs:
echo "$LAST_PRS" | tee -a $GITHUB_OUTPUT
echo "EOF" | tee -a $GITHUB_OUTPUT

- name: Parse baseimage
shell: bash
id: base-image
env:
HAS_LTS_LABEL: ${{ steps.has-lts-label.outputs.main }}
run: |
if [ "$HAS_LTS_LABEL" == "true" ]; then
NGC_VERSION=$(cat docker/.ngc_version.lts)
echo "version=$NGC_VERSION" | tee -a $GITHUB_OUTPUT
echo "image_type=lts" | tee -a $GITHUB_OUTPUT
else
NGC_VERSION=$(cat docker/.ngc_version.dev)
echo "version=$NGC_VERSION" | tee -a $GITHUB_OUTPUT
echo "image_type=dev" | tee -a $GITHUB_OUTPUT
fi

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

Expand All @@ -286,7 +317,8 @@ jobs:
context: .
target: main
build-args: |
FROM_IMAGE_NAME=nvcr.io/nvidia/pytorch:25.09-py3
FROM_IMAGE_NAME=${{ steps.base-image.outputs.version }}
IMAGE_TYPE=${{ steps.base-image.outputs.image_type }}
cache-from: |
type=registry,ref=${{ env.container-registry }}/megatron-lm:${{ fromJSON(steps.get-pr-info.outputs.pr-info || '{}').number || 0 }}-buildcache,mode=max
type=registry,ref=${{ env.container-registry }}/megatron-lm:main-buildcache,mode=max
Expand Down
6 changes: 4 additions & 2 deletions .gitlab/stages/01.build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,12 @@ test:build_image:
parallel:
matrix:
- IMAGE: CI_MCORE_LTS_IMAGE
FILE: Dockerfile.ci.lts
BASE_IMAGE: nvcr.io/nvidia/pytorch:24.01-py3
FILE: Dockerfile.ci.dev
IMAGE_TYPE: lts
BASE_IMAGE: nvcr.io/nvidia/pytorch:25.09-py3
- IMAGE: CI_MCORE_DEV_IMAGE
FILE: Dockerfile.ci.dev
IMAGE_TYPE: dev
BASE_IMAGE: nvcr.io/nvidia/pytorch:25.09-py3
- IMAGE: UTILITY_IMAGE
FILE: Dockerfile.linting
Expand Down
1 change: 1 addition & 0 deletions docker/.ngc_version.dev
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
nvcr.io/nvidia/pytorch:25.09-py3
1 change: 1 addition & 0 deletions docker/.ngc_version.lts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
nvcr.io/nvidia/pytorch:25.09-py3
6 changes: 2 additions & 4 deletions docker/Dockerfile.ci.dev
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
# syntax=docker/dockerfile:1.3-labs

ARG FROM_IMAGE_NAME
ARG WHEEL_DIR=/workspace/wheels

FROM ${FROM_IMAGE_NAME} as main
ENV PIP_CONSTRAINT=""
ENV DEBIAN_FRONTEND=noninteractive
Expand All @@ -25,16 +23,16 @@ RUN bash -ex <<"EOF"
curl -LsSf https://astral.sh/uv/${UV_VERSION}/install.sh | sh
EOF

ARG WHEEL_DIR
COPY README.md pyproject.toml uv.lock /workspace/
COPY megatron/core/__init__.py /workspace/megatron/core/
COPY megatron/core/package_info.py /workspace/megatron/core/
ARG IMAGE_TYPE=dev
RUN --mount=type=cache,target=/root/.cache/uv \
bash -ex <<"EOF"
export NVTE_CUDA_ARCHS="80;90;100"
uv venv ${UV_PROJECT_ENVIRONMENT} --system-site-packages
uv sync --only-group build
uv sync --extra dev --extra mlm --link-mode copy --locked \
uv sync --extra ${IMAGE_TYPE} --extra mlm --link-mode copy --locked \
--no-install-package torch \
--no-install-package torchvision \
--no-install-package triton \
Expand Down
98 changes: 0 additions & 98 deletions docker/Dockerfile.ci.lts

This file was deleted.

19 changes: 13 additions & 6 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ mlm = ["flask-restful", "sentencepiece", "tiktoken", "wandb", "transformers"]
dev = [
"nvidia-modelopt[torch]; sys_platform != 'darwin'",
"transformer-engine[pytorch]>=2.9.0a0,<2.10.0",
"nvidia-resiliency-ext>=0.4.0a0,<0.5.0",
"nvidia-resiliency-ext",
"tqdm",
"einops~=0.8",
"tensorstore~=0.1,!=0.1.46,!=0.1.72",
Expand All @@ -89,13 +89,20 @@ dev = [

lts = [
"tqdm",
"einops",
"tensorstore!=0.1.46,!=0.1.72",
"nvtx",
"transformers",
"zarr",
"einops~=0.8",
"tensorstore~=0.1,!=0.1.46,!=0.1.72",
"nvtx~=0.2",
"multi-storage-client~=0.27",
"opentelemetry-api~=1.33.1",
"setuptools<80.0.0",
"mamba-ssm~=2.2",
"causal-conv1d~=1.5",
"nv-grouped-gemm~=1.1",
"megatron-energon[av_decode]~=6.0",
"av<16.0.0", # At the time, av 16.0.0 is not compatible with Python 3.12
"flashinfer-python",
"wget",
"onnxscript",
]

[dependency-groups]
Expand Down
Loading
Loading