Skip to content

Commit 12a0d9a

Browse files
committed
Use build containers
1 parent b76ebc4 commit 12a0d9a

File tree

2 files changed

+3
-98
lines changed

2 files changed

+3
-98
lines changed

.github/workflows/Dockerfile.GPU-buster-cross-sbsa

Lines changed: 2 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,10 @@
1-
FROM debian:buster
2-
ARG VER="12-6"
3-
RUN dpkg --add-architecture arm64
4-
RUN sed -i s/deb.debian.org/archive.debian.org/g /etc/apt/sources.list; \
5-
sed -i s/security.debian.org/archive.debian.org/g /etc/apt/sources.list; \
6-
apt-get update; \
7-
apt-get -y install -o APT::Immediate-Configure=false \
8-
git wget vim ninja-build crossbuild-essential-arm64 zlib1g-dev:arm64 libbz2-dev:arm64 software-properties-common
9-
10-
RUN wget https://github.com/Kitware/CMake/releases/download/v3.31.0/cmake-3.31.0-linux-x86_64.sh; \
11-
chmod +x cmake-3.31.0-linux-x86_64.sh; \
12-
./cmake-3.31.0-linux-x86_64.sh --skip-license --prefix=/usr/local;
13-
14-
RUN wget -O cuda-x64.deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.1-1_all.deb
15-
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
16-
RUN dpkg -i cuda-x64.deb && dpkg -i cuda-sbsa.deb
17-
RUN apt-get update
18-
RUN apt-get install -y cuda-nvcc-${VER} cuda-nvcc-cross-sbsa-${VER} cuda-cudart-cross-sbsa-${VER}
19-
1+
FROM ghcr.io/steineggerlab/build-containers:main-sbsa
202
WORKDIR /work
21-
RUN wget https://apt.llvm.org/llvm.sh
22-
RUN chmod +x llvm.sh
23-
RUN ./llvm.sh 20
24-
RUN echo "set(CMAKE_SYSTEM_NAME Linux)" > /work/toolchain.cmake; \
25-
echo "set(CMAKE_SYSTEM_PROCESSOR aarch64)" >> /work/toolchain.cmake; \
26-
echo "set(CMAKE_C_COMPILER /work/clang-aarch64)" >> /work/toolchain.cmake; \
27-
echo "set(CMAKE_CXX_COMPILER /work/clang++-aarch64)" >> /work/toolchain.cmake; \
28-
echo 'set(CMAKE_CUDA_HOST_COMPILER ${CMAKE_CXX_COMPILER})' >> /work/toolchain.cmake; \
29-
echo "set(CMAKE_CUDA_COMPILER /usr/local/cuda/bin/nvcc)" >> /work/toolchain.cmake; \
30-
echo 'set(CMAKE_CUDA_FLAGS "-t 0 --split-compile=0 -allow-unsupported-compiler")' >> /work/toolchain.cmake; \
31-
echo 'set(CMAKE_CUDA_LINK_FLAGS "-t 0 --split-compile=0 -allow-unsupported-compiler")' >> /work/toolchain.cmake; \
32-
echo '#!/bin/sh\n/usr/bin/clang-20 --target=aarch64-linux-gnu "${@}"\n' > /work/clang-aarch64; \
33-
echo '#!/bin/sh\n/usr/bin/clang++-20 --target=aarch64-linux-gnu "${@}"\n' > /work/clang++-aarch64; \
34-
chmod +x /work/clang-aarch64 /work/clang++-aarch64; \
35-
cat /work/clang-aarch64 /work/clang++-aarch64;
36-
37-
ENV OMPVERSION=20.1.7
38-
ENV LIBOMP_AARCH64="/work/build_libomp/openmp-${OMPVERSION}.src/build-arm64/runtime/src"
39-
RUN mkdir -p build_libomp && cd build_libomp; \
40-
wget -qO- https://github.com/llvm/llvm-project/releases/download/llvmorg-${OMPVERSION}/cmake-${OMPVERSION}.src.tar.xz | tar xJvf -; \
41-
wget -qO- https://github.com/llvm/llvm-project/releases/download/llvmorg-${OMPVERSION}/openmp-${OMPVERSION}.src.tar.xz | tar xJvf -; \
42-
mv cmake-${OMPVERSION}.src cmake; \
43-
cd openmp-${OMPVERSION}.src; \
44-
mkdir -p build-arm64 && cd build-arm64; \
45-
cmake \
46-
-GNinja \
47-
-DLIBOMP_ENABLE_SHARED=OFF \
48-
-DLIBOMP_INSTALL_ALIASES=OFF \
49-
-DLIBOMP_ARCH=aarch64 \
50-
-DCMAKE_TOOLCHAIN_FILE=/work/toolchain.cmake \
51-
..; \
52-
cmake --build . -j$(nproc --all) -v;
533
ADD . .
544

