| ARG RELEASE |
| ARG LAUNCHPAD_BUILD_ARCH |
| LABEL org.opencontainers.image.ref.name=ubuntu |
| LABEL org.opencontainers.image.version=24.04 |
| ADD file:b4619a63cd7829e1338ddaa4995ca17003002dd54b0dfd675a6f54a2b69151a6 in / |
| CMD ["/bin/bash"] |
| ENV NVARCH=x86_64 |
| ENV NVIDIA_REQUIRE_CUDA=cuda>=13.0 brand=unknown,driver>=535,driver<536 brand=grid,driver>=535,driver<536 brand=tesla,driver>=535,driver<536 brand=nvidia,driver>=535,driver<536 brand=quadro,driver>=535,driver<536 brand=quadrortx,driver>=535,driver<536 brand=nvidiartx,driver>=535,driver<536 brand=vapps,driver>=535,driver<536 brand=vpc,driver>=535,driver<536 brand=vcs,driver>=535,driver<536 brand=vws,driver>=535,driver<536 brand=cloudgaming,driver>=535,driver<536 brand=unknown,driver>=550,driver<551 brand=grid,driver>=550,driver<551 brand=tesla,driver>=550,driver<551 brand=nvidia,driver>=550,driver<551 brand=quadro,driver>=550,driver<551 brand=quadrortx,driver>=550,driver<551 brand=nvidiartx,driver>=550,driver<551 brand=vapps,driver>=550,driver<551 brand=vpc,driver>=550,driver<551 brand=vcs,driver>=550,driver<551 brand=vws,driver>=550,driver<551 brand=cloudgaming,driver>=550,driver<551 brand=unknown,driver>=565,driver<566 brand=grid,driver>=565,driver<566 brand=tesla,driver>=565,driver<566 brand=nvidia,driver>=565,driver<566 brand=quadro,driver>=565,driver<566 brand=quadrortx,driver>=565,driver<566 brand=nvidiartx,driver>=565,driver<566 brand=vapps,driver>=565,driver<566 brand=vpc,driver>=565,driver<566 brand=vcs,driver>=565,driver<566 brand=vws,driver>=565,driver<566 brand=cloudgaming,driver>=565,driver<566 brand=unknown,driver>=570,driver<571 brand=grid,driver>=570,driver<571 brand=tesla,driver>=570,driver<571 brand=nvidia,driver>=570,driver<571 brand=quadro,driver>=570,driver<571 brand=quadrortx,driver>=570,driver<571 brand=nvidiartx,driver>=570,driver<571 brand=vapps,driver>=570,driver<571 brand=vpc,driver>=570,driver<571 brand=vcs,driver>=570,driver<571 brand=vws,driver>=570,driver<571 brand=cloudgaming,driver>=570,driver<571 brand=unknown,driver>=575,driver<576 brand=grid,driver>=575,driver<576 brand=tesla,driver>=575,driver<576 brand=nvidia,driver>=575,driver<576 brand=quadro,driver>=575,driver<576 brand=quadrortx,driver>=575,driver<576 brand=nvidiartx,driver>=575,driver<576 brand=vapps,driver>=575,driver<576 brand=vpc,driver>=575,driver<576 brand=vcs,driver>=575,driver<576 brand=vws,driver>=575,driver<576 brand=cloudgaming,driver>=575,driver<576 |
| ENV NV_CUDA_CUDART_VERSION=13.0.48-1 |
| ARG TARGETARCH |
| LABEL maintainer=NVIDIA CORPORATION <cudatools@nvidia.com> |
| RUN |1 TARGETARCH=amd64 /bin/sh -c apt-get update && apt-get install -y --no-install-recommends gnupg2 curl ca-certificates && curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/${NVARCH}/3bf863cc.pub | apt-key add - && echo "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/${NVARCH} /" > /etc/apt/sources.list.d/cuda.list && apt-get purge --autoremove -y curl && rm -rf /var/lib/apt/lists/* # buildkit |
| ENV CUDA_VERSION=13.0.0 |
| RUN |1 TARGETARCH=amd64 /bin/sh -c apt-get update && apt-get install -y --no-install-recommends cuda-cudart-13-0=${NV_CUDA_CUDART_VERSION} cuda-compat-13-0 && rm -rf /var/lib/apt/lists/* # buildkit |
| RUN |1 TARGETARCH=amd64 /bin/sh -c echo "/usr/local/cuda/lib64" >> /etc/ld.so.conf.d/nvidia.conf # buildkit |
| ENV PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
| ENV LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64:/usr/local/cuda/lib64 |
| COPY NGC-DL-CONTAINER-LICENSE / # buildkit |
| ENV NVIDIA_VISIBLE_DEVICES=all |
| ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility |
| ENV NV_CUDA_LIB_VERSION=13.0.0-1 |
| ENV NV_NVTX_VERSION=13.0.39-1 |
| ENV NV_LIBNPP_VERSION=13.0.0.50-1 |
| ENV NV_LIBNPP_PACKAGE=libnpp-13-0=13.0.0.50-1 |
| ENV NV_LIBCUSPARSE_VERSION=12.6.2.49-1 |
| ENV NV_LIBCUBLAS_PACKAGE_NAME=libcublas-13-0 |
| ENV NV_LIBCUBLAS_VERSION=13.0.0.19-1 |
| ENV NV_LIBCUBLAS_PACKAGE=libcublas-13-0=13.0.0.19-1 |
| ENV NV_LIBNCCL_PACKAGE_NAME=libnccl2 |
| ENV NV_LIBNCCL_PACKAGE_VERSION=2.27.7-1 |
| ENV NCCL_VERSION=2.27.7-1 |
| ENV NV_LIBNCCL_PACKAGE=libnccl2=2.27.7-1+cuda13.0 |
| ARG TARGETARCH |
| LABEL maintainer=NVIDIA CORPORATION <cudatools@nvidia.com> |
| RUN |1 TARGETARCH=amd64 /bin/sh -c apt-get update && apt-get install -y --no-install-recommends cuda-libraries-13-0=${NV_CUDA_LIB_VERSION} ${NV_LIBNPP_PACKAGE} cuda-nvtx-13-0=${NV_NVTX_VERSION} libcusparse-13-0=${NV_LIBCUSPARSE_VERSION} ${NV_LIBCUBLAS_PACKAGE} ${NV_LIBNCCL_PACKAGE} && rm -rf /var/lib/apt/lists/* # buildkit |
| RUN |1 TARGETARCH=amd64 /bin/sh -c apt-mark hold ${NV_LIBCUBLAS_PACKAGE_NAME} ${NV_LIBNCCL_PACKAGE_NAME} # buildkit |
| COPY entrypoint.d/ /opt/nvidia/entrypoint.d/ # buildkit |
| COPY nvidia_entrypoint.sh /opt/nvidia/ # buildkit |
| ENV NVIDIA_PRODUCT_NAME=CUDA |
| ENTRYPOINT ["/opt/nvidia/nvidia_entrypoint.sh"] |
| ENV NV_CUDA_LIB_VERSION=13.0.0-1 |
| ENV NV_CUDA_CUDART_DEV_VERSION=13.0.48-1 |
| ENV NV_NVML_DEV_VERSION=13.0.39-1 |
| ENV NV_LIBCUSPARSE_DEV_VERSION=12.6.2.49-1 |
| ENV NV_LIBNPP_DEV_VERSION=13.0.0.50-1 |
| ENV NV_LIBNPP_DEV_PACKAGE=libnpp-dev-13-0=13.0.0.50-1 |
| ENV NV_LIBCUBLAS_DEV_VERSION=13.0.0.19-1 |
| ENV NV_LIBCUBLAS_DEV_PACKAGE_NAME=libcublas-dev-13-0 |
| ENV NV_LIBCUBLAS_DEV_PACKAGE=libcublas-dev-13-0=13.0.0.19-1 |
| ENV NV_CUDA_NSIGHT_COMPUTE_VERSION=13.0.0-1 |
| ENV NV_CUDA_NSIGHT_COMPUTE_DEV_PACKAGE=cuda-nsight-compute-13-0=13.0.0-1 |
| ENV NV_LIBNCCL_DEV_PACKAGE_NAME=libnccl-dev |
| ENV NV_LIBNCCL_DEV_PACKAGE_VERSION=2.27.7-1 |
| ENV NCCL_VERSION=2.27.7-1 |
| ENV NV_LIBNCCL_DEV_PACKAGE=libnccl-dev=2.27.7-1+cuda13.0 |
| ARG TARGETARCH |
| LABEL maintainer=NVIDIA CORPORATION <cudatools@nvidia.com> |
| RUN |1 TARGETARCH=amd64 /bin/sh -c apt-get update && apt-get install -y --no-install-recommends cuda-cudart-dev-13-0=${NV_CUDA_CUDART_DEV_VERSION} cuda-command-line-tools-13-0=${NV_CUDA_LIB_VERSION} cuda-minimal-build-13-0=${NV_CUDA_LIB_VERSION} cuda-libraries-dev-13-0=${NV_CUDA_LIB_VERSION} cuda-nvml-dev-13-0=${NV_NVML_DEV_VERSION} ${NV_LIBNPP_DEV_PACKAGE} libcusparse-dev-13-0=${NV_LIBCUSPARSE_DEV_VERSION} ${NV_LIBCUBLAS_DEV_PACKAGE} ${NV_LIBNCCL_DEV_PACKAGE} ${NV_CUDA_NSIGHT_COMPUTE_DEV_PACKAGE} && rm -rf /var/lib/apt/lists/* # buildkit |
| RUN |1 TARGETARCH=amd64 /bin/sh -c apt-mark hold ${NV_LIBCUBLAS_DEV_PACKAGE_NAME} ${NV_LIBNCCL_DEV_PACKAGE_NAME} # buildkit |
| ENV LIBRARY_PATH=/usr/local/cuda/lib64/stubs |
| ARG APT_PROXY=http://pb-lxcaptcache:3142 |
| RUN |1 APT_PROXY=http://pb-lxcaptcache:3142 /bin/sh -c if [ -n "$APT_PROXY" ]; then echo "Acquire::http::Proxy \"$APT_PROXY\";" > /etc/apt/apt.conf.d/01proxy; fi # buildkit |
| LABEL maintainer=nemotron-speech |
| LABEL description=PyTorch + torchaudio from source (Blackwell CUDA 13.0/13.1) - base layer |
| ENV DEBIAN_FRONTEND=noninteractive |
| RUN |1 APT_PROXY=http://pb-lxcaptcache:3142 /bin/sh -c apt-get update && apt-get install -y --no-install-recommends python3.12 python3.12-dev python3.12-venv python3-pip git curl wget cmake ninja-build ccache libopenblas-dev libomp-dev libffi-dev libssl-dev libnuma-dev libcurl4-openssl-dev ffmpeg sox libsndfile1 && rm -rf /var/lib/apt/lists/* && ln -sf /usr/bin/python3.12 /usr/bin/python3 && ln -sf /usr/bin/python3 /usr/bin/python # buildkit |
| COPY /uv /uvx /bin/ # buildkit |
| ENV UV_SYSTEM_PYTHON=1 |
| ENV UV_BREAK_SYSTEM_PACKAGES=1 |
| COPY /usr/lib/*/libcudnn* /tmp/cudnn_libs/ # buildkit |
| COPY /usr/include/cudnn* /usr/include/ # buildkit |
| COPY /usr/lib/*/libnccl* /tmp/nccl_libs/ # buildkit |
| COPY /usr/include/nccl.h /usr/include/ # buildkit |
| COPY /usr/include/nccl_device.h /usr/include/ # buildkit |
| COPY /usr/include/nccl_device/ /usr/include/nccl_device/ # buildkit |
| RUN |1 APT_PROXY=http://pb-lxcaptcache:3142 /bin/sh -c ARCH=$(uname -m) && if [ "$ARCH" = "aarch64" ]; then LIB_DIR="/usr/lib/aarch64-linux-gnu"; else LIB_DIR="/usr/lib/x86_64-linux-gnu"; fi && echo "=== Detected architecture: $ARCH, using $LIB_DIR ===" && mkdir -p "$LIB_DIR" && mv /tmp/cudnn_libs/* "$LIB_DIR/" && mv /tmp/nccl_libs/* "$LIB_DIR/" && rmdir /tmp/cudnn_libs /tmp/nccl_libs && echo "=== cuDNN libraries ===" && ls -la "$LIB_DIR"/libcudnn* | head -3 && echo "=== NCCL libraries ===" && ls -la "$LIB_DIR"/libnccl* | head -3 && echo "=== NCCL device headers ===" && ls -la /usr/include/nccl_device/ | head -3 && echo "=== Checking ncclDevCommDestroy symbol ===" && nm -D "$LIB_DIR"/libnccl.so* 2>/dev/null | grep ncclDevCommDestroy | head -1 || echo "Note: nm check may fail on stripped library" && ldconfig # buildkit |
| RUN |1 APT_PROXY=http://pb-lxcaptcache:3142 /bin/sh -c uv pip install --no-cache numpy pyyaml typing_extensions sympy filelock networkx jinja2 fsspec packaging setuptools wheel cffi future requests dataclasses pillow expecttest hypothesis pytest # buildkit |
| ARG PYTORCH_COMMIT=32cb1dac896fe212d77073a4a53fee840c13442f |
| WORKDIR /build |
| RUN |2 APT_PROXY=http://pb-lxcaptcache:3142 PYTORCH_COMMIT=32cb1dac896fe212d77073a4a53fee840c13442f /bin/sh -c git clone --recursive https://github.com/pytorch/pytorch.git && cd pytorch && git checkout ${PYTORCH_COMMIT} # buildkit |
| WORKDIR /build/pytorch |
| RUN |2 APT_PROXY=http://pb-lxcaptcache:3142 PYTORCH_COMMIT=32cb1dac896fe212d77073a4a53fee840c13442f /bin/sh -c git submodule sync && git submodule update --init --recursive # buildkit |
| ENV USE_CUDA=1 |
| ENV USE_CUDNN=1 |
| ENV USE_MKLDNN=1 |
| ENV USE_DISTRIBUTED=1 |
| ENV USE_NCCL=1 |
| ENV USE_TENSORPIPE=0 |
| ENV USE_SYSTEM_NCCL=1 |
| ENV NCCL_ROOT=/usr |
| ENV NCCL_INCLUDE_DIR=/usr/include |
| ENV BUILD_TEST=0 |
| ENV MAX_JOBS=8 |
| ENV CMAKE_BUILD_TYPE=Release |
| ENV CUDNN_INCLUDE_DIR=/usr/include |
| ENV USE_PRIORITIZED_TEXT_FOR_LD=1 |
| RUN |2 APT_PROXY=http://pb-lxcaptcache:3142 PYTORCH_COMMIT=32cb1dac896fe212d77073a4a53fee840c13442f /bin/sh -c ln -sf /usr/local/cuda/include/cccl/cub /usr/local/cuda/include/cub && ln -sf /usr/local/cuda/include/cccl/thrust /usr/local/cuda/include/thrust && echo "=== Verifying CUB access ===" && ls /usr/local/cuda/include/cub/cub.cuh && ls /usr/local/cuda/include/cccl/cub/cub.cuh # buildkit |
| ENV CUB_INCLUDE_DIR=/usr/local/cuda/include/cccl |
| RUN |2 APT_PROXY=http://pb-lxcaptcache:3142 PYTORCH_COMMIT=32cb1dac896fe212d77073a4a53fee840c13442f /bin/sh -c ARCH=$(uname -m) && if [ "$ARCH" = "aarch64" ]; then export TORCH_CUDA_ARCH_LIST="12.1"; export NCCL_LIB_DIR="/usr/lib/aarch64-linux-gnu"; export CUDNN_LIB_DIR="/usr/lib/aarch64-linux-gnu"; else export TORCH_CUDA_ARCH_LIST="12.0"; export NCCL_LIB_DIR="/usr/lib/x86_64-linux-gnu"; export CUDNN_LIB_DIR="/usr/lib/x86_64-linux-gnu"; fi && echo "=== Building PyTorch for $ARCH with CUDA arch $TORCH_CUDA_ARCH_LIST ===" && python3 setup.py bdist_wheel > /tmp/pytorch_build.log 2>&1 || { tail -50 /tmp/pytorch_build.log; exit 1; } && uv pip install --no-cache dist/*.whl && mkdir -p /tmp/pytorch_wheel && cp dist/*.whl /tmp/pytorch_wheel/ # buildkit |
| ARG TORCHAUDIO_COMMIT=0764cfdedb769e63f3ab8b90bc06541a6a2c0b73 |
| WORKDIR /build |
| RUN |3 APT_PROXY=http://pb-lxcaptcache:3142 PYTORCH_COMMIT=32cb1dac896fe212d77073a4a53fee840c13442f TORCHAUDIO_COMMIT=0764cfdedb769e63f3ab8b90bc06541a6a2c0b73 /bin/sh -c git clone --recursive https://github.com/pytorch/audio.git && cd audio && git checkout ${TORCHAUDIO_COMMIT} # buildkit |
| WORKDIR /build/audio |
| ENV BUILD_SOX=0 |
| ENV USE_CUDA=1 |
| RUN |3 APT_PROXY=http://pb-lxcaptcache:3142 PYTORCH_COMMIT=32cb1dac896fe212d77073a4a53fee840c13442f TORCHAUDIO_COMMIT=0764cfdedb769e63f3ab8b90bc06541a6a2c0b73 /bin/sh -c ARCH=$(uname -m) && if [ "$ARCH" = "aarch64" ]; then export TORCH_CUDA_ARCH_LIST="12.1"; else export TORCH_CUDA_ARCH_LIST="12.0"; fi && echo "=== Building torchaudio for $ARCH with CUDA arch $TORCH_CUDA_ARCH_LIST ===" && python3 setup.py bdist_wheel > /tmp/torchaudio_build.log 2>&1 || { tail -50 /tmp/torchaudio_build.log; exit 1; } && uv pip install --no-cache dist/*.whl # buildkit |
| WORKDIR /workspace |
| RUN |3 APT_PROXY=http://pb-lxcaptcache:3142 PYTORCH_COMMIT=32cb1dac896fe212d77073a4a53fee840c13442f TORCHAUDIO_COMMIT=0764cfdedb769e63f3ab8b90bc06541a6a2c0b73 /bin/sh -c rm -rf /build/pytorch /build/audio # buildkit |