Skip to content
Open
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
71 changes: 71 additions & 0 deletions docker/Dockerfile.cuda133.aarch64.deps
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
ARG TOOLKIT_BASE_IMAGE=ubuntu:24.04
FROM ${TOOLKIT_BASE_IMAGE} AS cuda

ENV DEBIAN_FRONTEND=noninteractive

# Change cuda version to pick the latest update
RUN CUDA_SUBVERSION=13.3.0-1 && \
NVJPEG2K_VERSION=0.9.0.43-1 && \
CUFILE_VERSION=1.18.0.66-1 && \
CUDA_VERSION_MAJOR=13 && \
CUDA_VERSION_MINOR=3 && \
apt-get update && \
apt-get install wget software-properties-common -y && \
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/sbsa/3bf863cc.pub && \
add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/sbsa/ /" && \
apt-get update && \
apt install -y \
cuda-minimal-build-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR}=${CUDA_SUBVERSION} \
cuda-nvdisasm-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR} \
cuda-nvml-dev-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR} \
cuda-nvtx-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR} \
libcurand-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR} \
libcurand-dev-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR} \
libnpp-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR} \
libnpp-dev-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR} \
libnvjpeg-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR} \
libnvjpeg-dev-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR} \
libcufft-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR} \
libcufft-dev-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR} \
libcusolver-dev-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR} \
libcublas-dev-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR} \
cuda-compat-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR} \
libcufile-dev-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR}=${CUFILE_VERSION} && \
apt-get install libnvjpeg2k0-dev-cuda-${CUDA_VERSION_MAJOR}=${NVJPEG2K_VERSION} \
libnvjpeg2k0-cuda-${CUDA_VERSION_MAJOR}=${NVJPEG2K_VERSION} \
libnvjpeg2k0-static-cuda-${CUDA_VERSION_MAJOR}=${NVJPEG2K_VERSION} -y && \
cp /usr/include/libnvjpeg2k/${CUDA_VERSION_MAJOR}/* /usr/local/cuda/include/ && \
cp /usr/lib/sbsa-linux-gnu/libnvjpeg2k/${CUDA_VERSION_MAJOR}/* /usr/local/cuda/lib64/ && \
mkdir /tmp/nvcomp && cd /tmp/nvcomp && \
wget https://developer.download.nvidia.com/compute/nvcomp/redist/nvcomp/linux-sbsa/nvcomp-linux-sbsa-5.2.0.10_cuda13-archive.tar.xz && \
tar -xf * && \
cp -r nvcomp-linux-sbsa-5.2.0.10_cuda13-archive/include/* /usr/local/cuda/include/ && \
cp -r nvcomp-linux-sbsa-5.2.0.10_cuda13-archive/lib/* /usr/local/cuda/lib64/ && \
cd / && rm -rf /tmp/nvcomp && \
mv /usr/local/cuda/bin/fatbinary /usr/local/cuda/bin/fatbinary_org && \
# fatbinary removed one of the options while clang still uses it
# this creates a wrapper for a fatbinary which translates this argument when used
echo "#!/bin/bash\\n\
real_fatbinary=\$(which fatbinary_org || which fatbinary)\\n\
# If we can't find the real fatbinary, exit with error\\n\
if [ -z \"\$real_fatbinary\" ]; then\\n\
echo \"Error: Could not find real fatbinary executable\" >&2\\n\
exit 1\\n\
fi\\n\
args=()\\n\
while [ \$# -gt 0 ]; do\\n\
case \"\$1\" in\\n\
--image=*)\\n\
specs=\$1\\n\
new_spec=\$(echo \"\$specs\" | sed 's/image=/image3=/g' | sed 's/profile=sm_/kind=elf,sm=/g')\\n\
args+=(\"\${new_spec[@]}\")\\n\
;;\\n\
*)\\n\
args+=(\"\$1\")\\n\
;;\\n\
esac\\n\
shift\\n\
done\\n\
exec \"\$real_fatbinary\" \"\${args[@]}\"" > /usr/local/cuda/bin/fatbinary && \
chmod a+x /usr/local/cuda/bin/fatbinary && \
rm -rf /var/lib/apt/lists/*
71 changes: 71 additions & 0 deletions docker/Dockerfile.cuda133.x86_64.deps
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
ARG TOOLKIT_BASE_IMAGE=ubuntu:24.04
FROM ${TOOLKIT_BASE_IMAGE} AS cuda

ENV DEBIAN_FRONTEND=noninteractive

# Change cuda version to pick the latest update
RUN CUDA_SUBVERSION=13.3.0-1 && \
NVJPEG2K_VERSION=0.9.0.43-1 && \
CUFILE_VERSION=1.18.0.66-1 && \
CUDA_VERSION_MAJOR=13 && \
CUDA_VERSION_MINOR=3 && \
apt-get update && \
apt-get install wget software-properties-common -y && \
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/3bf863cc.pub && \
add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ /" && \
apt-get update && \
apt install -y \
cuda-minimal-build-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR}=${CUDA_SUBVERSION} \
cuda-nvdisasm-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR} \
cuda-nvml-dev-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR} \
cuda-nvtx-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR} \
libcurand-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR} \
libcurand-dev-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR} \
libnpp-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR} \
libnpp-dev-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR} \
libnvjpeg-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR} \
libnvjpeg-dev-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR} \
libcufft-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR} \
libcufft-dev-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR} \
libcusolver-dev-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR} \
libcublas-dev-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR} \
cuda-compat-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR} \
libcufile-dev-${CUDA_VERSION_MAJOR}-${CUDA_VERSION_MINOR}=${CUFILE_VERSION} && \
apt-get install libnvjpeg2k0-dev-cuda-${CUDA_VERSION_MAJOR}=${NVJPEG2K_VERSION} \
libnvjpeg2k0-cuda-${CUDA_VERSION_MAJOR}=${NVJPEG2K_VERSION} \
libnvjpeg2k0-static-cuda-${CUDA_VERSION_MAJOR}=${NVJPEG2K_VERSION} -y && \
cp /usr/include/libnvjpeg2k/${CUDA_VERSION_MAJOR}/* /usr/local/cuda/include/ && \
cp /usr/lib/x86_64-linux-gnu/libnvjpeg2k/${CUDA_VERSION_MAJOR}/* /usr/local/cuda/lib64/ && \
mkdir /tmp/nvcomp && cd /tmp/nvcomp && \
wget https://developer.download.nvidia.com/compute/nvcomp/redist/nvcomp/linux-x86_64/nvcomp-linux-x86_64-5.2.0.10_cuda13-archive.tar.xz && \
tar -xf * && \
cp -r nvcomp-linux-x86_64-5.2.0.10_cuda13-archive/include/* /usr/local/cuda/include/ && \
cp -r nvcomp-linux-x86_64-5.2.0.10_cuda13-archive/lib/* /usr/local/cuda/lib64/ && \
cd / && rm -rf /tmp/nvcomp && \
mv /usr/local/cuda/bin/fatbinary /usr/local/cuda/bin/fatbinary_org && \
# fatbinary removed one of the options while clang still uses it
# this creates a wrapper for a fatbinary which translates this argument when used
echo "#!/bin/bash \\n\
real_fatbinary=\$(which fatbinary_org || which fatbinary) \\n\
# If we can't find the real fatbinary, exit with error \\n\
if [ -z \"\$real_fatbinary\" ]; then \\n\
echo \"Error: Could not find real fatbinary executable\" >&2 \\n\
exit 1 \\n\
fi \\n\
args=() \\n\
while [ \$# -gt 0 ]; do \\n\
case \"\$1\" in \\n\
--image=*) \\n\
specs=\$1 \\n\
new_spec=\$(echo \"\$specs\" | sed 's/image=/image3=/g' | sed 's/profile=sm_/kind=elf,sm=/g') \\n\
args+=(\"\${new_spec[@]}\") \\n\
;; \\n\
*) \\n\
args+=(\"\$1\") \\n\
;; \\n\
esac \\n\
shift \\n\
done \\n\
exec \"\$real_fatbinary\" \"\${args[@]}\"" > /usr/local/cuda/bin/fatbinary && \
chmod a+x /usr/local/cuda/bin/fatbinary && \
rm -rf /var/lib/apt/lists/*
8 changes: 4 additions & 4 deletions docker/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ a build environment

To change build configuration please export appropriate env variables (for exact meaning please check the README):
PYVER=[default 3.10, required only by Run image]
CUDA_VERSION=[default 13.0, accepts also 12.0, 12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.7, 12.8, 12.9, 13.0, 13.1 and 13.2]
CUDA_VERSION=[default 13.0, accepts also 12.0, 12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.7, 12.8, 12.9, 13.0, 13.1, 13.2 and 13.3]
NVIDIA_BUILD_ID=[default 12345]
CREATE_WHL=[default YES]
CREATE_RUNNER=[default NO]
Expand Down Expand Up @@ -40,16 +40,16 @@ shift $((OPTIND - 1))
export ARCH=${ARCH:-x86_64}
export PYVER=${PYVER:-3.10}
export PYV=${PYVER/./}
export CUDA_VERSION=${CUDA_VERSION:-13.2}
export CUDA_VERSION=${CUDA_VERSION:-13.3}
export CUDA_VER=${CUDA_VERSION//./}

if [ "${CUDA_VERSION%%\.*}" ]
then
if [ $CUDA_VER != "120" ] && [ $CUDA_VER != "121" ] && [ $CUDA_VER != "122" ] && [ $CUDA_VER != "123" ] && [ $CUDA_VER != "124" ] && \
[ $CUDA_VER != "125" ] && [ $CUDA_VER != "126" ] && [ $CUDA_VER != "128" ] && [ $CUDA_VER != "129" ] && [ $CUDA_VER != "130" ] && \
[ $CUDA_VER != "131" ] && [ $CUDA_VER != "132" ]
[ $CUDA_VER != "131" ] && [ $CUDA_VER != "132" ] && [ $CUDA_VER != "133" ]
then
echo "Wrong CUDA_VERSION=$CUDA_VERSION provided. Only 12.0, 12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.8, 12.9, 13.0, 13.1 and 13.2 are supported"
echo "Wrong CUDA_VERSION=$CUDA_VERSION provided. Only 12.0, 12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.8, 12.9, 13.0, 13.1, 13.2 and 13.3 are supported"
exit 1
fi
else
Expand Down
6 changes: 3 additions & 3 deletions docs/compilation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,10 @@ Building Python Wheel
Change directory (``cd``) into ``docker`` directory and run ``./build.sh``. If needed,
set the following environment variables:

* | CUDA_VERSION - CUDA toolkit version (12.9 and 13.2 are officially supported,
12.0, 12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.8, 13.0 and 13.1 are deprecated
* | CUDA_VERSION - CUDA toolkit version (12.9 and 13.3 are officially supported,
12.0, 12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.8, 13.0, 13.1 and 13.2 are deprecated
and may not work).
| The default is ``13.2``. Thanks to CUDA extended compatibility mode, CUDA 12.x wheels are named as
| The default is ``13.3``. Thanks to CUDA extended compatibility mode, CUDA 12.x wheels are named as
CUDA 12.0 because it can work with the CUDA 12.0 R525.x driver
family. Same applies to CUDA 13.x. Please update to the latest recommended driver version in that family.
| If the value of the CUDA_VERSION is prefixed with `.` then any value ``.XX.Y`` can be passed,
Expand Down