555
RUN mkdir -p /work/build && cd /work/build; \
566
/usr/local/bin/cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DHAVE_TESTS=1 -DENABLE_WERROR=1 -DHAVE_ARM8=1 \
57-
-DCMAKE_TOOLCHAIN_FILE=/work/toolchain.cmake \
7+
-DCMAKE_TOOLCHAIN_FILE=/opt/toolchain.cmake \
588
-DOpenMP_C_FLAGS="-Xpreprocessor -fopenmp -I${LIBOMP_AARCH64}" -DOpenMP_C_LIB_NAMES=omp -DOpenMP_CXX_FLAGS="-Xpreprocessor -fopenmp -I${LIBOMP_AARCH64}" -DOpenMP_CXX_LIB_NAMES=omp -DOpenMP_omp_LIBRARY=${LIBOMP_AARCH64}/libomp.a \
599
-DCMAKE_POLICY_DEFAULT_CMP0074=NEW -DCMAKE_POLICY_DEFAULT_CMP0144=NEW \
6010
-DFORCE_STATIC_DEPS=1 -DENABLE_CUDA=1 -DCMAKE_CUDA_ARCHITECTURES="75-real;80-real;86-real;89-real;90" ..; \

.github/workflows/Dockerfile.GPU-manylinux2014

Lines changed: 1 addition & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,5 @@
1-
FROM quay.io/pypa/manylinux2014_x86_64
2-
ARG VER="12-6"
3-
ARG ARCH="x86_64"
1+
FROM ghcr.io/steineggerlab/build-containers:main-x86_64
42

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-
# libcublas-devel-${VER}.${ARCH}
9-
RUN yum -y install cuda-nvcc-${VER}.${ARCH} cuda-cudart-devel-${VER}.${ARCH}
10-
RUN echo "/usr/local/cuda/lib64" >> /etc/ld.so.conf.d/999_nvidia_cuda.conf
11-
ENV PATH="/usr/local/cuda/bin:${PATH}"
12-
ENV LD_LIBRARY_PATH="/usr/local/cuda/lib64:${LD_LIBRARY_PATH}"
13-
ENV CUDA_HOME=/usr/local/cuda
14-
ENV CUDA_ROOT=/usr/local/cuda
15-
ENV CUDA_PATH=/usr/local/cuda
16-
ENV CUDADIR=/usr/local/cuda
17-
18-
# Build system
19-
RUN yum install -y git wget vim zlib-devel bzip2-devel ninja-build centos-release-scl
20-
RUN mv /etc/yum.repos.d/CentOS-SCLo-scl.repo /etc/yum.repos.d/CentOS-SCLo-scl.repo.disabled
21-
RUN yum install -y devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-libatomic-devel
22-
ENV CC=/opt/rh/devtoolset-11/root/bin/gcc
23-
ENV CXX=/opt/rh/devtoolset-11/root/bin/g++
24-
ENV CUDAHOSTCXX=/opt/rh/devtoolset-11/root/bin/g++
25-
ENV CUDACXX=/usr/local/cuda/bin/nvcc
26-
ENV LIBGCC=/opt/rh/devtoolset-11/root/usr/lib/gcc/x86_64-redhat-linux/11
27-
28-
# cmake
29-
RUN wget https://github.com/Kitware/CMake/releases/download/v3.31.0/cmake-3.31.0-linux-x86_64.sh; \
30-
chmod +x cmake-3.31.0-linux-x86_64.sh; \
31-
./cmake-3.31.0-linux-x86_64.sh --skip-license --prefix=/usr/local;
32-
33-
RUN mkdir /deps; \
34-
cd /deps; \
35-
wget https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz; \
36-
tar xzvf bzip2-1.0.8.tar.gz; \
37-
cd bzip2-1.0.8; \
38-
make install PREFIX=/deps;
39-
40-
RUN cd /deps; \
41-
wget https://www.zlib.net/zlib-1.3.1.tar.gz; \
42-
tar xzvf zlib-1.3.1.tar.gz; \
43-
cd zlib-1.3.1; \
44-
./configure --prefix=/deps --static; \
45-
make install;
46-
47-
# compile
483
WORKDIR /work
494
ADD . .
505
RUN mkdir -p /work/build && cd /work/build; \

0 commit comments

Comments
 (0)