From 672e40bac21df501730917e879eef0355c4edc2f Mon Sep 17 00:00:00 2001 From: George Wu Date: Sat, 9 May 2020 00:11:29 +0000 Subject: [PATCH] fix dnnl ep shared lib python packaging. (#3875) --- cmake/onnxruntime_python.cmake | 3 ++- onnxruntime/core/framework/provider_bridge_ort.cc | 2 ++ setup.py | 6 ++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/cmake/onnxruntime_python.cmake b/cmake/onnxruntime_python.cmake index cb4f4fc8d5..ef87de09f8 100644 --- a/cmake/onnxruntime_python.cmake +++ b/cmake/onnxruntime_python.cmake @@ -247,7 +247,8 @@ add_custom_command( if (onnxruntime_USE_DNNL) add_custom_command( TARGET onnxruntime_pybind11_state POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy ${DNNL_DLL_PATH} + COMMAND ${CMAKE_COMMAND} -E copy + ${DNNL_DLL_PATH} $ $/onnxruntime/capi/ ) endif() diff --git a/onnxruntime/core/framework/provider_bridge_ort.cc b/onnxruntime/core/framework/provider_bridge_ort.cc index a69831aea7..14a2d5461d 100644 --- a/onnxruntime/core/framework/provider_bridge_ort.cc +++ b/onnxruntime/core/framework/provider_bridge_ort.cc @@ -538,6 +538,8 @@ struct IExecutionProviderFactory_Translator : IExecutionProviderFactory { std::shared_ptr CreateExecutionProviderFactory_Dnnl(int device_id) { #ifdef _WIN32 static ProviderLibrary library("onnxruntime_providers_dnnl.dll"); +#elif defined(__APPLE__) + static ProviderLibrary library("libonnxruntime_providers_dnnl.dylib"); #else static ProviderLibrary library("libonnxruntime_providers_dnnl.so"); #endif diff --git a/setup.py b/setup.py index c3c0c6ec02..40fd15db30 100644 --- a/setup.py +++ b/setup.py @@ -139,6 +139,8 @@ except ImportError as error: # Additional binaries if platform.system() == 'Linux': libs = ['onnxruntime_pybind11_state.so', 'libdnnl.so.1', 'libmklml_intel.so', 'libiomp5.so', 'mimalloc.so'] + # dnnl EP is built as shared lib + libs.extend(['libonnxruntime_providers_dnnl.so']) # nGraph Libs libs.extend(['libngraph.so', 'libcodegen.so', 'libcpu_backend.so', 'libmkldnn.so', 'libtbb_debug.so', 'libtbb_debug.so.2', 'libtbb.so', 'libtbb.so.2']) # OpenVINO Libs @@ -151,10 +153,14 @@ if platform.system() == 'Linux': libs.extend(['libonnxruntime_pywrapper.so']) elif platform.system() == "Darwin": libs = ['onnxruntime_pybind11_state.so', 'libdnnl.1.dylib', 'mimalloc.so'] # TODO add libmklml and libiomp5 later. + # dnnl EP is built as shared lib + libs.extend(['libonnxruntime_providers_dnnl.dylib']) if nightly_build: libs.extend(['libonnxruntime_pywrapper.dylib']) else: libs = ['onnxruntime_pybind11_state.pyd', 'dnnl.dll', 'mklml.dll', 'libiomp5md.dll'] + # dnnl EP is built as dll + libs.extend(['onnxruntime_providers_dnnl.dll']) libs.extend(['ngraph.dll', 'cpu_backend.dll', 'tbb.dll', 'mimalloc-override.dll', 'mimalloc-redirect.dll', 'mimalloc-redirect32.dll']) # Nuphar Libs libs.extend(['tvm.dll'])