Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
882084f
Move requirements metadata to pyproject
chtruong814 May 13, 2026
2e93ef9
Update CI Dockerfile to install with uv
chtruong814 May 13, 2026
0d53a71
Remove legacy requirements files
chtruong814 May 13, 2026
fb05691
Remove legacy Docker dependency installer
chtruong814 May 13, 2026
611aa64
Fix container build
chtruong814 May 13, 2026
fd0cce2
Fix nemo install
chtruong814 May 14, 2026
419ad1c
Update lhotse minimum version
chtruong814 May 14, 2026
5eb646d
Omit PyTorch synthetic module from coverage
chtruong814 May 14, 2026
8c5a48e
Mark test_speaker_target_setting as broken
chtruong814 May 14, 2026
44e56e4
Revert "Mark test_speaker_target_setting as broken"
chtruong814 May 14, 2026
7f3a9f9
Use cu12 in docker CI
chtruong814 May 14, 2026
327708f
Set back to cuda 13 install
chtruong814 May 14, 2026
4ec47c9
Update to pytorch 2.12 and cuda dl base image
chtruong814 May 18, 2026
7612de7
Merge remote-tracking branch 'origin/main' into chtruong/uv-lock
chtruong814 May 18, 2026
697544c
Try torch 2.10
chtruong814 May 19, 2026
186033e
Add deps
chtruong814 May 21, 2026
085a343
Update uv lock file
chtruong814 May 21, 2026
69d4607
Fix install
chtruong814 May 21, 2026
bcc4980
Add speech CI build ID label
chtruong814 May 22, 2026
f72d5ab
Fix SpeechLM2 automodel data parallel rank
pzelasko May 27, 2026
88de033
Fix lint failures after dependency migration
pzelasko May 27, 2026
fa5e5f9
Merge branch 'main' into chtruong/uv-lock
pzelasko May 27, 2026
074a90a
Fix ASR CUDA graph transcribe workers
pzelasko May 27, 2026
5034b01
Fix functional model support tests
pzelasko May 27, 2026
eca699c
Use CUDA 13.2 PyTorch wheels
pzelasko May 27, 2026
1eca063
Fix ASR CUDA graph fallback errors
pzelasko May 28, 2026
a360c2f
Fix TDT model support vocab targets
pzelasko May 28, 2026
a4a9c66
Merge branch 'main' into chtruong/uv-lock
chtruong814 May 29, 2026
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
6 changes: 5 additions & 1 deletion .coveragerc
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,14 @@ omit =
/workspace/config-3.12.py
/workspace/config-3.py
/workspace/config.py
/workspace/_remote_module_non_scriptable*

[report]
omit =
/workspace/_remote_module_non_scriptable*

[paths]
source =
nemo/
/home/runner/work/NeMo/NeMo/nemo
/workspace/nemo

1 change: 0 additions & 1 deletion .github/actions/test-template/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,6 @@ runs:
set -e
docker exec -t nemo_container_${{ github.run_id }}_${{ inputs.runner }} bash -c '\
cp -r /opt/Megatron-LM/ /workspace/ && \
bash tests/${{ inputs.test_dir }}/${{ inputs.script }}.sh && \
echo "Finished successfully." || echo "Did not finish."'
) 2>&1 | tee $DIR/err.log
Expand Down
21 changes: 0 additions & 21 deletions .github/workflows/_build_container.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,26 +38,6 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v6

- name: Parse manifest.json
id: manifest
run: |
BUILD_ARGS=$(cat << EOF
BASE_IMAGE=$(cat requirements/manifest.json | jq -r '."ngc-pytorch"')
TRTLLM_REPO=$(cat requirements/manifest.json | jq -r '."vcs-dependencies"."trt-llm".repo')
TRTLLM_TAG=$(cat requirements/manifest.json | jq -r '."vcs-dependencies"."trt-llm".ref')
MLM_REPO=$(cat requirements/manifest.json | jq -r '."vcs-dependencies"."megatron-lm".repo')
MLM_TAG=$(cat requirements/manifest.json | jq -r '."vcs-dependencies"."megatron-lm".ref')
TE_REPO=$(cat requirements/manifest.json | jq -r '."vcs-dependencies".transformer_engine.repo')
TE_TAG=$(cat requirements/manifest.json | jq -r '."vcs-dependencies".transformer_engine.ref')
APEX_REPO=$(cat requirements/manifest.json | jq -r '."vcs-dependencies".apex.repo')
APEX_TAG=$(cat requirements/manifest.json | jq -r '."vcs-dependencies".apex.ref')
EOF
)

echo "BUILD_ARGS<<EOF" >> $GITHUB_OUTPUT
echo "$BUILD_ARGS" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT

