|
| 1 | +FROM nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04 |
| 2 | + |
| 3 | +# Due to bad internet issue |
| 4 | +RUN rm /etc/apt/sources.list.d/* |
| 5 | + |
| 6 | +# prepare build dir tmp |
| 7 | +RUN chmod 1777 /tmp \ |
| 8 | + && mkdir /scratch \ |
| 9 | + && chmod 1777 /scratch |
| 10 | + |
| 11 | +# install build needed tools |
| 12 | +RUN apt-get update -y \ |
| 13 | + && DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC apt-get -y install tzdata \ |
| 14 | + && apt-get install -y --no-install-recommends \ |
| 15 | + software-properties-common \ |
| 16 | + apt-transport-https \ |
| 17 | + autoconf \ |
| 18 | + automake \ |
| 19 | + bc \ |
| 20 | + build-essential \ |
| 21 | + bzip2 \ |
| 22 | + ca-certificates \ |
| 23 | + curl \ |
| 24 | + g++ \ |
| 25 | + gdb \ |
| 26 | + git \ |
| 27 | + gnupg \ |
| 28 | + locales \ |
| 29 | + libboost-all-dev \ |
| 30 | + libgflags-dev \ |
| 31 | + libgoogle-glog-dev \ |
| 32 | + libgtest-dev \ |
| 33 | + libjson-c-dev \ |
| 34 | + libjsoncpp-dev \ |
| 35 | + libssl-dev \ |
| 36 | + libtool \ |
| 37 | + libunwind-dev \ |
| 38 | + make \ |
| 39 | + openssh-client \ |
| 40 | + openssl \ |
| 41 | + # python3 \ |
| 42 | + python3-dev \ |
| 43 | + # python3-minimal \ |
| 44 | + # python3-numpy \ |
| 45 | + # python3-opencv \ |
| 46 | + python3-pip \ |
| 47 | + # python3-setuptools \ |
| 48 | + # python3-venv \ |
| 49 | + software-properties-common \ |
| 50 | + sudo \ |
| 51 | + tree \ |
| 52 | + unzip \ |
| 53 | + vim \ |
| 54 | + wget \ |
| 55 | + yasm \ |
| 56 | + zstd \ |
| 57 | + libtool |
| 58 | + |
| 59 | +# set python |
| 60 | +ENV PYTHONPATH=/opt/python:$PYTHONPATH |
| 61 | +ENV LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH |
| 62 | + |
| 63 | +ENV PYENV_ROOT=/opt/pyenv \ |
| 64 | + PATH=/opt/pyenv/shims:/opt/pyenv/bin:$PATH |
| 65 | + |
| 66 | +RUN git clone --depth 1 https://github.com/pyenv/pyenv.git /opt/pyenv \ |
| 67 | + && eval "$(pyenv init -)" \ |
| 68 | + && env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.6.4 \ |
| 69 | + && pyenv global 3.6.4 |
| 70 | + |
| 71 | +RUN pip install --upgrade pip |
| 72 | +RUN pip install torch==1.8.1 torchvision flake8 scipy pytest |
| 73 | + |
| 74 | + |
| 75 | +# RUN mkdir /opt/hub && wget https://github.com/pytorch/vision/archive/master.zip -P /opt/hub && unzip /opt/hub/master.zip -d /opt/hub && mv /opt/hub/vision-master/ /opt/hub/pytorch_vision_master |
| 76 | +ENV TORCH_HOME=/opt/ |
| 77 | + |
| 78 | +RUN apt-get install -y \ |
| 79 | + libavcodec-dev \ |
| 80 | + libavformat-dev \ |
| 81 | + libeigen3-dev \ |
| 82 | + libgstreamer-plugins-base1.0-dev \ |
| 83 | + libgstreamer1.0-dev \ |
| 84 | + libgtest-dev \ |
| 85 | + libgtk-3-dev \ |
| 86 | + libgtk2.0-dev \ |
| 87 | + libhdf5-dev \ |
| 88 | + libjpeg-dev \ |
| 89 | + libopenexr-dev \ |
| 90 | + libpng-dev \ |
| 91 | + libswscale-dev \ |
| 92 | + libtiff-dev \ |
| 93 | + libwebp-dev \ |
| 94 | + # opencl-clhpp-headers \ |
| 95 | + # opencl-headers \ |
| 96 | + # pocl-opencl-icd \ |
| 97 | + rpm \ |
| 98 | + && add-apt-repository -y ppa:ubuntu-toolchain-r/test \ |
| 99 | + && apt-get install -y \ |
| 100 | + gcc-8 \ |
| 101 | + g++-8 \ |
| 102 | + gcc-9 \ |
| 103 | + g++-9 \ |
| 104 | + && wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null \ |
| 105 | + && apt-add-repository 'deb https://apt.kitware.com/ubuntu/ bionic main' \ |
| 106 | + && apt-get update -y \ |
| 107 | + && apt-get install -y \ |
| 108 | + cmake=3.16.0-0kitware1 \ |
| 109 | + cmake-data=3.16.0-0kitware1 \ |
| 110 | + kitware-archive-keyring \ |
| 111 | + && apt-get install -y ffmpeg |
| 112 | + |
| 113 | +# set locales |
| 114 | +RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen \ |
| 115 | + && echo "LC_ALL=en_US.UTF-8" >> /etc/environment \ |
| 116 | + && echo "LANG=en_US.UTF-8" > /etc/locale.conf \ |
| 117 | + && locale-gen en_US.UTF-8 \ |
| 118 | + && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 \ |
| 119 | + && apt-get install -y dialog \ |
| 120 | + && dpkg-reconfigure --frontend noninteractive locales |
| 121 | + |
| 122 | + |
| 123 | +# build gtest |
| 124 | +RUN cd /usr/src/gtest \ |
| 125 | + && mkdir -p build \ |
| 126 | + && cd build \ |
| 127 | + && cmake .. \ |
| 128 | + && make \ |
| 129 | + && make install |
| 130 | + |
| 131 | +# set glob |
| 132 | +RUN cd /tmp \ |
| 133 | + && wget --progress=dot:mega -O glog.0.4.0.tar.gz https://codeload.github.com/google/glog/tar.gz/v0.4.0 \ |
| 134 | + && tar -xvf glog.0.4.0.tar.gz \ |
| 135 | + && cd glog-0.4.0 \ |
| 136 | + && ./autogen.sh \ |
| 137 | + && mkdir build \ |
| 138 | + && cd build \ |
| 139 | + && cmake -DBUILD_SHARED_LIBS=ON .. \ |
| 140 | + && make -j 4 \ |
| 141 | + && make install \ |
| 142 | + && rm -fr /tmp/* |
| 143 | + |
| 144 | + |
| 145 | +# set protobuf |
| 146 | +RUN /tmp; wget --progress=dot:mega https://codeload.github.com/google/protobuf/zip/v3.4.0 \ |
| 147 | + && unzip v3.4.0 \ |
| 148 | + && cd protobuf-3.4.0 \ |
| 149 | + && ./autogen.sh \ |
| 150 | + && ./configure \ |
| 151 | + && make -j 4 \ |
| 152 | + && make install \ |
| 153 | + && ldconfig \ |
| 154 | + && rm -fr /tmp/* |
| 155 | + |
| 156 | +# set gflag |
| 157 | +RUN cd /tmp; wget --progress=dot:mega https://github.com/gflags/gflags/archive/v2.2.2.tar.gz \ |
| 158 | + && tar xvf v2.2.2.tar.gz \ |
| 159 | + && cd gflags-2.2.2 \ |
| 160 | + && mkdir build \ |
| 161 | + && cd build \ |
| 162 | + && cmake -DBUILD_SHARED_LIBS=ON .. \ |
| 163 | + && make -j 4 \ |
| 164 | + && make install \ |
| 165 | + && rm -fr /tmp/* |
| 166 | + |
| 167 | +# set pybind |
| 168 | +RUN cd /tmp; git clone https://github.com/pybind/pybind11.git \ |
| 169 | + && cd pybind11 \ |
| 170 | + && git checkout v2.5.0 \ |
| 171 | + && mkdir build \ |
| 172 | + && cd build \ |
| 173 | + && cmake -DPYBIND11_TEST=OFF .. \ |
| 174 | + && make \ |
| 175 | + && make install \ |
| 176 | + && rm -fr /tmp/* \ |
| 177 | + && chmod 777 /usr/lib/python3/dist-packages |
| 178 | + |
| 179 | +# set xir |
| 180 | +RUN cd /tmp \ |
| 181 | + && wget -O libunilog.deb https://www.xilinx.com/bin/public/openDownload?filename=libunilog_1.4.1-r82_amd64.deb \ |
| 182 | + && wget -O libtarget-factory.deb https://www.xilinx.com/bin/public/openDownload?filename=libtarget-factory_1.4.1-r85_amd64.deb \ |
| 183 | + && wget -O libxir.deb https://www.xilinx.com/bin/public/openDownload?filename=libxir_1.4.1-r91_amd64.deb \ |
| 184 | + && wget -O libvart.deb https://www.xilinx.com/bin/public/openDownload?filename=libvart_1.4.1-r130_amd64.deb \ |
| 185 | + && wget -O libvitis_ai_library.deb https://www.xilinx.com/bin/public/openDownload?filename=libvitis_ai_library_1.4.1-r114_amd64.deb \ |
| 186 | + && wget -O librt-engine.deb https://www.xilinx.com/bin/public/openDownload?filename=librt-engine_1.4.1-r195_amd64.deb \ |
| 187 | + && wget -O aks.deb https://www.xilinx.com/bin/public/openDownload?filename=aks_1.4.1-r78_amd64.deb \ |
| 188 | + && apt-get install -y --no-install-recommends /tmp/*.deb \ |
| 189 | + && rm -rf /tmp/* \ |
| 190 | + && ldconfig |
| 191 | + |
| 192 | +# install mqbench requirement |
| 193 | +RUN pip install urllib3 onnx |
| 194 | + |
| 195 | +# set xir path |
| 196 | +ENV PYTHONPATH=/usr/lib/python3/dist-packages/:$PYTHONPATH |
| 197 | + |
| 198 | +# install mqbench |
| 199 | +RUN cd /root/ \ |
| 200 | + && git clone https://github.com/ModelTC/MQBench.git \ |
| 201 | + && cd MQBench \ |
| 202 | + && python setup.py develop |
| 203 | + |
0 commit comments