-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update Intel libraries (MKL, TBB, IPP). Remove parallelSTL / oneDPL. (#…
…6809) - Add VERSION (API version - major.minor.patch) and SOVERSION (ABI version major.minor) to libOpen3D - Switch to C++17. - Preparing for Intel GPU offload with new MKL (2024.1 for Win, Linux and 2023.2.2 for macOS). - Additional computer vision / image processing functions (e.g. optical flow) from new IPP (2021.11 for Win/Linux and 2021.9.1 for macOS)). No GPU support yet, but get automatic TBB based multi-threading inside image processing operations. - Preparing for OpenMP -> TBB conversion. TBB 2021.12. Replace parallelSTL / oneDPL with TBB. - TBB is now linked dynamically. TBB static linking is not supported and may cause over-subscription / crashes, especially in Python. TBB DSOs are now distributed with Open3D. Add TCM_ENABLE=1 to python to use threading composability manager (if available) to avoid oversubscription. - libc++-10, libc++abi-10 for filament. Later versions also require libunwind. --------- Co-authored-by: Benjamin Ummenhofer <benjamin.ummenhofer@intel.com>
- Loading branch information
Showing
55 changed files
with
495 additions
and
890 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
# Output variables: | ||
# - IPP_INCLUDE_DIR | ||
# - IPP_LIBRARIES | ||
# - IPP_LIB_DIR | ||
# - IPP_VERSION_STRING | ||
# - IPP_VERSION_INT (for version check) | ||
|
||
include(ExternalProject) | ||
|
||
# These archives are created from the pip wheels for ipp-static, ipp-devel and | ||
# ipp-include and excluding the shared libraries to reduce download size. | ||
# Check in order APPLE -> WIN32 -> UNIX, since UNIX may be defined on APPLE / WIN32 as well | ||
set(IPP_VERSION_STRING "2021.11.0") # From ipp/ippversion.h | ||
set(IPP_VERSION_INT 20211100) | ||
if(APPLE AND CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL x86_64) | ||
set(IPP_VERSION_STRING "2021.9.1") # From ipp/ippversion.h | ||
set(IPP_VERSION_INT 20210901) | ||
set(IPP_URL "https://github.com/isl-org/open3d_downloads/releases/download/mkl-static-2024.1/ipp_static-2021.9.1-macosx_10_15_x86_64.tar.xz") | ||
set(IPP_HASH "f27e45da604a1f6d1d2a747a0f67ffafeaff084b0f860a963d8c3996e2f40bb3") | ||
elseif(WIN32 AND CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL AMD64) | ||
set(IPP_URL "https://github.com/isl-org/open3d_downloads/releases/download/mkl-static-2024.1/ipp_static-2021.11.0-win_amd64.zip") | ||
set(IPP_HASH "69e8a7dc891609de6fea478a67659d2f874d12b51a47bd2e3e5a7c4c473c53a6") | ||
elseif(UNIX AND CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL x86_64) | ||
set(IPP_URL "https://github.com/isl-org/open3d_downloads/releases/download/mkl-static-2024.1/ipp_static-2021.11.0-linux_x86_64.tar.xz") | ||
set(IPP_HASH "51f33fd5bf5011e9eae0e034e5cc70a7c0ac0ba93d6a3f66fd7e145cf1a5e30b") | ||
else() | ||
set(WITH_IPP OFF) | ||
message(FATAL_ERROR "Intel IPP disabled: Unsupported Platform.") | ||
return() | ||
endif() | ||
|
||
if(WIN32) | ||
set(IPP_SUBPATH "Library/") | ||
else() | ||
set(IPP_SUBPATH "") | ||
endif() | ||
|
||
ExternalProject_Add(ext_ipp | ||
PREFIX ipp | ||
URL ${IPP_URL} | ||
URL_HASH SHA256=${IPP_HASH} | ||
DOWNLOAD_DIR "${OPEN3D_THIRD_PARTY_DOWNLOAD_DIR}/ipp" | ||
# Copy all libs from lib/tl/tbb to lib/ since Open3D cmake scripts only support one LIB_DIR per dependency | ||
UPDATE_COMMAND ${CMAKE_COMMAND} -E copy_directory <SOURCE_DIR>/${IPP_SUBPATH}lib/tl/tbb/ <SOURCE_DIR>/${IPP_SUBPATH}lib/ | ||
CONFIGURE_COMMAND "" | ||
BUILD_COMMAND "" | ||
INSTALL_COMMAND "" | ||
) | ||
ExternalProject_Get_Property(ext_ipp SOURCE_DIR) | ||
set(IPP_INCLUDE_DIR "${SOURCE_DIR}/${IPP_SUBPATH}include/") | ||
# Threading layer libs must be linked first. | ||
# https://www.intel.com/content/www/us/en/docs/ipp/developer-guide-reference/2021-11/ipp-performace-benefits-with-tl-functions.html | ||
# Library dependency order: | ||
# https://www.intel.com/content/www/us/en/docs/ipp/developer-guide-reference/2021-11/library-dependencies-by-domain.html | ||
if (WIN32) | ||
set(IPP_LIBRARIES ipp_iw ippcvmt_tl_tbb ippcvmt ippimt_tl_tbb ippimt ippccmt_tl_tbb ippccmt ippsmt ippvmmt ippcoremt_tl_tbb ippcoremt) | ||
else() | ||
set(IPP_LIBRARIES ipp_iw ippcv_tl_tbb ippcv ippi_tl_tbb ippi ippcc_tl_tbb ippcc ipps ippvm ippcore_tl_tbb ippcore) | ||
endif() | ||
set(IPP_LIB_DIR "${SOURCE_DIR}/${IPP_SUBPATH}lib") |
Oops, something went wrong.