Skip to content

Commit 243d71e

Browse files
committed
Fix libomp compile and reduce container size
1 parent 74de05c commit 243d71e

File tree

2 files changed

+45
-50
lines changed

2 files changed

+45
-50
lines changed

Dockerfile.GPU-buster-cross-sbsa

Lines changed: 27 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,31 @@
11
FROM debian:buster
22
ARG VER="12-6"
33

4-
RUN dpkg --add-architecture arm64
5-
RUN sed -i s/deb.debian.org/archive.debian.org/g /etc/apt/sources.list; \
4+
ENV OMPVERSION=20.1.7
5+
ENV PATH=/root/.cargo/bin:$PATH
6+
ENV LIBOMP_AARCH64="/opt/libomp"
7+
8+
WORKDIR /opt
9+
RUN dpkg --add-architecture arm64; \
10+
sed -i s/deb.debian.org/archive.debian.org/g /etc/apt/sources.list; \
611
sed -i s/security.debian.org/archive.debian.org/g /etc/apt/sources.list; \
712
apt-get update; \
813
apt-get -y install -o APT::Immediate-Configure=false \
9-
git curl wget vim ninja-build crossbuild-essential-arm64 zlib1g-dev:arm64 libbz2-dev:arm64 software-properties-common
10-
11-
RUN wget https://github.com/Kitware/CMake/releases/download/v3.31.0/cmake-3.31.0-linux-x86_64.sh; \
14+
git curl wget vim ninja-build crossbuild-essential-arm64 zlib1g-dev:arm64 libbz2-dev:arm64 software-properties-common; \
15+
wget https://github.com/Kitware/CMake/releases/download/v3.31.0/cmake-3.31.0-linux-x86_64.sh; \
1216
chmod +x cmake-3.31.0-linux-x86_64.sh; \
13-
./cmake-3.31.0-linux-x86_64.sh --skip-license --prefix=/usr/local;
14-
15-
RUN wget -O cuda-x64.deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.1-1_all.deb
16-
RUN wget -O cuda-sbsa.deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/cross-linux-sbsa/cuda-keyring_1.1-1_all.deb
17-
RUN dpkg -i cuda-x64.deb && dpkg -i cuda-sbsa.deb
18-
RUN apt-get update
19-
RUN apt-get install -y cuda-nvcc-${VER} cuda-nvcc-cross-sbsa-${VER} cuda-cudart-cross-sbsa-${VER} libcublas-cross-sbsa-${VER}
20-
21-
RUN curl https://sh.rustup.rs -sSf | \
22-
sh -s -- --default-toolchain stable -y
23-
ENV PATH=/root/.cargo/bin:$PATH
24-
25-
RUN curl https://apt.llvm.org/llvm.sh -sSf | \
17+
./cmake-3.31.0-linux-x86_64.sh --skip-license --prefix=/usr/local; \
18+
rm -f cmake-3.31.0-linux-x86_64.sh; \
19+
wget -O cuda-x64.deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.1-1_all.deb; \
20+
wget -O cuda-sbsa.deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/cross-linux-sbsa/cuda-keyring_1.1-1_all.deb; \
21+
dpkg -i cuda-x64.deb && dpkg -i cuda-sbsa.deb; \
22+
rm -f cuda-x64.deb cuda-sbsa.deb; \
23+
apt-get update; \
24+
apt-get install -y cuda-nvcc-${VER} cuda-nvcc-cross-sbsa-${VER} cuda-cudart-cross-sbsa-${VER} libcublas-cross-sbsa-${VER}; \
25+
rm -rf /var/lib/apt/lists/*; \
26+
curl https://sh.rustup.rs -sSf | \
27+
sh -s -- --default-toolchain stable -y; \
28+
curl https://apt.llvm.org/llvm.sh -sSf | \
2629
bash -s -- 20; \
2730
echo "set(CMAKE_SYSTEM_NAME Linux)" > /opt/toolchain.cmake; \
2831
echo "set(CMAKE_SYSTEM_PROCESSOR aarch64)" >> /opt/toolchain.cmake; \
@@ -35,11 +38,8 @@ RUN curl https://apt.llvm.org/llvm.sh -sSf | \
3538
echo '#!/bin/sh\n/usr/bin/clang-20 --target=aarch64-linux-gnu "${@}"\n' > /opt/clang-aarch64; \
3639
echo '#!/bin/sh\n/usr/bin/clang++-20 --target=aarch64-linux-gnu "${@}"\n' > /opt/clang++-aarch64; \
3740
chmod +x /opt/clang-aarch64 /opt/clang++-aarch64; \
38-
cat /opt/clang-aarch64 /opt/clang++-aarch64;
39-
40-
ENV OMPVERSION=20.1.7
41-
ENV LIBOMP_AARCH64="/opt/build_libomp/openmp-${OMPVERSION}.src/build-arm64/runtime/src"
42-
RUN mkdir -p build_libomp && cd build_libomp; \
41+
cat /opt/clang-aarch64 /opt/clang++-aarch64; \
42+
mkdir -p /opt/build_libomp && cd /opt/build_libomp; \
4343
wget -qO- https://github.com/llvm/llvm-project/releases/download/llvmorg-${OMPVERSION}/cmake-${OMPVERSION}.src.tar.xz | tar xJvf -; \
4444
wget -qO- https://github.com/llvm/llvm-project/releases/download/llvmorg-${OMPVERSION}/openmp-${OMPVERSION}.src.tar.xz | tar xJvf -; \
4545
mv cmake-${OMPVERSION}.src cmake; \
@@ -52,4 +52,7 @@ RUN mkdir -p build_libomp && cd build_libomp; \
5252
-DLIBOMP_ARCH=aarch64 \
5353
-DCMAKE_TOOLCHAIN_FILE=/opt/toolchain.cmake \
5454
..; \
55-
cmake --build . -j$(nproc --all) -v;
55+
cmake --build . -j$(nproc --all) -v; \
56+
mkdir -p ${LIBOMP_AARCH64}; \
57+
cp -r /opt/build_libomp/openmp-${OMPVERSION}.src/build-arm64/runtime/src/* ${LIBOMP_AARCH64}; \
58+
rm -rf /opt/build_libomp;

Dockerfile.GPU-manylinux2014

Lines changed: 18 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,49 +2,41 @@ FROM quay.io/pypa/manylinux2014_x86_64
22
ARG VER="12-6"
33
ARG ARCH="x86_64"
44

5-
# CUDA
6-
RUN yum install -y yum-utils
7-
RUN yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/cuda-rhel8.repo
8-
RUN yum -y install cuda-nvcc-${VER}.${ARCH} cuda-cudart-devel-${VER}.${ARCH} libcublas-devel-${VER}.${ARCH}
9-
RUN echo "/usr/local/cuda/lib64" >> /etc/ld.so.conf.d/999_nvidia_cuda.conf
10-
ENV PATH="/usr/local/cuda/bin:${PATH}"
5+
ENV PATH="/root/.cargo/bin:/usr/local/cuda/bin:${PATH}"
116
ENV LD_LIBRARY_PATH="/usr/local/cuda/lib64:${LD_LIBRARY_PATH}"
127
ENV CUDA_HOME=/usr/local/cuda
138
ENV CUDA_ROOT=/usr/local/cuda
149
ENV CUDA_PATH=/usr/local/cuda
1510
ENV CUDADIR=/usr/local/cuda
16-
17-
# Build system
18-
RUN yum install -y git curl wget vim zlib-devel bzip2-devel ninja-build centos-release-scl
19-
RUN mv /etc/yum.repos.d/CentOS-SCLo-scl.repo /etc/yum.repos.d/CentOS-SCLo-scl.repo.disabled
20-
RUN yum install -y devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-libatomic-devel
2111
ENV CC=/opt/rh/devtoolset-11/root/bin/gcc
2212
ENV CXX=/opt/rh/devtoolset-11/root/bin/g++
2313
ENV CUDAHOSTCXX=/opt/rh/devtoolset-11/root/bin/g++
2414
ENV CUDACXX=/usr/local/cuda/bin/nvcc
2515
ENV LIBGCC=/opt/rh/devtoolset-11/root/usr/lib/gcc/x86_64-redhat-linux/11
2616

27-
# cmake
28-
RUN wget https://github.com/Kitware/CMake/releases/download/v3.31.0/cmake-3.31.0-linux-x86_64.sh; \
17+
RUN yum install -y yum-utils; \
18+
yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/cuda-rhel8.repo; \
19+
yum -y install cuda-nvcc-${VER}.${ARCH} cuda-cudart-devel-${VER}.${ARCH} libcublas-devel-${VER}.${ARCH}; \
20+
echo "/usr/local/cuda/lib64" >> /etc/ld.so.conf.d/999_nvidia_cuda.conf; \
21+
yum install -y git curl wget vim zlib-devel bzip2-devel ninja-build centos-release-scl; \
22+
mv /etc/yum.repos.d/CentOS-SCLo-scl.repo /etc/yum.repos.d/CentOS-SCLo-scl.repo.disabled; \
23+
yum install -y devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-libatomic-devel; \
24+
wget https://github.com/Kitware/CMake/releases/download/v3.31.0/cmake-3.31.0-linux-x86_64.sh; \
2925
chmod +x cmake-3.31.0-linux-x86_64.sh; \
30-
./cmake-3.31.0-linux-x86_64.sh --skip-license --prefix=/usr/local;
31-
32-
RUN mkdir /deps; \
26+
./cmake-3.31.0-linux-x86_64.sh --skip-license --prefix=/usr/local; \
27+
mkdir /deps; \
3328
cd /deps; \
3429
wget https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz; \
3530
tar xzvf bzip2-1.0.8.tar.gz; \
3631
cd bzip2-1.0.8; \
37-
make install PREFIX=/deps;
38-
39-
RUN cd /deps; \
32+
make install PREFIX=/deps; \
33+
rm -rf -- /deps/bzip2-1.0.8.tar.gz /deps/bzip2-1.0.8; \
34+
cd /deps; \
4035
wget https://www.zlib.net/zlib-1.3.1.tar.gz; \
4136
tar xzvf zlib-1.3.1.tar.gz; \
4237
cd zlib-1.3.1; \
4338
./configure --prefix=/deps --static; \
44-
make install;
45-
46-
# install toolchain
47-
RUN curl https://sh.rustup.rs -sSf | \
48-
sh -s -- --default-toolchain stable -y
49-
ENV PATH=/root/.cargo/bin:$PATH
50-
39+
make install; \
40+
rm -rf -- /deps/zlib-1.3.1.tar.gz /deps/zlib-1.3.1; \
41+
curl https://sh.rustup.rs -sSf | \
42+
sh -s -- --default-toolchain stable -y;

0 commit comments

Comments
 (0)