- name: Get last merged PR
id: cache_from
env:
Expand Down Expand Up @@ -121,7 +101,6 @@ jobs:
NEMO_TAG=${{ github.sha }}
NEMO_REPO=https://github.com/NVIDIA/NeMo
PR_NUMBER=${{ github.event.pull_request.number || 0 }}
${{ needs.pre-flight.outputs.build_args }}
cache-from: |
type=registry,ref=${{ inputs.registry }}/nemo-speech:${{ inputs.image-name }}-buildcache-main,mode=max
type=registry,ref=${{ inputs.registry }}/nemo-speech:${{ inputs.image-name }}-buildcache-${{ github.event.pull_request.number || 0 }},mode=max
Expand Down
6 changes: 3 additions & 3 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,9 @@ Markers: `unit`, `integration`, `system`, `pleasefixme` (broken — skip), `skip
Sphinx-based docs live in `docs/source/`. Build with:

```bash
pip install -r requirements/requirements_docs.txt # one-time setup
make -C docs clean html # full rebuild
make -C docs html # incremental rebuild
uv sync --group docs # one-time setup
uv run make -C docs clean html # full rebuild
uv run make -C docs html # incremental rebuild
```

Output goes to `docs/build/html/`. Open `docs/build/html/index.html` to preview locally.
Expand Down
76 changes: 29 additions & 47 deletions docker/Dockerfile.ci
Original file line number Diff line number Diff line change
Expand Up @@ -14,71 +14,53 @@
# See the License for the specific language governing permissions and
# limitations under the License.

ARG BASE_IMAGE=nvcr.io/nvidia/pytorch:24.07-py3
ARG BASE_IMAGE=nvcr.io/nvidia/cuda-dl-base:26.04-cuda13.2-devel-ubuntu24.04
FROM ${BASE_IMAGE} AS base-image
ARG UV_VERSION=0.11.14

FROM ${BASE_IMAGE} as base-image
ENV PIP_CONSTRAINT=""
ENV DEBIAN_FRONTEND=noninteractive
ENV TRANSFORMERS_OFFLINE=0
ENV HYDRA_FULL_ERROR=1
ENV PYTHONUNBUFFERED=1
ENV UV_PYTHON=3.13
ENV UV_PROJECT_ENVIRONMENT=/opt/venv
ENV UV_LINK_MODE=copy
ENV UV_NO_CACHE=1
ENV UV_NO_PROGRESS=1
ENV VIRTUAL_ENV=/opt/venv
ENV PATH="/root/.local/bin:${VIRTUAL_ENV}/bin:${PATH}"

# APT packages
RUN <<"EOF" bash -ex
apt-get update
apt-get install -y bc libsox-fmt-all
apt-get install -y \
bc \
curl \
git \
libsndfile1 \
libsox-fmt-all \
sox
apt-get clean
EOF

FROM base-image as te-wheel
WORKDIR /tmp/NeMo
ARG TE_REPO
ARG TE_TAG
RUN --mount=type=bind,source=docker/common/install_dep.sh,target=/tmp/NeMo/install_dep.sh \
--mount=type=bind,source=external/patches,target=/tmp/NeMo/external/patches <<"EOF" bash -ex

bash /tmp/NeMo/install_dep.sh --library te --mode build
ls -al /tmp/Megatron-LM || true
EOF

FROM base-image as mcore-wheel
WORKDIR /tmp/NeMo
ARG MLM_REPO
ARG MLM_TAG
RUN --mount=type=bind,source=docker/common/install_dep.sh,target=/tmp/NeMo/install_dep.sh <<"EOF" bash -ex

bash /tmp/NeMo/install_dep.sh --library mcore --mode build
ls -al /tmp/Megatron-LM || true
RUN <<"EOF" bash -ex
curl -LsSf "https://astral.sh/uv/${UV_VERSION}/install.sh" | sh
uv --version
EOF

FROM base-image
WORKDIR /tmp/NeMo
ENV INSTALL_DIR="/opt"
RUN \
--mount=type=bind,from=te-wheel,source=/opt/wheels/te,target=/opt/wheels/te \
--mount=type=bind,from=mcore-wheel,source=/opt/wheels/mcore,target=/opt/wheels/mcore \
--mount=type=bind,source=requirements,target=/tmp/NeMo/requirements \
--mount=type=bind,source=tools/ctc_segmentation/requirements.txt,target=/tmp/NeMo/tools/ctc_segmentation/requirements.txt \
--mount=type=bind,source=docker/common/install_dep.sh,target=/tmp/NeMo/install_dep.sh \
--mount=type=bind,source=setup.py,target=/tmp/NeMo/setup.py \
--mount=type=bind,source=external/patches,target=/tmp/NeMo/external/patches \
--mount=type=bind,source=README.md,target=/tmp/NeMo/README.md \
--mount=type=bind,source=nemo/package_info.py,target=/tmp/NeMo/nemo/package_info.py \
--mount=type=bind,source=nemo/__init__.py,target=/tmp/NeMo/nemo/__init__.py <<"EOF" bash -ex

bash /tmp/NeMo/install_dep.sh --library te --mode install
bash /tmp/NeMo/install_dep.sh --library mcore --mode install
bash /tmp/NeMo/install_dep.sh --library extra --mode install
pip install --no-cache-dir ".[all,cu12]"
rm -rf $NEMO_DIR || true
WORKDIR /workspace
COPY pyproject.toml uv.lock /workspace/
COPY nemo/__init__.py nemo/package_info.py /workspace/nemo/
RUN <<"EOF" bash -ex
uv sync --link-mode copy --locked --extra all --extra cu13 --group test
EOF


WORKDIR /workspace
ENV PYTHONPATH="${PYTHONPATH}:/workspace/Megatron-LM"
ENV NEMO_HOME="/home/TestData/nemo_home"

ARG IMAGE_LABEL
LABEL "nemo.library"=${IMAGE_LABEL}

ARG PR_NUMBER
LABEL "nemo.pr_number"=${PR_NUMBER}

ARG NVIDIA_BUILD_ID
LABEL "NVIDIA_BUILD_ID"=${NVIDIA_BUILD_ID}
186 changes: 0 additions & 186 deletions docker/Dockerfile.speech

This file was deleted.

Loading
Loading