|
| 1 | +#!/usr/bin/env python |
| 2 | + |
| 3 | +import hpccm |
| 4 | +from hpccm.building_blocks import gnu, mlnx_ofed, nvshmem, cmake |
| 5 | +from hpccm.primitives import baseimage |
| 6 | + |
| 7 | +DOXYGEN_VER = "1.9.6" |
| 8 | +GDRCOPY_HOME = "/usr/local/gdrcopy" |
| 9 | +PYBIND11_VER = "2.7.1" |
| 10 | +FFTW_VER="3.3.10" |
| 11 | +OPENBLAS_VER="0.3.27" |
| 12 | +BLIS_VER="1.0" |
| 13 | + |
| 14 | +if cpu_target == 'x86_64': |
| 15 | + TARGETARCH='amd64' |
| 16 | +elif cpu_target == 'aarch64': |
| 17 | + TARGETARCH='arm64' |
| 18 | +else: |
| 19 | + raise RuntimeError("Unsupported platform") |
| 20 | + |
| 21 | +Stage0 = hpccm.Stage() |
| 22 | +Stage0 += baseimage(image='nvidia/cuda:12.6.2-devel-ubuntu22.04', _as='devel', _distro="ubuntu22") |
| 23 | + |
| 24 | +Stage0 += packages(ospackages=[ |
| 25 | + 'bison', |
| 26 | + 'clang-tidy', |
| 27 | + 'curl', |
| 28 | + 'flex', |
| 29 | + 'ghostscript', |
| 30 | + 'git', |
| 31 | + 'libjs-mathjax', |
| 32 | + 'liblapacke-dev', |
| 33 | + 'libopenblas64-openmp-dev', |
| 34 | + 'lcov', |
| 35 | + 'ninja-build', |
| 36 | + 'numactl', |
| 37 | + 'python3-pip', |
| 38 | + 'python3-dev', |
| 39 | + 'sudo', |
| 40 | + 'texlive-font-utils', |
| 41 | + 'valgrind', |
| 42 | + 'vim', |
| 43 | +]) |
| 44 | + |
| 45 | +#Stage0 += shell(commands=["mv /usr/lib/python3.12/EXTERNALLY-MANAGED /usr/lib/python3.12/EXTERNALLY-MANAGED.old"]) |
| 46 | +Stage0 += pip(pip="pip3", upgrade=True, packages=[ |
| 47 | + 'breathe', |
| 48 | + 'cupy-cuda12x', |
| 49 | + 'hpccm', |
| 50 | + 'numpy', |
| 51 | + 'pandas', |
| 52 | + 'plotly==5.2.1', |
| 53 | + 'pybind11', |
| 54 | + 'scipy', |
| 55 | + 'sphinx', |
| 56 | + 'sphinx_book_theme', |
| 57 | + 'sphinx-rtd-theme', |
| 58 | +]) |
| 59 | + |
| 60 | +Stage0 += gnu() |
| 61 | +Stage0 += cmake(eula=True, version="3.26.4") |
| 62 | +Stage0 += nsight_compute(eula=True) |
| 63 | +Stage0 += nsight_systems() |
| 64 | + |
| 65 | +Stage0 += shell(commands=["wget https://doxygen.nl/files/doxygen-{}.src.tar.gz".format(DOXYGEN_VER), |
| 66 | + "tar -zxf doxygen-{}.src.tar.gz".format(DOXYGEN_VER), |
| 67 | + "cd doxygen-{} && mkdir build && cd build && cmake .. && make -j && make install".format(DOXYGEN_VER)]) |
| 68 | +Stage0 += shell(commands=["python3 --version"]) |
| 69 | + |
| 70 | +Stage0 += shell(commands=[f"wget https://www.fftw.org/fftw-{FFTW_VER}.tar.gz && tar -xzf fftw-{FFTW_VER}.tar.gz", |
| 71 | + f"cd fftw-{FFTW_VER} && ./configure --enable-sse2 --enable-avx2 --enable-shared --enable-avx512 --enable-openmp --enable-float && make && make install", |
| 72 | + "./configure --enable-sse2 --enable-avx2 --enable-avx512 --enable-openmp && make && sudo make install"]) |
| 73 | + |
| 74 | +# Stage0 += shell(commands=[f"cd /tmp && wget https://github.com/OpenMathLib/OpenBLAS/releases/download/v{OPENBLAS_VER}/OpenBLAS-{OPENBLAS_VER}.tar.gz && tar -zxvf OpenBLAS-{OPENBLAS_VER}.tar.gz && cd OpenBLAS-{OPENBLAS_VER}", |
| 75 | +# "make -j && sudo make USE_OPENMP=1 INTERFACE64=1 install"]) |
| 76 | + |
| 77 | +Stage0 += shell(commands=["curl -L https://coveralls.io/coveralls-linux.tar.gz | tar -xz -C /usr/local/bin"]) |
| 78 | + |
| 79 | +Stage0 += shell(commands=[f"cd /tmp && wget https://github.com/flame/blis/archive/refs/tags/{BLIS_VER}.tar.gz && tar -zxvf {BLIS_VER}.tar.gz && cd blis-{BLIS_VER}", |
| 80 | + "./configure --enable-threading=openmp --enable-cblas -b 64 auto && sudo make -j install"]) |
| 81 | + |
| 82 | + |
| 83 | +# # Install fixuid |
| 84 | +# Stage0 += shell(commands=[ |
| 85 | +# 'addgroup --gid 1000 matx', |
| 86 | +# 'adduser --uid 1000 --ingroup matx --home /home/matx --shell /bin/sh --disabled-password --gecos "" matx', |
| 87 | +# 'USER=matx', |
| 88 | +# 'GROUP=matx', |
| 89 | +# f'curl -SsL https://github.com/boxboat/fixuid/releases/download/v0.5/fixuid-0.5-linux-{TARGETARCH}.tar.gz | tar -C /usr/local/bin -xzf -', |
| 90 | +# 'chown root:root /usr/local/bin/fixuid', |
| 91 | +# 'chmod 4755 /usr/local/bin/fixuid', |
| 92 | +# 'mkdir -p /etc/fixuid', |
| 93 | +# 'printf "user: $USER\\ngroup: $GROUP\\n" > /etc/fixuid/config.yml', |
| 94 | +# '/bin/echo "matx ALL = (root) NOPASSWD: ALL" >> /etc/sudoers', |
| 95 | +# ]) |
| 96 | + |
| 97 | +print(Stage0) |
0 commit comments