|
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 |
20 | 2 | 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; |
53 | 3 | ADD . . |
54 | 4 |
|
55 | 5 | RUN mkdir -p /work/build && cd /work/build; \ |
56 | 6 | /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 \ |
58 | 8 | -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 \ |
59 | 9 | -DCMAKE_POLICY_DEFAULT_CMP0074=NEW -DCMAKE_POLICY_DEFAULT_CMP0144=NEW \ |
60 | 10 | -DFORCE_STATIC_DEPS=1 -DENABLE_CUDA=1 -DCMAKE_CUDA_ARCHITECTURES="75-real;80-real;86-real;89-real;90" ..; \ |
|
0 commit comments