From 6bc7562f289acec155285e92a0f47a2e853fd4c1 Mon Sep 17 00:00:00 2001 From: Ilya Lavrenov Date: Wed, 14 Feb 2024 10:56:27 +0400 Subject: [PATCH] Added NPU to Debian packages (#22800) ### Details: - *item1* - *...* ### Tickets: - *ticket-id* --- .../packaging/debian/debian.cmake | 2 +- cmake/packaging/debian.cmake | 25 +++++++++++++++++-- cmake/packaging/rpm.cmake | 13 ++++++++-- .../install-openvino-apt.rst | 1 - .../install-openvino-pip.rst | 1 - 5 files changed, 35 insertions(+), 7 deletions(-) diff --git a/cmake/developer_package/packaging/debian/debian.cmake b/cmake/developer_package/packaging/debian/debian.cmake index d8e7bdc869b..fbff0d3828b 100644 --- a/cmake/developer_package/packaging/debian/debian.cmake +++ b/cmake/developer_package/packaging/debian/debian.cmake @@ -153,7 +153,7 @@ macro(ov_debian_specific_settings) list(APPEND CPACK_DEBIAN_PACKAGE_SHLIBDEPS_PRIVATE_DIRS "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${config}") endforeach() else() - set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS_PRIVATE_DIRS "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}") + list(APPEND CPACK_DEBIAN_PACKAGE_SHLIBDEPS_PRIVATE_DIRS "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}") endif() else() message(FATAL_ERROR "CMAKE_LIBRARY_OUTPUT_DIRECTORY is empty") diff --git a/cmake/packaging/debian.cmake b/cmake/packaging/debian.cmake index 1d8d4a8cc75..32ebb9aedbc 100644 --- a/cmake/packaging/debian.cmake +++ b/cmake/packaging/debian.cmake @@ -51,8 +51,8 @@ macro(ov_cpack_settings) NOT item MATCHES "^${OV_CPACK_COMP_PYTHON_OPENVINO}_python.*" AND # because in case of .deb package, pyopenvino_package_python${Python3_VERSION_MAJOR}${Python3_VERSION_MINOR} is installed (NOT item MATCHES "^${OV_CPACK_COMP_PYTHON_OPENVINO_PACKAGE}_python.*" OR ENABLE_PYTHON_PACKAGING) AND - # temporary block NVIDIA and NPU - NOT item MATCHES "^(nvidia|npu)$" AND + # temporary block nvidia + NOT item STREQUAL "nvidia" AND # don't install Intel OpenMP NOT item STREQUAL "omp" AND # the same for pugixml @@ -181,6 +181,27 @@ macro(ov_cpack_settings) set(gpu_copyright "generic") endif() + # intel-npu + if(ENABLE_INTEL_NPU OR BUILD_npu OR BUILD_vpux-plugin OR BUILD_applications.ai.vpu-accelerators.vpux-plugin) + set(CPACK_COMPONENT_NPU_DESCRIPTION "Intel® Neural Processing Unit inference plugin") + set(CPACK_COMPONENT_NPU_DEPENDS "${OV_CPACK_COMP_CORE}") + set(CPACK_DEBIAN_NPU_PACKAGE_NAME "libopenvino-intel-npu-plugin-${cpack_name_ver}") + set(CPACK_DEBIAN_NPU_PACKAGE_CONTROL_EXTRA "${def_postinst};${def_postrm}") + _ov_add_plugin(npu OFF) + set(npu_copyright "generic") + + # NPU plugin also builds level-zero as thirdparty + # let's add it to the list of dependency search directories to avoid missing dependncy on libze_loader.so.1 + if(OV_GENERATOR_MULTI_CONFIG) + # $ generator expression does not work in this place, have to add all possible configs + foreach(config IN LISTS CMAKE_CONFIGURATION_TYPES) + list(APPEND CPACK_DEBIAN_PACKAGE_SHLIBDEPS_PRIVATE_DIRS "${CMAKE_BINARY_DIR}/lib/${config}") + endforeach() + else() + list(APPEND CPACK_DEBIAN_PACKAGE_SHLIBDEPS_PRIVATE_DIRS "${CMAKE_BINARY_DIR}/lib") + endif() + endif() + # # add pseudo plugins are recommended to core component # if(pseudo_plugins_recommends) # # see https://superuser.com/questions/70031/what-is-the-difference-between-recommended-and-suggested-packages-ubuntu. diff --git a/cmake/packaging/rpm.cmake b/cmake/packaging/rpm.cmake index 55d52a40358..a77aa17a1aa 100644 --- a/cmake/packaging/rpm.cmake +++ b/cmake/packaging/rpm.cmake @@ -37,8 +37,8 @@ macro(ov_cpack_settings) NOT item MATCHES "^${OV_CPACK_COMP_PYTHON_OPENVINO}_python.*" AND # because in case of .rpm package, pyopenvino_package_python${Python3_VERSION_MAJOR}${Python3_VERSION_MINOR} is installed (NOT item MATCHES "^${OV_CPACK_COMP_PYTHON_OPENVINO_PACKAGE}_python.*" OR ENABLE_PYTHON_PACKAGING) AND - # temporary block NVIDIA and NPU - NOT item MATCHES "^(nvidia|npu)$" AND + # temporary block nvidia + NOT item STREQUAL "nvidia" AND # don't install Intel OpenMP NOT item STREQUAL "omp" AND # the same for pugixml @@ -177,6 +177,15 @@ macro(ov_cpack_settings) set(gpu_copyright "generic") endif() + # intel-npu + if(ENABLE_INTEL_NPU OR BUILD_npu OR BUILD_vpux-plugin OR BUILD_applications.ai.vpu-accelerators.vpux-plugin) + set(CPACK_COMPONENT_NPU_DESCRIPTION "Intel® Neural Processing Unit inference plugin") + set(CPACK_RPM_NPU_PACKAGE_REQUIRES "${core_package}") + set(CPACK_RPM_NPU_PACKAGE_NAME "libopenvino-intel-npu-plugin-${cpack_name_ver}") + _ov_add_package(plugin_packages npu) + set(npu_copyright "generic") + endif() + # # Frontends # diff --git a/docs/articles_en/get-started/install-openvino-overview/install-openvino-linux-header/install-openvino-apt.rst b/docs/articles_en/get-started/install-openvino-overview/install-openvino-linux-header/install-openvino-apt.rst index ff3b4778958..7d593d907ee 100644 --- a/docs/articles_en/get-started/install-openvino-overview/install-openvino-linux-header/install-openvino-apt.rst +++ b/docs/articles_en/get-started/install-openvino-overview/install-openvino-linux-header/install-openvino-apt.rst @@ -13,7 +13,6 @@ Install Intel® Distribution of OpenVINO™ Toolkit for Linux Using APT Reposito Note that the APT distribution: * offers both C/C++ and Python APIs - * does not offer support for NPU inference * is dedicated to Linux users only * additionally includes code samples diff --git a/docs/articles_en/get-started/install-openvino-overview/install-openvino-shared/install-openvino-pip.rst b/docs/articles_en/get-started/install-openvino-overview/install-openvino-shared/install-openvino-pip.rst index 6b7475a9858..1a80152624a 100644 --- a/docs/articles_en/get-started/install-openvino-overview/install-openvino-shared/install-openvino-pip.rst +++ b/docs/articles_en/get-started/install-openvino-overview/install-openvino-shared/install-openvino-pip.rst @@ -16,7 +16,6 @@ Install Intel® Distribution of OpenVINO™ Toolkit from PyPI Repository * offers the Python API only * is dedicated to users of all major OSes: Windows, Linux, and macOS (all x86_64 / arm64 architectures) - * Windows and Linux do not offer support for NPU inference * macOS offers support only for CPU inference .. tab-set::