xref: /aosp_15_r20/external/pytorch/.ci/docker/ubuntu-xpu/Dockerfile (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1ARG UBUNTU_VERSION
2
3FROM ubuntu:${UBUNTU_VERSION}
4
5ARG UBUNTU_VERSION
6
7ENV DEBIAN_FRONTEND noninteractive
8
9ARG CLANG_VERSION
10
11# Install common dependencies (so that this step can be cached separately)
12COPY ./common/install_base.sh install_base.sh
13RUN bash ./install_base.sh && rm install_base.sh
14
15# Install clang
16ARG LLVMDEV
17COPY ./common/install_clang.sh install_clang.sh
18RUN bash ./install_clang.sh && rm install_clang.sh
19
20# Install user
21COPY ./common/install_user.sh install_user.sh
22RUN bash ./install_user.sh && rm install_user.sh
23
24# Install katex
25ARG KATEX
26COPY ./common/install_docs_reqs.sh install_docs_reqs.sh
27RUN bash ./install_docs_reqs.sh && rm install_docs_reqs.sh
28
29# Install conda and other packages (e.g., numpy, pytest)
30ARG ANACONDA_PYTHON_VERSION
31ARG CONDA_CMAKE
32ARG DOCS
33ARG BUILD_ENVIRONMENT
34ENV ANACONDA_PYTHON_VERSION=$ANACONDA_PYTHON_VERSION
35ENV PATH /opt/conda/envs/py_$ANACONDA_PYTHON_VERSION/bin:/opt/conda/bin:$PATH
36ENV DOCS=$DOCS
37COPY requirements-ci.txt requirements-docs.txt /opt/conda/
38COPY ./common/install_conda.sh install_conda.sh
39COPY ./common/common_utils.sh common_utils.sh
40RUN bash ./install_conda.sh && rm install_conda.sh common_utils.sh /opt/conda/requirements-ci.txt /opt/conda/requirements-docs.txt
41
42# Install gcc
43ARG GCC_VERSION
44COPY ./common/install_gcc.sh install_gcc.sh
45RUN bash ./install_gcc.sh && rm install_gcc.sh
46
47# Install lcov for C++ code coverage
48COPY ./common/install_lcov.sh install_lcov.sh
49RUN  bash ./install_lcov.sh && rm install_lcov.sh
50
51COPY ./common/install_openssl.sh install_openssl.sh
52RUN bash ./install_openssl.sh
53ENV OPENSSL_ROOT_DIR /opt/openssl
54ENV OPENSSL_DIR /opt/openssl
55RUN rm install_openssl.sh
56
57ARG INDUCTOR_BENCHMARKS
58COPY ./common/install_inductor_benchmark_deps.sh install_inductor_benchmark_deps.sh
59COPY ./common/common_utils.sh common_utils.sh
60COPY ci_commit_pins/huggingface.txt huggingface.txt
61COPY ci_commit_pins/timm.txt timm.txt
62RUN if [ -n "${INDUCTOR_BENCHMARKS}" ]; then bash ./install_inductor_benchmark_deps.sh; fi
63RUN rm install_inductor_benchmark_deps.sh common_utils.sh timm.txt huggingface.txt
64
65# Install XPU Dependencies
66ARG XPU_VERSION
67COPY ./common/install_xpu.sh install_xpu.sh
68RUN bash ./install_xpu.sh && rm install_xpu.sh
69
70ARG TRITON
71# Install triton, this needs to be done before sccache because the latter will
72# try to reach out to S3, which docker build runners don't have access
73COPY ./common/install_triton.sh install_triton.sh
74COPY ./common/common_utils.sh common_utils.sh
75COPY ci_commit_pins/triton-xpu.txt triton-xpu.txt
76COPY triton_version.txt triton_version.txt
77RUN if [ -n "${TRITON}" ]; then bash ./install_triton.sh; fi
78RUN rm install_triton.sh common_utils.sh triton-xpu.txt triton_version.txt
79
80# (optional) Install database packages like LMDB and LevelDB
81ARG DB
82COPY ./common/install_db.sh install_db.sh
83RUN if [ -n "${DB}" ]; then bash ./install_db.sh; fi
84RUN rm install_db.sh
85ENV INSTALLED_DB ${DB}
86
87# (optional) Install vision packages like OpenCV
88ARG VISION
89COPY ./common/install_vision.sh ./common/cache_vision_models.sh ./common/common_utils.sh ./
90RUN if [ -n "${VISION}" ]; then bash ./install_vision.sh; fi
91RUN rm install_vision.sh cache_vision_models.sh common_utils.sh
92ENV INSTALLED_VISION ${VISION}
93
94# (optional) Install non-default CMake version
95ARG CMAKE_VERSION
96COPY ./common/install_cmake.sh install_cmake.sh
97RUN if [ -n "${CMAKE_VERSION}" ]; then bash ./install_cmake.sh; fi
98RUN rm install_cmake.sh
99
100# (optional) Install non-default Ninja version
101ARG NINJA_VERSION
102COPY ./common/install_ninja.sh install_ninja.sh
103RUN if [ -n "${NINJA_VERSION}" ]; then bash ./install_ninja.sh; fi
104RUN rm install_ninja.sh
105
106# Install ccache/sccache (do this last, so we get priority in PATH)
107COPY ./common/install_cache.sh install_cache.sh
108ENV PATH /opt/cache/bin:$PATH
109RUN bash ./install_cache.sh && rm install_cache.sh
110
111# Include BUILD_ENVIRONMENT environment variable in image
112ARG BUILD_ENVIRONMENT
113ENV BUILD_ENVIRONMENT ${BUILD_ENVIRONMENT}
114
115# Install LLVM dev version (Defined in the pytorch/builder github repository)
116COPY --from=pytorch/llvm:9.0.1 /opt/llvm /opt/llvm
117
118USER jenkins
119CMD ["bash"]
120