mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-05-14 20:48:00 +00:00
### Description This PR enables execution of subgraphs in OVEP and currently, when OVEP developers install the onnxruntime-openvino package on windows from pypi, they would have to additionally download OpenVINO windows binaries and run the setupvars.bat script which sets the environment PATH to locate the OV dll's. Also this PR fixes issues of OVEP windows io buffer sample. ### Motivation and Context Fix: We want to make the user experience easy for OVEP Python developers on windows platform. This fix, introduces a function add_openvino_libs_to_path at the location tools/python/util/add_openvino_win_libs.py. The above function, can be called by OVEP python users in the application code and that takes care of setting the OpenVINO dll's to the path from the OpenVINO pypi packge (openvino) which was installed. This change also makes sure that add_openvino_libs_to_path() function is added to onnxruntime python package only when it is build for OpenVINO Execution Provider for ONNXRuntime and not for default ORT python package builds. New user experience for Python OVEP developers on windows platform: step 1: pip install onnxruntime-openvino step 2: pip install openvino step 3: <Add these 2 lines in the application code> import onnxruntime.tools.add_openvino_win_libs as utils utils.add_openvino_libs_to_path() --------- Signed-off-by: MaajidKhan <n.maajid.khan@intel.com> Co-authored-by: MaajidKhan <n.maajid.khan@intel.com> Co-authored-by: Suryaprakash Shanmugam <suryaprakash.shanmugam@intel.com>
90 lines
3.4 KiB
Text
90 lines
3.4 KiB
Text
#-------------------------------------------------------------------------
|
|
# Copyright(C) 2021-2023 Intel Corporation.
|
|
# SPDX-License-Identifier: MIT
|
|
#--------------------------------------------------------------------------
|
|
|
|
ARG OPENVINO_VERSION=2023.0.0
|
|
|
|
# Build stage
|
|
FROM openvino/ubuntu20_runtime:${OPENVINO_VERSION} AS base
|
|
|
|
ENV WORKDIR_PATH=/home/openvino
|
|
WORKDIR $WORKDIR_PATH
|
|
ENV DEBIAN_FRONTEND noninteractive
|
|
|
|
USER root
|
|
RUN apt update; apt install -y --no-install-recommends wget gnupg && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install Mono
|
|
RUN wget http://download.mono-project.com/repo/xamarin.gpg && apt-key add xamarin.gpg && rm xamarin.gpg && \
|
|
echo "deb https://download.mono-project.com/repo/ubuntu stable-bionic main" | tee /etc/apt/sources.list.d/mono-official-stable.list && \
|
|
apt update -y && \
|
|
apt install -y mono-devel
|
|
|
|
# Install nuget.exe
|
|
RUN wget https://dist.nuget.org/win-x86-commandline/latest/nuget.exe && \
|
|
mv nuget.exe /usr/local/bin/nuget.exe && \
|
|
echo 'mono /usr/local/bin/nuget.exe $@' > /usr/local/bin/nuget && \
|
|
chmod a+x /usr/local/bin/nuget
|
|
|
|
# Install .NET core
|
|
RUN wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb && \
|
|
dpkg -i packages-microsoft-prod.deb && \
|
|
apt-get update -y &&\
|
|
apt-get install -y apt-transport-https && \
|
|
apt-get update -y && \
|
|
apt-get install -y dotnet-sdk-5.0
|
|
|
|
# Build stage
|
|
FROM base AS builder
|
|
|
|
ENV WORKDIR_PATH=/home/openvino
|
|
WORKDIR $WORKDIR_PATH
|
|
ENV DEBIAN_FRONTEND noninteractive
|
|
|
|
ARG DEVICE=CPU_FP32
|
|
ARG ONNXRUNTIME_REPO=https://github.com/microsoft/onnxruntime.git
|
|
ARG ONNXRUNTIME_BRANCH=main
|
|
|
|
ENV InferenceEngine_DIR=${INTEL_OPENVINO_DIR}/runtime/cmake
|
|
ENV LANG en_US.UTF-8
|
|
|
|
USER root
|
|
RUN apt update; apt install -y --no-install-recommends git protobuf-compiler libprotobuf-dev ca-certificates unattended-upgrades && \
|
|
unattended-upgrade && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN git clone --recursive -b ${ONNXRUNTIME_BRANCH} ${ONNXRUNTIME_REPO}
|
|
RUN /bin/sh onnxruntime/dockerfiles/scripts/install_common_deps.sh
|
|
RUN ln -s cmake-* cmake-dir
|
|
RUN python3 -m pip install wheel
|
|
ENV PATH=${WORKDIR_PATH}/cmake-dir/bin:$PATH
|
|
RUN pip3 install onnx
|
|
RUN ln -s /usr/bin/python3 /usr/bin/python
|
|
RUN apt install locales && \
|
|
locale-gen en_US en_US.UTF-8 && \
|
|
dpkg-reconfigure locales
|
|
RUN cd onnxruntime && ./build.sh --allow_running_as_root --config Release --update --build --parallel --use_openvino ${DEVICE} --build_nuget --build_shared_lib
|
|
RUN cp /home/openvino/onnxruntime/build/Linux/Release/Microsoft.ML.OnnxRuntime.Managed* /home/openvino/onnxruntime/build/Linux/Release/nuget-artifacts
|
|
|
|
# Deploy stage
|
|
FROM base
|
|
|
|
ENV DEBIAN_FRONTEND noninteractive
|
|
USER root
|
|
|
|
RUN apt update; apt install -y unattended-upgrades fonts-freefont-ttf && \
|
|
unattended-upgrade
|
|
ARG BUILD_UID=1001
|
|
ARG BUILD_USER=onnxruntimedev
|
|
RUN adduser --uid $BUILD_UID $BUILD_USER
|
|
RUN usermod -a -G video,users ${BUILD_USER}
|
|
ENV WORKDIR_PATH /home/${BUILD_USER}
|
|
WORKDIR ${WORKDIR_PATH}
|
|
COPY --from=builder /home/openvino/onnxruntime/build/Linux/Release/nuget-artifacts ${WORKDIR_PATH}/nuget-artifacts
|
|
|
|
USER ${BUILD_USER}
|
|
ENV PATH=${WORKDIR_PATH}/miniconda/bin:${WORKDIR_PATH}/cmake-dir/bin:$PATH
|
|
ENV IE_PLUGINS_PATH=${INTEL_OPENVINO_DIR}/runtime/lib/intel64
|
|
ENV LD_LIBRARY_PATH=/opt/intel/opencl:${INTEL_OPENVINO_DIR}/runtime/3rdparty/tbb/lib:${IE_PLUGINS_PATH}:${LD_LIBRARY_PATH}
|