[cpuinfo,fbgemm,xnnpack] update cpuinfo to latest (#23944)

* [cpuinfo] update to latest

* use official support of CMake find_package

* [cpuinfo] update triplet support

* [nnpack] fix cpuinfo usage

* [qnnpack] fix cpuinfo usage

* [fbgemm] fix cpuinfo usage

* [xnnpack] fix cpuinfo usage

* [cpuinfo] add license

* [nnpack] port license/dependencies

* [qnnpack] port license

* [xnnpack] port license

* [fbgemm] port license

* fix supports

* I think this should work?

* alright, arm&windows is unsupported... for now

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
This commit is contained in:
Park DongHa 2022-04-13 04:47:40 +09:00 committed by GitHub
parent 3286c679bf
commit e809a42f87
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
19 changed files with 117 additions and 126 deletions

View File

@ -1,81 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e2d7d53..6d380e9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -15,6 +15,28 @@ OPTION(CPUINFO_BUILD_UNIT_TESTS "Build cpuinfo unit tests" ON)
OPTION(CPUINFO_BUILD_MOCK_TESTS "Build cpuinfo mock tests" ON)
OPTION(CPUINFO_BUILD_BENCHMARKS "Build cpuinfo micro-benchmarks" ON)
+# Configuration
+set(config_install_dir "lib/cmake/unofficial-${PROJECT_NAME}")
+set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated")
+set(project_config "${generated_dir}/unofficial-${PROJECT_NAME}Config.cmake")
+set(targets_export_name "unofficial-${PROJECT_NAME}Targets")
+set(namespace "unofficial::${PROJECT_NAME}::")
+
+# Include module with fuction 'write_basic_package_version_file'
+include(CMakePackageConfigHelpers)
+configure_package_config_file(
+ "cmake/Config.cmake.in"
+ "${project_config}"
+ INSTALL_DESTINATION "${config_install_dir}"
+)
+install(FILES "${project_config}"
+ DESTINATION "${config_install_dir}"
+)
+install(EXPORT "${targets_export_name}"
+ NAMESPACE "${namespace}"
+ DESTINATION "${config_install_dir}"
+)
+
# ---[ CMake options
INCLUDE(GNUInstallDirs)
@@ -210,7 +232,7 @@ IF(CMAKE_SYSTEM_NAME MATCHES "^(Windows|CYGWIN|MSYS)$")
TARGET_COMPILE_DEFINITIONS(cpuinfo_internals PRIVATE _WIN32_WINNT=0x0601)
ENDIF()
SET_TARGET_PROPERTIES(cpuinfo PROPERTIES PUBLIC_HEADER include/cpuinfo.h)
-TARGET_INCLUDE_DIRECTORIES(cpuinfo BEFORE PUBLIC include)
+TARGET_INCLUDE_DIRECTORIES(cpuinfo BEFORE PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include>)
TARGET_INCLUDE_DIRECTORIES(cpuinfo BEFORE PRIVATE src)
TARGET_INCLUDE_DIRECTORIES(cpuinfo_internals BEFORE PUBLIC include src)
IF(CPUINFO_LOG_LEVEL STREQUAL "default")
@@ -261,6 +283,7 @@ TARGET_LINK_LIBRARIES(cpuinfo PRIVATE clog)
TARGET_LINK_LIBRARIES(cpuinfo_internals PRIVATE clog)
INSTALL(TARGETS cpuinfo
+ EXPORT "${targets_export_name}"
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
diff --git a/cmake/Config.cmake.in b/cmake/Config.cmake.in
new file mode 100644
index 0000000..9b4c9ee
--- /dev/null
+++ b/cmake/Config.cmake.in
@@ -0,0 +1,4 @@
+@PACKAGE_INIT@
+
+include("${CMAKE_CURRENT_LIST_DIR}/@targets_export_name@.cmake")
+check_required_components("@PROJECT_NAME@")
diff --git a/deps/clog/CMakeLists.txt b/deps/clog/CMakeLists.txt
index 083f519..43b5c78 100644
--- a/deps/clog/CMakeLists.txt
+++ b/deps/clog/CMakeLists.txt
@@ -57,7 +57,7 @@ SET_TARGET_PROPERTIES(clog PROPERTIES
C_EXTENSIONS NO)
CLOG_TARGET_RUNTIME_LIBRARY(clog)
SET_TARGET_PROPERTIES(clog PROPERTIES PUBLIC_HEADER include/clog.h)
-TARGET_INCLUDE_DIRECTORIES(clog BEFORE PUBLIC include)
+TARGET_INCLUDE_DIRECTORIES(clog PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include>)
IF(CLOG_LOG_TO_STDIO)
TARGET_COMPILE_DEFINITIONS(clog PRIVATE CLOG_LOG_TO_STDIO=1)
ELSE()
@@ -68,6 +68,7 @@ IF(ANDROID AND NOT CLOG_LOG_TO_STDIO)
ENDIF()
INSTALL(TARGETS clog
+ EXPORT ${targets_export_name}
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")

View File

@ -1,14 +1,14 @@
# On Windows, we can get a cpuinfo.dll, but it exports no symbols.
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
if(VCPKG_TARGET_IS_WINDOWS)
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
endif()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO pytorch/cpuinfo
REF 5916273f79a21551890fd3d56fc5375a78d1598d
SHA512 50e537b61d991e8579577fb1ecf8d9ceb2171dbad96dfe159a062eadfdc0b2372b94988fc6f223c20e327453c7f55042ee06779f5b5fe0922f4470f746c9686b
REF b40bae27785787b6dd70788986fd96434cf90ae2
SHA512 dbbe4f3e1d5ae74ffc8ba2cba0ab745a23f4993788f4947825ef5125dd1cbed3e13e0c98e020e6fcfa9879f54f06d7cba4de73ec29f77649b6a27b4ab82c8f1c
HEAD_REF master
PATCHES
fix-install.patch
)
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
@ -16,23 +16,53 @@ vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
tools CPUINFO_BUILD_TOOLS
)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS_DEBUG
-DCPUINFO_BUILD_TOOLS=OFF
-DCPUINFO_LOG_LEVEL=debug
OPTIONS_RELEASE
${FEATURE_OPTIONS}
-DCPUINFO_LOG_LEVEL=default
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
list(APPEND LINK_OPTIONS -DCPUINFO_LIBRARY_TYPE=shared)
else()
list(APPEND LINK_OPTIONS -DCPUINFO_LIBRARY_TYPE=static)
endif()
if(VCPKG_CRT_LINKAGE STREQUAL "dynamic")
list(APPEND LINK_OPTIONS -DCPUINFO_RUNTIME_TYPE=shared)
else()
list(APPEND LINK_OPTIONS -DCPUINFO_RUNTIME_TYPE=static)
endif()
# hack to get around that toolchains/windows.cmake doesn't set CMAKE_SYSTEM_ARCHITECTURE
set(CPUINFO_TARGET_PROCESSOR_param "")
if(VCPKG_TARGET_IS_WINDOWS)
# NOTE: arm64-windows is unsupported for now;
# see https://github.com/pytorch/cpuinfo/pull/82 for updates
# NOTE: arm-windows is unsupported
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
set(CPUINFO_TARGET_PROCESSOR_param "-DCPUINFO_TARGET_PROCESSOR=x86")
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
set(CPUINFO_TARGET_PROCESSOR_param "-DCPUINFO_TARGET_PROCESSOR=AMD64")
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
set(CPUINFO_TARGET_PROCESSOR_param "-DCPUINFO_TARGET_PROCESSOR=ARM")
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
set(CPUINFO_TARGET_PROCESSOR_param "-DCPUINFO_TARGET_PROCESSOR=ARM64")
endif()
endif()
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
${FEATURE_OPTIONS}
${LINK_OPTIONS}
${CPUINFO_TARGET_PROCESSOR_param}
-DCPUINFO_BUILD_UNIT_TESTS=OFF
-DCPUINFO_BUILD_MOCK_TESTS=OFF
-DCPUINFO_BUILD_BENCHMARKS=OFF
OPTIONS_DEBUG
-DCPUINFO_LOG_LEVEL=debug
OPTIONS_RELEASE
-DCPUINFO_LOG_LEVEL=default
)
vcpkg_install_cmake()
vcpkg_cmake_install()
vcpkg_cmake_config_fixup()
vcpkg_copy_pdbs()
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/unofficial-${PORT} TARGET_PATH share/unofficial-${PORT})
vcpkg_fixup_pkgconfig() # pkg_check_modules(libcpuinfo)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
@ -43,5 +73,4 @@ if("tools" IN_LIST FEATURES)
)
endif()
# Handle copyright
configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY)
file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)

