-
Notifications
You must be signed in to change notification settings - Fork 255
Expand file tree
/
Copy pathDockerfile.intel
More file actions
115 lines (93 loc) · 4.44 KB
/
Copy pathDockerfile.intel
File metadata and controls
115 lines (93 loc) · 4.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# syntax=docker/dockerfile:1
##############################################################
# This Dockerfile contains the Intel OneAPI toolkit for Devito
##############################################################
# Base image
FROM ubuntu:22.04 as base
ENV DEBIAN_FRONTEND noninteractive
# Install python
RUN apt-get update && \
apt-get install -y dh-autoreconf python3-venv python3-dev python3-pip
# Install for basic base not containing it
RUN apt-get install -y wget flex libnuma-dev hwloc curl cmake \
autoconf libtool build-essential procps git
EXPOSE 8888
CMD ["/bin/bash"]
##############################################################
# Intel OneAPI standard image
##############################################################
FROM base AS oneapi
# Download the key to system keyring
# https://www.intel.com/content/www/us/en/develop/documentation/installation-guide-for-intel-oneapi-toolkits-linux/top/installation/install-using-package-managers/apt.html#apt
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
RUN wget --progress=dot:giga -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor > /usr/share/keyrings/oneapi-archive-keyring.gpg
RUN echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" > /etc/apt/sources.list.d/oneAPI.list
# Intel advisor and drivers
RUN apt-get update -y && \
# advisor
apt-get install -y intel-oneapi-advisor
# Drivers mandatory for intel gpu
# https://dgpu-docs.intel.com/driver/installation.html#ubuntu-install-steps
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
RUN wget -qO - https://repositories.intel.com/graphics/intel-graphics.key | gpg --dearmor > /usr/share/keyrings/intel-graphics.gpg
RUN echo "deb [arch=amd64 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/graphics/ubuntu jammy unified" > /etc/apt/sources.list.d/intel-gpu-jammy.list
RUN apt-get update -y && apt-get dist-upgrade -y && \
# Compute and media runtime
apt-get install -y intel-opencl-icd intel-level-zero-gpu level-zero \
intel-media-va-driver-non-free libmfx1 libmfxgen1 libvpl2 \
libegl-mesa0 libegl1-mesa libegl1-mesa-dev libgbm1 libgl1-mesa-dev libgl1-mesa-dri \
libglapi-mesa libgles2-mesa-dev libglx-mesa0 libigdgmm12 libxatracker2 mesa-va-drivers \
mesa-vdpau-drivers mesa-vulkan-drivers va-driver-all vainfo hwinfo clinfo \
# XPU-SMI
pciutils libkmod-dev intel-fw-gpu xpu-smi \
# Development packages
libigc-dev intel-igc-cm libigdfcl-dev libigfxcmrt-dev level-zero-dev
ENV MPI4PY_FLAGS='. /opt/intel/oneapi/setvars.sh intel64 && '
ENV MPI4PY_RC_RECV_MPROBE=0
RUN apt-get clean && apt-get autoclean && apt-get autoremove -y && rm -rf /var/lib/apt/lists/*
##############################################################
# ICC image
# This is a legacy setup that is not built anymore but kept for reference
##############################################################
FROM oneapi AS icc
RUN apt-get update -y && apt-get install -y intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic intel-oneapi-mpi-devel && \
apt-get clean && apt-get autoclean && apt-get autoremove -y && \
rm -rf /var/lib/apt/lists/*
# Devito config
ENV I_MPI_CC="icc"
ENV I_MPI_CXX="icpc"
ENV DEVITO_ARCH="icc"
ENV DEVITO_LANGUAGE="openmp"
ENV DEVITO_PLATFORM="intel64"
# MPICC compiler for mpi4py
ENV MPICC=mpiicc
##############################################################
# ICX OpenMP image
##############################################################
FROM oneapi AS icx
RUN apt-get update -y && apt-get install -y intel-oneapi-compiler-dpcpp-cpp intel-oneapi-mpi-devel && \
apt-get clean && apt-get autoclean && apt-get autoremove -y && \
rm -rf /var/lib/apt/lists/*
# Devito config
ENV I_MPI_CC="icx"
ENV I_MPI_CXX="icpx"
ENV DEVITO_ARCH="icx"
ENV DEVITO_LANGUAGE="openmp"
# MPICC compiler for mpi4py
ENV MPICC=mpiicc
##############################################################
# ICX SYCL CPU image
##############################################################
FROM icx AS cpu-sycl
# Devito config
ENV DEVITO_ARCH="sycl"
ENV DEVITO_LANGUAGE="sycl"
ENV DEVITO_PLATFORM="intel64"
##############################################################
# ICX SYCL GPU image
##############################################################
FROM icx as gpu-sycl
# Devito config
ENV DEVITO_ARCH="sycl"
ENV DEVITO_LANGUAGE="sycl"
ENV DEVITO_PLATFORM="intelgpuX"