mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-05-18 21:21:17 +00:00
UEP 4.1 release (#11834)
* Add pypi build changes to latest Master * Add ORT training part of OV build * Disabling SqueezeOpTest.BadAxes * Add ONNXruntime branch ARG to Docker build * Changes to include file details versions * Commit File Version Updates * Change naming for linux build * Add fix for pylint format errors * Fix pylint warnings. * Fix pylint errors - stage 2 Signed-off-by: Preetha Veeramalai <preetha.veeramalai@intel.com> * Fix pylint errors - stage 3 * Fix pylint format - stage4 Signed-off-by: Preetha Veeramalai <preetha.veeramalai@intel.com> * Commit for Wheel Release >0.35.1 Co-authored-by: Preetha Veeramalai <preetha.veeramalai@intel.com> Co-authored-by: mayavijx <mayax.vijayan@intel.com> Co-authored-by: Sahar Fatima <sfatima.3001@gmail.com> Co-authored-by: nmaajidk <n.maajid.khan@intel.com>
This commit is contained in:
parent
a93fe7824a
commit
f97bd38c4f
9 changed files with 276 additions and 10 deletions
|
|
@ -105,6 +105,7 @@ target_compile_definitions(onnxruntime PRIVATE VER_MINOR=${VERSION_MINOR_PART})
|
|||
target_compile_definitions(onnxruntime PRIVATE VER_BUILD=${VERSION_BUILD_PART})
|
||||
target_compile_definitions(onnxruntime PRIVATE VER_PRIVATE=${VERSION_PRIVATE_PART})
|
||||
target_compile_definitions(onnxruntime PRIVATE VER_STRING=\"${VERSION_STRING}\")
|
||||
target_compile_definitions(onnxruntime PRIVATE FILE_NAME=\"onnxruntime.dll\")
|
||||
|
||||
if(UNIX)
|
||||
if (APPLE)
|
||||
|
|
|
|||
|
|
@ -316,10 +316,18 @@ if (NOT onnxruntime_MINIMAL_BUILD AND NOT onnxruntime_EXTENDED_MINIMAL_BUILD
|
|||
)
|
||||
|
||||
source_group(TREE ${ONNXRUNTIME_ROOT}/core FILES ${onnxruntime_providers_shared_cc_srcs})
|
||||
onnxruntime_add_shared_library(onnxruntime_providers_shared ${onnxruntime_providers_shared_cc_srcs})
|
||||
onnxruntime_add_shared_library(onnxruntime_providers_shared ${onnxruntime_providers_shared_cc_srcs} "${ONNXRUNTIME_ROOT}/core/dll/onnxruntime.rc")
|
||||
set_target_properties(onnxruntime_providers_shared PROPERTIES FOLDER "ONNXRuntime")
|
||||
set_target_properties(onnxruntime_providers_shared PROPERTIES LINKER_LANGUAGE CXX)
|
||||
|
||||
target_compile_definitions(onnxruntime_providers_shared PRIVATE VER_MAJOR=${VERSION_MAJOR_PART})
|
||||
target_compile_definitions(onnxruntime_providers_shared PRIVATE VER_MINOR=${VERSION_MINOR_PART})
|
||||
target_compile_definitions(onnxruntime_providers_shared PRIVATE VER_BUILD=${VERSION_BUILD_PART})
|
||||
target_compile_definitions(onnxruntime_providers_shared PRIVATE VER_PRIVATE=${VERSION_PRIVATE_PART})
|
||||
target_compile_definitions(onnxruntime_providers_shared PRIVATE VER_STRING=\"${VERSION_STRING}\")
|
||||
target_compile_definitions(onnxruntime_providers_shared PRIVATE FILE_NAME=\"onnxruntime_providers_shared.dll\")
|
||||
|
||||
|
||||
# On Apple/Unix we don't directly link with this library as we load it with RTLD_GLOBAL, so this is only set to the actual library on WIN32
|
||||
set(ONNXRUNTIME_PROVIDERS_SHARED)
|
||||
|
||||
|
|
@ -797,7 +805,7 @@ if (onnxruntime_USE_OPENVINO)
|
|||
endif()
|
||||
|
||||
source_group(TREE ${ONNXRUNTIME_ROOT}/core FILES ${onnxruntime_providers_openvino_cc_srcs})
|
||||
onnxruntime_add_shared_library_module(onnxruntime_providers_openvino ${onnxruntime_providers_openvino_cc_srcs})
|
||||
onnxruntime_add_shared_library_module(onnxruntime_providers_openvino ${onnxruntime_providers_openvino_cc_srcs} "${ONNXRUNTIME_ROOT}/core/dll/onnxruntime.rc")
|
||||
onnxruntime_add_include_to_target(onnxruntime_providers_openvino onnxruntime_common onnx)
|
||||
install(DIRECTORY ${PROJECT_SOURCE_DIR}/../include/onnxruntime/core/providers/openvino DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/onnxruntime/core/providers)
|
||||
set_target_properties(onnxruntime_providers_openvino PROPERTIES LINKER_LANGUAGE CXX)
|
||||
|
|
@ -808,6 +816,13 @@ if (onnxruntime_USE_OPENVINO)
|
|||
add_dependencies(onnxruntime_providers_openvino onnxruntime_providers_shared ${onnxruntime_EXTERNAL_DEPENDENCIES})
|
||||
target_include_directories(onnxruntime_providers_openvino SYSTEM PUBLIC ${ONNXRUNTIME_ROOT} ${CMAKE_CURRENT_BINARY_DIR} ${eigen_INCLUDE_DIRS} ${OpenVINO_INCLUDE_DIR} ${OPENVINO_INCLUDE_DIR_LIST} ${PYTHON_INCLUDE_DIRS} $ENV{OPENCL_INCS})
|
||||
target_link_libraries(onnxruntime_providers_openvino ${ONNXRUNTIME_PROVIDERS_SHARED} ${OPENVINO_LIB_LIST} ${ABSEIL_LIBS})
|
||||
|
||||
target_compile_definitions(onnxruntime_providers_openvino PRIVATE VER_MAJOR=${VERSION_MAJOR_PART})
|
||||
target_compile_definitions(onnxruntime_providers_openvino PRIVATE VER_MINOR=${VERSION_MINOR_PART})
|
||||
target_compile_definitions(onnxruntime_providers_openvino PRIVATE VER_BUILD=${VERSION_BUILD_PART})
|
||||
target_compile_definitions(onnxruntime_providers_openvino PRIVATE VER_PRIVATE=${VERSION_PRIVATE_PART})
|
||||
target_compile_definitions(onnxruntime_providers_openvino PRIVATE VER_STRING=\"${VERSION_STRING}\")
|
||||
target_compile_definitions(onnxruntime_providers_openvino PRIVATE FILE_NAME=\"onnxruntime_providers_openvino.dll\")
|
||||
|
||||
if(MSVC)
|
||||
target_compile_options(onnxruntime_providers_openvino PUBLIC /wd4099 /wd4275 /wd4100 /wd4005 /wd4244 /wd4267)
|
||||
|
|
|
|||
|
|
@ -698,6 +698,19 @@ if (onnxruntime_USE_OPENVINO)
|
|||
)
|
||||
endif()
|
||||
|
||||
if (DEFINED ENV{OPENVINO_MANYLINUX})
|
||||
file(GLOB onnxruntime_python_openvino_python_srcs CONFIGURE_DEPENDS
|
||||
"${ONNXRUNTIME_ROOT}/core/providers/openvino/scripts/*"
|
||||
)
|
||||
|
||||
add_custom_command(
|
||||
TARGET onnxruntime_pybind11_state POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${onnxruntime_python_openvino_python_srcs}
|
||||
$<TARGET_FILE_DIR:${build_output_target}>/onnxruntime/capi/
|
||||
)
|
||||
endif()
|
||||
|
||||
if (onnxruntime_USE_CUDA)
|
||||
add_custom_command(
|
||||
TARGET onnxruntime_pybind11_state POST_BUILD
|
||||
|
|
|
|||
79
docs/python/ReadMeOV.rst
Normal file
79
docs/python/ReadMeOV.rst
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
OpenVINO™ Execution Provider for ONNX Runtime
|
||||
===============================================
|
||||
|
||||
`OpenVINO™ Execution Provider for ONNX Runtime <https://onnxruntime.ai/docs/execution-providers/OpenVINO-ExecutionProvider.html>`_ is a product designed for ONNX Runtime developers who want to get started with OpenVINO™ in their inferencing applications. This product delivers `OpenVINO™ <https://software.intel.com/content/www/us/en/develop/tools/openvino-toolkit.html>`_ inline optimizations which enhance inferencing performance with minimal code modifications.
|
||||
|
||||
OpenVINO™ Execution Provider for ONNX Runtime accelerates inference across many `AI models <https://github.com/onnx/models>`_ on a variety of Intel® hardware such as:
|
||||
- Intel® CPUs
|
||||
- Intel® integrated GPUs
|
||||
- Intel® Movidius™ Vision Processing Units - referred to as VPU.
|
||||
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
Requirements
|
||||
^^^^^^^^^^^^
|
||||
|
||||
- Ubuntu 18.04, 20.04, RHEL(CPU only) or Windows 10 - 64 bit
|
||||
- Python 3.7, 3.8 or 3.9
|
||||
|
||||
This package supports:
|
||||
- Intel® CPUs
|
||||
- Intel® integrated GPUs
|
||||
- Intel® Movidius™ Vision Processing Units (VPUs).
|
||||
|
||||
Please Note for VAD-M use Docker installation / Build from Source for Linux.
|
||||
|
||||
``pip3 install onnxruntime-openvino==1.12.0``
|
||||
|
||||
Windows release supports only Python 3.9. Please install OpenVINO™ PyPi Package separately for Windows.
|
||||
For installation instructions on Windows please refer to `OpenVINO™ Execution Provider for ONNX Runtime for Windows <https://github.com/intel/onnxruntime/releases/>`_.
|
||||
|
||||
This **OpenVINO™ Execution Provider for ONNX Runtime** Linux Wheels comes with pre-built libraries of OpenVINO™ version 2022.1.0 meaning you do not have to install OpenVINO™ separately. CXX11_ABI flag for pre built OpenVINO™ libraries is 0. The package also comes with `ONNX Runtime Training module <https://github.com/intel/onnxruntime/tree/master/orttraining/>`_ to enable inferencing of torch models using `ORT <https://github.com/pytorch/ort>`_.
|
||||
|
||||
For more details on build and installation please refer to `Build <https://onnxruntime.ai/docs/build/eps.html#openvino>`_.
|
||||
|
||||
Usage
|
||||
^^^^^
|
||||
|
||||
By default, Intel® CPU is used to run inference. However, you can change the default option to either Intel® integrated GPU or Intel® VPU for AI inferencing. Invoke the following function to change the hardware on which inferencing is done.
|
||||
|
||||
For more API calls and environment variables, see `Usage <https://onnxruntime.ai/docs/execution-providers/OpenVINO-ExecutionProvider.html#configuration-options>`_.
|
||||
|
||||
Samples
|
||||
^^^^^^^^
|
||||
|
||||
To see what you can do with **OpenVINO™ Execution Provider for ONNX Runtime**, explore the demos located in the `Examples <https://github.com/microsoft/onnxruntime-inference-examples/tree/main/python/OpenVINO_EP>`_.
|
||||
|
||||
Docker Support
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
The latest OpenVINO™ EP docker image can be downloaded from DockerHub.
|
||||
For more details see `Docker ReadMe <https://hub.docker.com/r/openvino/onnxruntime_ep_ubuntu18>`_.
|
||||
|
||||
|
||||
Prebuilt Images
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
- Please find prebuilt docker images for Intel® CPU and Intel® iGPU on OpenVINO™ Execution Provider `Release Page <https://github.com/intel/onnxruntime/releases/>`_.
|
||||
|
||||
License
|
||||
^^^^^^^^
|
||||
|
||||
**OpenVINO™ Execution Provider for ONNX Runtime** is licensed under `MIT <https://github.com/microsoft/onnxruntime/blob/master/LICENSE>`_.
|
||||
By contributing to the project, you agree to the license and copyright terms therein
|
||||
and release your contribution under these terms.
|
||||
|
||||
Support
|
||||
^^^^^^^^
|
||||
|
||||
Please submit your questions, feature requests and bug reports via `GitHub Issues <https://github.com/microsoft/onnxruntime/issues>`_.
|
||||
|
||||
How to Contribute
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
|
||||
We welcome community contributions to **OpenVINO™ Execution Provider for ONNX Runtime**. If you have an idea for improvement:
|
||||
|
||||
* Share your proposal via `GitHub Issues <https://github.com/microsoft/onnxruntime/issues>`_.
|
||||
* Submit a `Pull Request <https://github.com/microsoft/onnxruntime/pulls>`_.
|
||||
|
|
@ -22,6 +22,7 @@ FILEFLAGS VER_DEBUG
|
|||
FILEOS VOS__WINDOWS32
|
||||
FILETYPE VFT_DLL
|
||||
FILESUBTYPE VFT2_UNKNOWN
|
||||
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
|
|
@ -32,7 +33,7 @@ BEGIN
|
|||
VALUE "FileVersion", VER_STRING
|
||||
VALUE "InternalName", "ONNX Runtime"
|
||||
VALUE "LegalCopyright", "\251 Microsoft Corporation. All rights reserved."
|
||||
VALUE "OriginalFilename", "onnxruntime.dll"
|
||||
VALUE "OriginalFilename", FILE_NAME
|
||||
VALUE "ProductName", "Microsoft\256 Windows\256 Operating System"
|
||||
VALUE "ProductVersion", VER_STRING
|
||||
END
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ TEST(SqueezeOpTest, BadAxes) {
|
|||
test.AddOutput<float>("squeezed", {3, 4, 5}, std::vector<float>(60, 1.0f));
|
||||
|
||||
// Expect failure.
|
||||
test.Run(OpTester::ExpectResult::kExpectFailure, "Dimension of input 0 must be 1 instead of 3", {kTensorrtExecutionProvider});
|
||||
test.Run(OpTester::ExpectResult::kExpectFailure, "Dimension of input 0 must be 1 instead of 3", {kTensorrtExecutionProvider, kOpenVINOExecutionProvider});
|
||||
}
|
||||
|
||||
TEST(SqueezeOpTest, SqueezeNegAxis_2) {
|
||||
|
|
|
|||
85
setup.py
85
setup.py
|
|
@ -10,11 +10,13 @@ import sys
|
|||
from distutils import log as logger
|
||||
from distutils.command.build_ext import build_ext as _build_ext
|
||||
from glob import glob, iglob
|
||||
from os import environ, getcwd, path, remove
|
||||
from os import environ, getcwd, path, popen, remove
|
||||
from pathlib import Path
|
||||
from shutil import copyfile
|
||||
|
||||
from setuptools import Extension, setup
|
||||
from setuptools.command.install import install as InstallCommandBase
|
||||
from wheel.vendored.packaging.tags import sys_tags
|
||||
|
||||
nightly_build = False
|
||||
package_name = "onnxruntime"
|
||||
|
|
@ -52,6 +54,7 @@ wheel_name_suffix = parse_arg_remove_string(sys.argv, "--wheel_name_suffix=")
|
|||
cuda_version = None
|
||||
rocm_version = None
|
||||
is_rocm = False
|
||||
is_openvino = False
|
||||
# The following arguments are mutually exclusive
|
||||
if wheel_name_suffix == "gpu":
|
||||
# TODO: how to support multiple CUDA versions?
|
||||
|
|
@ -61,6 +64,7 @@ elif parse_arg_remove_boolean(sys.argv, "--use_rocm"):
|
|||
package_name = "onnxruntime-rocm" if not nightly_build else "ort-rocm-nightly"
|
||||
rocm_version = parse_arg_remove_string(sys.argv, "--rocm_version=")
|
||||
elif parse_arg_remove_boolean(sys.argv, "--use_openvino"):
|
||||
is_openvino = True
|
||||
package_name = "onnxruntime-openvino"
|
||||
elif parse_arg_remove_boolean(sys.argv, "--use_dnnl"):
|
||||
package_name = "onnxruntime-dnnl"
|
||||
|
|
@ -113,6 +117,24 @@ try:
|
|||
from wheel.bdist_wheel import bdist_wheel as _bdist_wheel
|
||||
|
||||
class bdist_wheel(_bdist_wheel):
|
||||
"""Helper functions to create wheel package"""
|
||||
|
||||
if is_openvino and is_manylinux:
|
||||
|
||||
def get_tag(self):
|
||||
_, _, plat = _bdist_wheel.get_tag(self)
|
||||
if platform.system() == "Linux":
|
||||
# Get the right platform tag by querying the linker version
|
||||
glibc_major, glibc_minor = popen("ldd --version | head -1").read().split()[-1].split(".")
|
||||
"""# See https://github.com/mayeut/pep600_compliance/blob/master/
|
||||
pep600_compliance/tools/manylinux-policy.json"""
|
||||
if glibc_major == "2" and glibc_minor == "17":
|
||||
plat = "manylinux_2_17_x86_64.manylinux2014_x86_64"
|
||||
else: # For manylinux2014 and above, no alias is required
|
||||
plat = "manylinux_%s_%s_x86_64" % (glibc_major, glibc_minor)
|
||||
tags = next(sys_tags())
|
||||
return (tags.interpreter, tags.abi, plat)
|
||||
|
||||
def finalize_options(self):
|
||||
_bdist_wheel.finalize_options(self)
|
||||
if not is_manylinux:
|
||||
|
|
@ -235,11 +257,21 @@ try:
|
|||
if len(args) > 3:
|
||||
subprocess.run(args, check=True, stdout=subprocess.PIPE)
|
||||
|
||||
dest = "onnxruntime/capi/libonnxruntime_providers_openvino.so"
|
||||
if path.isfile(dest):
|
||||
subprocess.run(
|
||||
["patchelf", "--set-rpath", "$ORIGIN", dest, "--force-rpath"],
|
||||
check=True,
|
||||
stdout=subprocess.PIPE,
|
||||
universal_newlines=True,
|
||||
)
|
||||
|
||||
self._rewrite_ld_preload(to_preload)
|
||||
self._rewrite_ld_preload_cuda(to_preload_cuda)
|
||||
self._rewrite_ld_preload_tensorrt(to_preload_tensorrt)
|
||||
_bdist_wheel.run(self)
|
||||
if is_manylinux and not disable_auditwheel_repair:
|
||||
if is_manylinux and not disable_auditwheel_repair and not is_openvino:
|
||||
assert self.dist_dir is not None
|
||||
file = glob(path.join(self.dist_dir, "*linux*.whl"))[0]
|
||||
logger.info("repairing %s for manylinux1", file)
|
||||
try:
|
||||
|
|
@ -255,9 +287,22 @@ except ImportError as error:
|
|||
print(error)
|
||||
bdist_wheel = None
|
||||
|
||||
|
||||
class InstallCommand(InstallCommandBase):
|
||||
def finalize_options(self):
|
||||
ret = InstallCommandBase.finalize_options(self)
|
||||
self.install_lib = self.install_platlib
|
||||
return ret
|
||||
|
||||
|
||||
providers_cuda_or_rocm = "libonnxruntime_providers_" + ("rocm.so" if is_rocm else "cuda.so")
|
||||
providers_tensorrt_or_migraphx = "libonnxruntime_providers_" + ("migraphx.so" if is_rocm else "tensorrt.so")
|
||||
providers_openvino = "libonnxruntime_providers_openvino.so"
|
||||
|
||||
# Additional binaries
|
||||
dl_libs = []
|
||||
libs = []
|
||||
|
||||
if platform.system() == "Linux":
|
||||
libs = [
|
||||
"onnxruntime_pybind11_state.so",
|
||||
|
|
@ -305,6 +350,31 @@ else:
|
|||
libs.extend(["onnxruntime_pywrapper.dll"])
|
||||
|
||||
if is_manylinux:
|
||||
if is_openvino:
|
||||
ov_libs = [
|
||||
"libopenvino_intel_cpu_plugin.so",
|
||||
"libopenvino_intel_gpu_plugin.so",
|
||||
"libopenvino_intel_myriad_plugin.so",
|
||||
"libopenvino_auto_plugin.so",
|
||||
"libopenvino_hetero_plugin.so",
|
||||
"libtbb.so.2",
|
||||
"libtbbmalloc.so.2",
|
||||
"libopenvino.so",
|
||||
"libopenvino_c.so",
|
||||
"libopenvino_onnx_frontend.so",
|
||||
]
|
||||
for x in ov_libs:
|
||||
y = "onnxruntime/capi/" + x
|
||||
subprocess.run(
|
||||
["patchelf", "--set-rpath", "$ORIGIN", y, "--force-rpath"],
|
||||
check=True,
|
||||
stdout=subprocess.PIPE,
|
||||
universal_newlines=True,
|
||||
)
|
||||
dl_libs.append(x)
|
||||
dl_libs.append(providers_openvino)
|
||||
dl_libs.append("plugins.xml")
|
||||
dl_libs.append("usb-ma2x8x.mvcmd")
|
||||
data = ["capi/libonnxruntime_pywrapper.so"] if nightly_build else []
|
||||
data += [path.join("capi", x) for x in dl_libs if path.isfile(path.join("onnxruntime", "capi", x))]
|
||||
ext_modules = [
|
||||
|
|
@ -325,10 +395,12 @@ examples = [path.join("datasets", x) for x in examples_names]
|
|||
extra = ["LICENSE", "ThirdPartyNotices.txt", "Privacy.md"]
|
||||
|
||||
# Description
|
||||
README = path.join(getcwd(), "docs/python/README.rst")
|
||||
readme_file = "docs/python/ReadMeOV.rst" if is_openvino else "docs/python/README.rst"
|
||||
README = path.join(getcwd(), readme_file)
|
||||
if not path.exists(README):
|
||||
this = path.dirname(__file__)
|
||||
README = path.join(this, "docs/python/README.rst")
|
||||
README = path.join(this, readme_file)
|
||||
|
||||
if not path.exists(README):
|
||||
raise FileNotFoundError("Unable to find 'README.rst'")
|
||||
with open(README) as f:
|
||||
|
|
@ -437,7 +509,9 @@ if enable_training:
|
|||
# onnxruntime-training-1.7.0.dev20210408+cu111-cp36-cp36m-linux_x86_64.whl
|
||||
# this is needed immediately by pytorch/ort so that the user is able to
|
||||
# install an onnxruntime training package with matching torch cuda version.
|
||||
package_name = "onnxruntime-training"
|
||||
if not is_openvino:
|
||||
# To support the package consisting of both openvino and training modules part of it
|
||||
package_name = "onnxruntime-training"
|
||||
|
||||
# we want put default training packages to pypi. pypi does not accept package with a local version.
|
||||
if not default_training_package_device or nightly_build:
|
||||
|
|
@ -540,6 +614,7 @@ if wheel_name_suffix:
|
|||
cmd_classes = {}
|
||||
if bdist_wheel is not None:
|
||||
cmd_classes["bdist_wheel"] = bdist_wheel
|
||||
cmd_classes["install"] = InstallCommand
|
||||
cmd_classes["build_ext"] = build_ext
|
||||
|
||||
requirements_path = path.join(getcwd(), requirements_file)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,82 @@
|
|||
FROM quay.io/pypa/manylinux2014_x86_64:latest
|
||||
|
||||
ENV PATH /usr/local/gradle/bin:/opt/rh/devtoolset-10/root/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||
ADD scripts /tmp/scripts
|
||||
RUN cd /tmp/scripts && /tmp/scripts/manylinux/install_centos.sh && /tmp/scripts/manylinux/install_deps.sh && rm -rf /tmp/scripts
|
||||
|
||||
ARG PYTHON_VER_PATH="cp36-cp36m"
|
||||
ARG PYTHON_VERSION="3.6"
|
||||
ARG BUILD_UID=1001
|
||||
ARG BUILD_USER=onnxruntimedev
|
||||
ARG OV_DEVICE_PRECISION="CPU_FP32"
|
||||
ARG ENABLE_TRAINING=true
|
||||
ARG ORT_BRANCH="master"
|
||||
RUN adduser --uid $BUILD_UID $BUILD_USER
|
||||
WORKDIR /home/$BUILD_USER
|
||||
ENV PYTHON_EXE="/opt/python/$PYTHON_VER_PATH/bin/python$PYTHON_VERSION"
|
||||
|
||||
RUN yum -y install wget git
|
||||
|
||||
# libusb1.0.22
|
||||
RUN cd /home/ && wget https://github.com/libusb/libusb/archive/v1.0.22.zip && \
|
||||
unzip v1.0.22.zip && rm -rf v1.0.22.zip && cd /home/libusb-1.0.22 && \
|
||||
# bootstrap steps
|
||||
./bootstrap.sh && \
|
||||
./configure --disable-udev --enable-shared && \
|
||||
make -j4 && \
|
||||
# configure libusb1.0.22
|
||||
cd /home/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'
|
||||
|
||||
RUN ${PYTHON_EXE} -m pip install onnx numpy wheel
|
||||
USER $BUILD_USER
|
||||
RUN cd $WORKDIR && git clone https://github.com/openvinotoolkit/openvino.git && \
|
||||
cd openvino && \
|
||||
git checkout 2022.1.0 && \
|
||||
git submodule init && \
|
||||
git submodule update --recursive
|
||||
|
||||
RUN cd $WORKDIR && cd openvino && mkdir build && cd build && \
|
||||
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS=-D_GLIBCXX_USE_CXX11_ABI=0 -DCMAKE_INSTALL_PREFIX=/home/onnxruntimedev/openvino_2022.1.0 && \
|
||||
make -j8 && make install
|
||||
|
||||
ENV INTEL_OPENVINO_DIR /home/onnxruntimedev/openvino_2022.1.0
|
||||
ENV LD_LIBRARY_PATH $INTEL_OPENVINO_DIR/runtime/lib/intel64:$INTEL_OPENVINO_DIR/runtime/3rdparty/tbb/lib:/usr/local/openblas/lib:$LD_LIBRARY_PATH
|
||||
ENV TBB_LIBS $INTEL_OPENVINO_DIR/runtime/3rdparty/tbb/lib
|
||||
ENV InferenceEngine_DIR $INTEL_OPENVINO_DIR/runtime/cmake
|
||||
ENV ngraph_DIR $INTEL_OPENVINO_DIR/runtime/cmake
|
||||
ENV IE_PLUGINS_PATH $INTEL_OPENVINO_DIR/runtime/lib/intel64
|
||||
ENV OPENVINO_MANYLINUX 1
|
||||
|
||||
RUN cd $WORKDIR && \
|
||||
git clone --recursive -b $ORT_BRANCH https://github.com/intel/onnxruntime.git
|
||||
RUN cd onnxruntime/onnxruntime/core/providers/openvino && mkdir scripts
|
||||
|
||||
RUN cp ${IE_PLUGINS_PATH}/libopenvino.so /home/onnxruntimedev/onnxruntime/onnxruntime/core/providers/openvino/scripts/
|
||||
RUN cp ${IE_PLUGINS_PATH}/libopenvino_c.so /home/onnxruntimedev/onnxruntime/onnxruntime/core/providers/openvino/scripts/
|
||||
RUN cp ${IE_PLUGINS_PATH}/libopenvino_onnx_frontend.so /home/onnxruntimedev/onnxruntime/onnxruntime/core/providers/openvino/scripts/
|
||||
RUN cp ${IE_PLUGINS_PATH}/libopenvino_intel_cpu_plugin.so /home/onnxruntimedev/onnxruntime/onnxruntime/core/providers/openvino/scripts/
|
||||
RUN cp ${IE_PLUGINS_PATH}/libopenvino_intel_gpu_plugin.so /home/onnxruntimedev/onnxruntime/onnxruntime/core/providers/openvino/scripts/
|
||||
RUN cp ${IE_PLUGINS_PATH}/libopenvino_intel_myriad_plugin.so /home/onnxruntimedev/onnxruntime/onnxruntime/core/providers/openvino/scripts/
|
||||
RUN cp ${IE_PLUGINS_PATH}/libopenvino_hetero_plugin.so /home/onnxruntimedev/onnxruntime/onnxruntime/core/providers/openvino/scripts/
|
||||
RUN cp ${IE_PLUGINS_PATH}/libopenvino_auto_plugin.so /home/onnxruntimedev/onnxruntime/onnxruntime/core/providers/openvino/scripts/
|
||||
RUN cp ${IE_PLUGINS_PATH}/plugins.xml /home/onnxruntimedev/onnxruntime/onnxruntime/core/providers/openvino/scripts/
|
||||
RUN cp ${IE_PLUGINS_PATH}/usb-ma2x8x.mvcmd /home/onnxruntimedev/onnxruntime/onnxruntime/core/providers/openvino/scripts/
|
||||
RUN cp ${TBB_LIBS}/libtbb.so /home/onnxruntimedev/onnxruntime/onnxruntime/core/providers/openvino/scripts/
|
||||
RUN cp ${TBB_LIBS}/libtbb.so.2 /home/onnxruntimedev/onnxruntime/onnxruntime/core/providers/openvino/scripts/
|
||||
RUN cp ${TBB_LIBS}/libtbbmalloc.so /home/onnxruntimedev/onnxruntime/onnxruntime/core/providers/openvino/scripts/
|
||||
RUN cp ${TBB_LIBS}/libtbbmalloc.so.2 /home/onnxruntimedev/onnxruntime/onnxruntime/core/providers/openvino/scripts/
|
||||
RUN cd /home/onnxruntimedev/onnxruntime && git pull
|
||||
RUN if $ENABLE_TRAINING; then \
|
||||
${PYTHON_EXE} ./onnxruntime/tools/ci_build/build.py \
|
||||
--build_dir ./onnxruntime/build --use_openvino $(OV_DEVICE_PRECISION) --build_shared_lib \
|
||||
--config Release --build_wheel --skip_tests --enable_training ; \
|
||||
else \
|
||||
${PYTHON_EXE} ./onnxruntime/tools/ci_build/build.py \
|
||||
--build_dir ./onnxruntime/build --use_openvino $(OV_DEVICE_PRECISION) --build_shared_lib \
|
||||
--config Release --build_wheel --skip_tests ;\
|
||||
fi
|
||||
|
|
@ -3,7 +3,7 @@ numpy==1.21.0
|
|||
mypy
|
||||
pytest
|
||||
setuptools>=41.4.0
|
||||
wheel
|
||||
wheel>=0.35.1
|
||||
git+http://github.com/onnx/onnx.git@be76ca7148396176784ba8733133b9fb1186ea0d#egg=onnx
|
||||
argparse
|
||||
sympy==1.1.1
|
||||
|
|
|
|||
Loading…
Reference in a new issue