View File

@ -1,8 +1,20 @@
{
"name": "cpuinfo",
"version-date": "2021-04-04",
"version-date": "2022-04-02",
"description": "CPU INFOrmation library (x86/x86-64/ARM/ARM64, Linux/Windows/Android/macOS/iOS)",
"homepage": "https://github.com/pytorch/cpuinfo",
"license": "BSD-2-Clause",
"supports": "!(arm & windows)",
"dependencies": [
{
"name": "vcpkg-cmake",
"host": true
},
{
"name": "vcpkg-cmake-config",
"host": true
}
],
"features": {
"tools": {
"description": "Build cpuinfo command-line tools"

View File

@ -56,7 +56,7 @@ index 6f19a16..3c758d2 100644
endif()
-if(NOT TARGET cpuinfo)
+find_package(unofficial-cpuinfo CONFIG REQUIRED) # target 'unofficial::cpuinfo::cpuinfo'
+find_package(cpuinfo CONFIG REQUIRED) # target 'cpuinfo::cpuinfo'
+if(FALSE)
#Download cpuinfo from github if CPUINFO_SOURCE_DIR is not specified.
if(NOT DEFINED CPUINFO_SOURCE_DIR)
@ -68,7 +68,7 @@ index 6f19a16..3c758d2 100644
- PRIVATE "${ASMJIT_SRC_DIR}/src"
- PRIVATE "${CPUINFO_SOURCE_DIR}/include")
+)
+target_link_libraries(fbgemm_generic PUBLIC asmjit::asmjit unofficial::cpuinfo::cpuinfo)
+target_link_libraries(fbgemm_generic PUBLIC asmjit::asmjit cpuinfo::cpuinfo)
target_include_directories(fbgemm_avx2 BEFORE
PUBLIC $<BUILD_INTERFACE:${FBGEMM_SOURCE_DIR}>
@ -76,7 +76,7 @@ index 6f19a16..3c758d2 100644
- PRIVATE "${ASMJIT_SRC_DIR}/src"
- PRIVATE "${CPUINFO_SOURCE_DIR}/include")
+)
+target_link_libraries(fbgemm_avx2 PUBLIC asmjit::asmjit unofficial::cpuinfo::cpuinfo)
+target_link_libraries(fbgemm_avx2 PUBLIC asmjit::asmjit cpuinfo::cpuinfo)
target_include_directories(fbgemm_avx512 BEFORE
PUBLIC $<BUILD_INTERFACE:${FBGEMM_SOURCE_DIR}>
@ -95,7 +95,7 @@ index 6f19a16..3c758d2 100644
- $<TARGET_OBJECTS:fbgemm_avx2>
- $<TARGET_OBJECTS:fbgemm_avx512>)
+)
+target_link_libraries(fbgemm_avx512 PUBLIC asmjit::asmjit unofficial::cpuinfo::cpuinfo)
+target_link_libraries(fbgemm_avx512 PUBLIC asmjit::asmjit cpuinfo::cpuinfo)
+
+add_library(fbgemm
+ $<TARGET_OBJECTS:fbgemm_generic>
@ -131,7 +131,7 @@ index 6f19a16..3c758d2 100644
-target_link_libraries(fbgemm $<BUILD_INTERFACE:asmjit>
- $<BUILD_INTERFACE:cpuinfo>)
-add_dependencies(fbgemm asmjit cpuinfo)
+target_link_libraries(fbgemm PUBLIC asmjit::asmjit unofficial::cpuinfo::cpuinfo)
+target_link_libraries(fbgemm PUBLIC asmjit::asmjit cpuinfo::cpuinfo)
install(TARGETS fbgemm EXPORT fbgemmLibraryConfig
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}

View File

@ -1,9 +1,10 @@
{
"name": "fbgemm",
"version-date": "2021-03-18",
"port-version": 3,
"port-version": 4,
"description": "FB (Facebook) + GEMM (General Matrix-Matrix Multiplication)",
"homepage": "https://code.fb.com/ml-applications/fbgemm/",
"license": "BSD-3-Clause",
"supports": "!(x86 | uwp)",
"dependencies": [
"asmjit",

View File

@ -42,8 +42,8 @@ index 5ecd2df..8565044 100644
"${CONFU_DEPENDENCIES_BINARY_DIR}/cpuinfo")
ENDIF()
-TARGET_LINK_LIBRARIES(nnpack PRIVATE cpuinfo)
+find_package(unofficial-cpuinfo CONFIG REQUIRED)
+target_link_libraries(nnpack PUBLIC unofficial::cpuinfo::cpuinfo)
+find_package(cpuinfo CONFIG REQUIRED)
+target_link_libraries(nnpack PUBLIC cpuinfo::cpuinfo)
# ---[ Configure pthreadpool
-IF(NOT TARGET pthreadpool)

View File

@ -7,16 +7,15 @@ vcpkg_from_github(
fix-cmakelists.patch
)
vcpkg_configure_cmake(
vcpkg_cmake_configure(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
-DNNPACK_BACKEND=psimd
-DNNPACK_BUILD_TESTS=OFF
-DNNPACK_BUILD_BENCHMARKS=OFF
-DNNPACK_CUSTOM_THREADPOOL=OFF
)
vcpkg_install_cmake()
vcpkg_cmake_install()
vcpkg_copy_pdbs()
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)

View File

@ -1,15 +1,20 @@
{
"name": "nnpack",
"version-date": "2021-02-21",
"port-version": 2,
"port-version": 3,
"description": "Acceleration package for neural networks on multi-core CPUs",
"homepage": "https://github.com/Maratyszcza/NNPACK",
"supports": "linux & osx",
"license": "BSD-2-Clause",
"supports": "linux | osx",
"dependencies": [
"cpuinfo",
"fp16",
"fxdiv",
"psimd",
"pthreadpool"
"pthreadpool",
{
"name": "vcpkg-cmake",
"host": true
}
]
}

View File

@ -123,8 +123,8 @@ index a5ddc49..05e1279 100644
ENDIF()
-TARGET_LINK_LIBRARIES(qnnpack PRIVATE cpuinfo)
+
+find_package(unofficial-cpuinfo CONFIG REQUIRED)
+target_link_libraries(qnnpack PUBLIC unofficial::cpuinfo::clog unofficial::cpuinfo::cpuinfo)
+find_package(cpuinfo CONFIG REQUIRED)
+target_link_libraries(qnnpack PUBLIC cpuinfo::clog cpuinfo::cpuinfo)
# ---[ Configure pthreadpool
-IF(NOT TARGET pthreadpool)

View File

@ -1,9 +1,10 @@
{
"name": "qnnpack",
"version-date": "2021-02-26",
"port-version": 1,
"port-version": 2,
"description": "Quantized Neural Network PACKage - mobile-optimized implementation of quantized neural network operators",
"homepage": "https://github.com/pytorch/QNNPACK",
"license": "BSD-3-Clause",
"supports": "linux | osx",
"dependencies": [
"cpuinfo",

View File

@ -37,8 +37,8 @@ index b69ce50c..1e8938b7 100755
ENDIF()
ENDIF()
-TARGET_LINK_LIBRARIES(XNNPACK PRIVATE cpuinfo)
+find_package(unofficial-cpuinfo CONFIG REQUIRED)
+target_link_libraries(XNNPACK PUBLIC unofficial::cpuinfo::clog unofficial::cpuinfo::cpuinfo)
+find_package(cpuinfo CONFIG REQUIRED)
+target_link_libraries(XNNPACK PUBLIC cpuinfo::clog cpuinfo::cpuinfo)
# ---[ Configure pthreadpool
-IF(NOT TARGET pthreadpool)

View File

@ -1,9 +1,10 @@
{
"name": "xnnpack",
"version-date": "2021-05-17",
"port-version": 1,
"port-version": 2,
"description": "High-efficiency floating-point neural network inference operators for mobile, server, and Web",
"homepage": "https://github.com/google/XNNPACK",
"license": "BSD-3-Clause",
"supports": "!(arm & windows) & !uwp",
"dependencies": [
"cpuinfo",

View File

@ -188,7 +188,6 @@ cppcoro:x64-uwp=fail
# The x64-linux pipeline uses gcc 9.3.0, which lacks C++20 coroutine support.
# This is known to work on x64-linux as of gcc 10.3.0.
cppgraphqlgen:x64-linux=fail
cpuinfo:arm64-windows=fail
crashpad:arm64-windows=fail
crashpad:arm-uwp=fail
crashpad:x64-linux=fail

View File

@ -1657,7 +1657,7 @@
"port-version": 3
},
"cpuinfo": {
"baseline": "2021-04-04",
"baseline": "2022-04-02",
"port-version": 0
},
"cr": {
@ -2174,7 +2174,7 @@
},
"fbgemm": {
"baseline": "2021-03-18",
"port-version": 3
"port-version": 4
},
"fbthrift": {
"baseline": "2022.03.21.00",
@ -4862,7 +4862,7 @@
},
"nnpack": {
"baseline": "2021-02-21",
"port-version": 2
"port-version": 3
},
"nonius": {
"baseline": "2019-04-20",
@ -5642,7 +5642,7 @@
},
"qnnpack": {
"baseline": "2021-02-26",
"port-version": 1
"port-version": 2
},
"qpid-proton": {
"baseline": "0.32.0",
@ -7558,7 +7558,7 @@
},
"xnnpack": {
"baseline": "2021-05-17",
"port-version": 1
"port-version": 2
},
"xorstr": {
"baseline": "2021-10-23",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "69febccb10ae5b789dd6c5af2b85740617fc34f4",
"version-date": "2022-04-02",
"port-version": 0
},
{
"git-tree": "28dbefcc9131ff8ce6fa939f7fcdb5cf0d4ee7fd",
"version-date": "2021-04-04",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "e3afaf099d4759d2d2a57caccb7d54ca2d5b2359",
"version-date": "2021-03-18",
"port-version": 4
},
{
"git-tree": "89489c3afc56789dd2a8344dc89455723ec0eec3",
"version-date": "2021-03-18",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "7d9e236a8f7e71e46c901da4f8a250c47221bd91",
"version-date": "2021-02-21",
"port-version": 3
},
{
"git-tree": "2479c1088fd75df5e9f06e85086c748aefae9e11",
"version-date": "2021-02-21",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "907c113d0c35b674976b5c3b7dc96b2c71084061",
"version-date": "2021-02-26",
"port-version": 2
},
{
"git-tree": "8dbc0dd7bdcf36b48124351fbc2ecc44d0b2e961",
"version-date": "2021-02-26",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "dba10dfefac481caee9f94c49fc60878c5bb57a1",
"version-date": "2021-05-17",
"port-version": 2
},
{
"git-tree": "d998602ed266e9cf140fb6740fea8625276a48f5",
"version-date": "2021-05-17",