Dockerfile_CENTOS 4.26 KB
Newer Older
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
FROM centos:latest

ARG PREFIX=/usr/local

# Support multiarch
RUN rpm --target i386

RUN cd /etc/yum.repos.d/
RUN sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
RUN sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

# Add rocm repository
RUN sh -c 'echo -e "[rocm]\nname=rocm\nbaseurl=http://repo.radeon.com/rocm/centos8/5.2.5/main/\nenabled=1\ngpgcheck=1\ngpgkey=http://repo.radeon.com/rocm/rocm.gpg.key" > /etc/yum.repos.d/rocm.repo'

RUN yum clean all && \
    yum install -y wget \
    dnf-plugins-core \
    clang \
    epel-release

#For CentOS 8.3/8.4
RUN sh -c 'echo yum config-manager --set-enabled PowerTools'

# Install dependencies
RUN dnf update  -y && dnf makecache --refresh
RUN dnf groupinstall -y "Development Tools" --setopt=group_package_types=mandatory,default,optional

RUN dnf --enablerepo=powertools install -y --nobest \
    yum-utils \
    #build-essential \
    #clang-format-10 \
    git-clang-format \
    #cmake \
    doxygen \
    #g++-7 \
    #gdb \
    #git \
    lcov \
    #locales replaced by glib-langpack\
    glibc-all-langpacks \
    libffi-devel \
    xz-devel \
    bzip2-devel \
    #pkg-config \
    python38 \
    python38-devel \
    #software-properties-common \ # irrelevant to YUM
    rocm-device-libs \
    hip-base \
    #libnuma-devel \
    numactl \
    miopen-hip \
    miopen-hip-devel \
    rocblas \
    rocblas-devel \
    hipfft \
    rocthrust \
    rocrand \
    hipsparse \
    rccl \
    rccl-devel \
    rocm-smi-lib \
    rocm-dev \
    roctracer-dev \
    hipcub  \
    hipblas  \
    hipify-clang \
    half \
    #libssl-devel \
    openssl-devel
71
    gcc-toolset-11
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
    #zlib1g-devel && \
    #zlib-devel && \


RUN alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 60 && alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 50 && update-alternatives --auto python3
RUN python3 --version && ls -la /usr/bin

# add this for roctracer dependancies
RUN pip3.8 install CppHeaderParser

# Workaround broken rocm packages
RUN ln -s /opt/rocm-* /opt/rocm
RUN echo "/opt/rocm/lib" > /etc/ld.so.conf.d/rocm.conf
RUN echo "/opt/rocm/llvm/lib" > /etc/ld.so.conf.d/rocm-llvm.conf
RUN ldconfig

#RUN localedef -c -f UTF-8 -i en_US en_US.UTF-8
#RUN export LC_ALL=en_US.UTF-8

ENV LC_ALL=C.UTF-8
ENV LANG=C.UTF-8

#update pip
RUN pip3.8 install --upgrade pip 

# Install dependencies
ADD dev-requirements.txt /dev-requirements.txt
ADD requirements.txt /requirements.txt
ADD rbuild.ini /rbuild.ini

COPY ./tools/install_prereqs_centos.sh /
RUN /install_prereqs_centos.sh /usr/local / && rm /install_prereqs_centos.sh
RUN test -f /usr/local/hash || exit 1

# Install yapf
RUN pip3.8 install yapf==0.28.0

# Install doc requirements
ADD doc/requirements.txt /doc-requirements.txt
RUN pip3.8 install -r /doc-requirements.txt

# Download real models to run onnx unit tests
ENV ONNX_HOME=/.onnx
COPY ./tools/download_models.sh /
RUN /download_models.sh && rm /download_models.sh

# Install latest ccache version
RUN cget -p $PREFIX install facebook/zstd@v1.4.5 -X subdir -DCMAKE_DIR=build/cmake
RUN cget -p $PREFIX install ccache@v4.1 -DENABLE_TESTING=OFF
RUN cget -p /opt/cmake install kitware/cmake@v3.24.3

COPY ./test/onnx/.onnxrt-commit /

ARG ONNXRUNTIME_REPO=https://github.com/Microsoft/onnxruntime
ARG ONNXRUNTIME_BRANCH=main
ARG ONNXRUNTIME_COMMIT

RUN git clone --single-branch --branch ${ONNXRUNTIME_BRANCH} --recursive ${ONNXRUNTIME_REPO} onnxruntime && \
    cd onnxruntime && \
    if [ -z "$ONNXRUNTIME_COMMIT" ] ; then git checkout $(cat /.onnxrt-commit) ; else git checkout ${ONNXRUNTIME_COMMIT} ; fi && \
    /bin/sh /onnxruntime/dockerfiles/scripts/install_common_deps.sh


ADD tools/build_and_test_onnxrt.sh /onnxruntime/build_and_test_onnxrt.sh

RUN cget -p /usr/local install ROCmSoftwarePlatform/rocMLIR@acb727b348086b58a7f261b32c0e4f0686a4c0ee -DBUILD_MIXR_TARGET=On -DLLVM_ENABLE_ZSTD=Off -DLLVM_ENABLE_THREADS=Off

ENV MIOPEN_FIND_DB_PATH=/tmp/miopen/find-db
ENV MIOPEN_USER_DB_PATH=/tmp/miopen/user-db
ENV LD_LIBRARY_PATH=$PREFIX/lib

# Setup ubsan environment to printstacktrace
ENV UBSAN_OPTIONS=print_stacktrace=1
ENV ASAN_OPTIONS=detect_stack_use_after_return=1:check_initialization_order=1:strict_init_order=1
RUN ln -s /opt/rocm/llvm/bin/llvm-symbolizer /usr/bin/llvm-symbolizer