diff --git a/cmake/onnxruntime.cmake b/cmake/onnxruntime.cmake index 320b3ad5dd..700a0e264f 100644 --- a/cmake/onnxruntime.cmake +++ b/cmake/onnxruntime.cmake @@ -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) diff --git a/cmake/onnxruntime_providers.cmake b/cmake/onnxruntime_providers.cmake index ddfc421358..77eac4b6a8 100644 --- a/cmake/onnxruntime_providers.cmake +++ b/cmake/onnxruntime_providers.cmake @@ -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) diff --git a/cmake/onnxruntime_python.cmake b/cmake/onnxruntime_python.cmake index 9bc3bc5091..0e77e63c5e 100644 --- a/cmake/onnxruntime_python.cmake +++ b/cmake/onnxruntime_python.cmake @@ -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} + $/onnxruntime/capi/ + ) +endif() + if (onnxruntime_USE_CUDA) add_custom_command( TARGET onnxruntime_pybind11_state POST_BUILD diff --git a/docs/python/ReadMeOV.rst b/docs/python/ReadMeOV.rst new file mode 100644 index 0000000000..676f98714d --- /dev/null +++ b/docs/python/ReadMeOV.rst @@ -0,0 +1,79 @@ +OpenVINO™ Execution Provider for ONNX Runtime +=============================================== + +`OpenVINO™ Execution Provider for ONNX Runtime `_ is a product designed for ONNX Runtime developers who want to get started with OpenVINO™ in their inferencing applications. This product delivers `OpenVINO™ `_ inline optimizations which enhance inferencing performance with minimal code modifications. + +OpenVINO™ Execution Provider for ONNX Runtime accelerates inference across many `AI 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 `_. + +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 `_ to enable inferencing of torch models using `ORT `_. + +For more details on build and installation please refer to `Build `_. + +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 `_. + +Samples +^^^^^^^^ + +To see what you can do with **OpenVINO™ Execution Provider for ONNX Runtime**, explore the demos located in the `Examples `_. + +Docker Support +^^^^^^^^^^^^^^ + +The latest OpenVINO™ EP docker image can be downloaded from DockerHub. +For more details see `Docker ReadMe `_. + + +Prebuilt Images +^^^^^^^^^^^^^^^^ + +- Please find prebuilt docker images for Intel® CPU and Intel® iGPU on OpenVINO™ Execution Provider `Release Page `_. + +License +^^^^^^^^ + +**OpenVINO™ Execution Provider for ONNX Runtime** is licensed under `MIT `_. +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 `_. + +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 `_. +* Submit a `Pull Request `_. \ No newline at end of file diff --git a/onnxruntime/core/dll/onnxruntime.rc b/onnxruntime/core/dll/onnxruntime.rc index 7ff2dfa026..4b08dfdb7e 100644 --- a/onnxruntime/core/dll/onnxruntime.rc +++ b/onnxruntime/core/dll/onnxruntime.rc @@ -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 diff --git a/onnxruntime/test/providers/cpu/tensor/squeeze_op_test.cc b/onnxruntime/test/providers/cpu/tensor/squeeze_op_test.cc index bb31ef0512..41e9012b32 100644 --- a/onnxruntime/test/providers/cpu/tensor/squeeze_op_test.cc +++ b/onnxruntime/test/providers/cpu/tensor/squeeze_op_test.cc @@ -101,7 +101,7 @@ TEST(SqueezeOpTest, BadAxes) { test.AddOutput("squeezed", {3, 4, 5}, std::vector(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) { diff --git a/setup.py b/setup.py index fad348b5d7..db13319174 100644 --- a/setup.py +++ b/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) diff --git a/tools/ci_build/github/linux/docker/Dockerfile_manylinux2014_openvino_multipython b/tools/ci_build/github/linux/docker/Dockerfile_manylinux2014_openvino_multipython new file mode 100644 index 0000000000..8b2a6da8bc --- /dev/null +++ b/tools/ci_build/github/linux/docker/Dockerfile_manylinux2014_openvino_multipython @@ -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 diff --git a/tools/ci_build/github/linux/docker/scripts/requirements.txt b/tools/ci_build/github/linux/docker/scripts/requirements.txt index 8cec7ebf2a..c716f72620 100644 --- a/tools/ci_build/github/linux/docker/scripts/requirements.txt +++ b/tools/ci_build/github/linux/docker/scripts/requirements.txt @@ -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