onnxruntime/dockerfiles/Dockerfile.openvino-centos7
Maajid khan 7fc28cd539
[OpenVINO-EP] UEP v3.1 Release with OpenVINO 2021.4.1 (#9081)
* 2021.4.1 Docker and ci changes

* OV version change

* Removing Imagescaler op from the op's list

Reverting this change which was added in last
PR. Imagescaler is now deprecated. so removing
it from the supported list. Also this
op is causing regression in the performance
of the FP16 models.

Signed-off-by: MaajidKhan <n.maajidkhan@gmail.com>

* Re-writing the help message for num_of_threads

Signed-off-by: MaajidKhan <n.maajidkhan@gmail.com>

Co-authored-by: Aravind Gunda <aravindx.gunda@intel.com>
2021-09-16 17:09:07 -07:00

105 lines
No EOL
6.4 KiB
Text
Executable file

#-------------------------------------------------------------------------
# Copyright(C) 2021 Intel Corporation.
# SPDX-License-Identifier: MIT
#--------------------------------------------------------------------------
FROM centos:7.8.2003
WORKDIR /code
ARG MY_ROOT=/code
ARG YUM_OV_PACKAGE=intel-openvino-runtime-centos7-2021.4.689.x86_64
ARG DEVICE=CPU_FP32
ARG ONNXRUNTIME_REPO=https://github.com/microsoft/onnxruntime
ARG ONNXRUNTIME_BRANCH=master
ENV INTEL_OPENVINO_DIR=/opt/intel/openvino_2021.4.689
ENV InferenceEngine_DIR=${INTEL_OPENVINO_DIR}/deployment_tools/inference_engine/share
ENV IE_PLUGINS_PATH=${INTEL_OPENVINO_DIR}/deployment_tools/inference_engine/lib/intel64
ENV ngraph_DIR=${INTEL_OPENVINO_DIR}/deployment_tools/ngraph/cmake
ENV LD_LIBRARY_PATH=/opt/intel/opencl:${INTEL_OPENVINO_DIR}/inference_engine/external/gna/lib:${INTEL_OPENVINO_DIR}/deployment_tools/inference_engine/external/mkltiny_lnx/lib:$INTEL_OPENVINO_DIR/deployment_tools/ngraph/lib:${INTEL_OPENVINO_DIR}/deployment_tools/inference_engine/external/omp/lib:${INTEL_OPENVINO_DIR}/deployment_tools/inference_engine/external/tbb/lib:${IE_PLUGINS_PATH}:${LD_LIBRARY_PATH}
ENV OpenCV_DIR=${INTEL_OPENVINO_DIR}/opencv/share/OpenCV
ENV LD_LIBRARY_PATH=${INTEL_OPENVINO_DIR}/opencv/lib:${INTEL_OPENVINO_DIR}/opencv/share/OpenCV/3rdparty/lib:${LD_LIBRARY_PATH}
ENV HDDL_INSTALL_DIR=${INTEL_OPENVINO_DIR}/deployment_tools/inference_engine/external/hddl
ENV LD_LIBRARY_PATH=${INTEL_OPENVINO_DIR}/deployment_tools/inference_engine/external/hddl/lib:$LD_LIBRARY_PATH
ENV LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/usr/local/lib64:/usr/lib64:/lib64:$LD_LIBRARY_PATH
# Install packages
RUN yum update -y && \
yum groupinstall "Development Tools" -y && \
yum install -y yum-utils autoconf automake libtool unzip udev wget zlib-devel libffi-devel openssl-devel boost-devel-1.53.0 && \
yum clean packages && yum clean all && rm -rf /var/cache/yum && \
# Install cmake
cd $MY_ROOT && \
wget https://github.com/Kitware/CMake/releases/download/v3.18.6/cmake-3.18.6.tar.gz && \
tar -zxvf cmake-3.18.6.tar.gz && rm -rf cmake-3.18.6.tar.gz && \
cd cmake-3.18.6 && \
./bootstrap && \
make && \
make install && \
cd $MY_ROOT && \
# libusb1.0.22
cd /opt/ && wget https://github.com/libusb/libusb/archive/v1.0.22.zip && \
unzip v1.0.22.zip && rm -rf v1.0.22.zip && cd /opt/libusb-1.0.22 && \
# bootstrap steps
./bootstrap.sh && \
./configure --disable-udev --enable-shared && \
make -j4 && \
# configure libusb1.0.22
cd /opt/libusb-1.0.22/libusb && \
/bin/mkdir -p '/usr/local/lib' && \
/bin/bash ../libtool --mode=install /usr/bin/install -c libusb-1.0.la '/usr/local/lib' && \
/bin/mkdir -p '/usr/local/include/libusb-1.0' && \
/usr/bin/install -c -m 644 libusb.h '/usr/local/include/libusb-1.0' && \
/bin/mkdir -p '/usr/local/lib/pkgconfig' && \
# Install openvino
yum-config-manager --add-repo https://yum.repos.intel.com/openvino/2021/setup/intel-openvino-2021.repo && \
rpm --import https://yum.repos.intel.com/openvino/2021/setup/RPM-GPG-KEY-INTEL-OPENVINO-2021 && \
yum update -y && yum list intel-openvino* && \
yum install -y $YUM_OV_PACKAGE && \
cd ${INTEL_OPENVINO_DIR}/install_dependencies/ && ./install_openvino_dependencies.sh -y && \
printf "\nexport LD_LIBRARY_PATH=\${LD_LIBRARY_PATH}:/usr/local/lib\n" >> /opt/intel/openvino_2021.4.689/bin/setupvars.sh && \
cd /opt/libusb-1.0.22 && \
/usr/bin/install -c -m 644 libusb-1.0.pc '/usr/local/lib/pkgconfig' && \
cp /opt/intel/openvino_2021/deployment_tools/inference_engine/external/97-myriad-usbboot.rules /etc/udev/rules.d/ && \
ldconfig && \
# Install GPU runtime and drivers
cd ${MY_ROOT} && \
mkdir /tmp/opencl && \
cd /tmp/opencl && \
yum install -y epel-release && \
yum install -y ocl-icd ocl-icd-devel && \
wget -O intel-igc-core-1.0.2597-1.el7.x86_64.rpm https://sourceforge.net/projects/intel-compute-runtime/files/19.41.14441/centos-7/intel-igc-core-1.0.2597-1.el7.x86_64.rpm/download && \
wget -O intel-opencl-19.41.14441-1.el7.x86_64.rpm https://sourceforge.net/projects/intel-compute-runtime/files/19.41.14441/centos-7/intel-opencl-19.41.14441-1.el7.x86_64.rpm/download && \
wget -O intel-igc-opencl-devel-1.0.2597-1.el7.x86_64.rpm https://sourceforge.net/projects/intel-compute-runtime/files/19.41.14441/centos-7/intel-igc-opencl-devel-1.0.2597-1.el7.x86_64.rpm/download && \
wget -O intel-igc-opencl-1.0.2597-1.el7.x86_64.rpm https://sourceforge.net/projects/intel-compute-runtime/files/19.41.14441/centos-7/intel-igc-opencl-1.0.2597-1.el7.x86_64.rpm/download && \
wget -O intel-gmmlib-19.3.2-1.el7.x86_64.rpm https://sourceforge.net/projects/intel-compute-runtime/files/19.41.14441/centos-7/intel-gmmlib-19.3.2-1.el7.x86_64.rpm/download && \
wget -O intel-gmmlib-devel-19.3.2-1.el7.x86_64.rpm https://sourceforge.net/projects/intel-compute-runtime/files/19.41.14441/centos-7/intel-gmmlib-devel-19.3.2-1.el7.x86_64.rpm/download && \
rpm -i /tmp/opencl/*.rpm && \
ldconfig && \
rm -rf /tmp/opencl && \
# Installing gcc-10
yum install -y centos-release-scl && \
yum install -y devtoolset-10-gcc* && \
echo 'source scl_source enable devtoolset-10' >> ~/.bashrc && \
# python installation
source scl_source enable devtoolset-10 && \
cd /code/ && \
wget https://www.python.org/ftp/python/3.8.3/Python-3.8.3.tgz && tar xvf Python-3.8.3.tgz && \
cd Python-3.8*/ && ./configure && make && make install && \
cd ../ && mkdir -p /usr/bin/Python38 && ln -s Python-3.8.3/ /usr/bin/Python38 && \
# installing dependancies
yum install -y python3-lxml python3-six libusb.x86_64 && \
yum clean packages && yum clean all && rm -rf /var/cache/yum && \
# Build onnxruntime
cd $MY_ROOT && \
pip3 install numpy wheel setuptools cython && \
git clone --recursive -b ${ONNXRUNTIME_BRANCH} ${ONNXRUNTIME_REPO} && \
pip3 install onnx && \
cd /code/onnxruntime && ./build.sh --config Release --update --build --parallel --use_openvino ${DEVICE} --build_shared_lib --build_wheel && \
pip3 install /code/onnxruntime/build/Linux/Release/dist/*-linux_x86_64.whl && \
# Clean up
cd $MY_ROOT && rm -rf onnxruntime Python-3* && \
cd ${MY_ROOT}/ && rm -rf cmake* && \
cd /usr/share/ && rm -rf gcc* && cd /usr/lib/ && rm -rf gcc cd && rm -rf .cache && \
cd ${INTEL_OPENVINO_DIR}/ && rm -rf documentation data_processing && cd deployment_tools/ && rm -rf tools