[libtorch] [xnnpack] [qnnpack] [cpuinfo][fbgemm] (#46649)

Co-authored-by: Steve <steve@imagus.au>
Co-authored-by: Steve Brain <sbrain@vixvizion.com>
Co-authored-by: Kai Pastor <dg0yt@darc.de>
Co-authored-by: luncliff <luncliff@gmail.com>
This commit is contained in:
Steve Brain 2025-09-20 03:27:54 +10:00 committed by GitHub
parent cc3290ef83
commit 29ff5b8131
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
43 changed files with 1120 additions and 1682 deletions

View File

@ -0,0 +1,13 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b260162..d63e180 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -929,3 +929,7 @@ IF(CPUINFO_BUILD_PKG_CONFIG)
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
ENDIF()
+
+IF(CPUINFO_BUILD_CLOG)
+add_subdirectory(deps/clog)
+ENDIF()
\ No newline at end of file

View File

@ -6,14 +6,17 @@ endif()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO pytorch/cpuinfo
REF 5e63739504f0f8e18e941bd63b2d6d42536c7d90
SHA512 6a61f4574661a55771c2ec31bb0919a51d0bd8c770477b254a5c14dc5323716af275c7fe3abc5aa96720d7cc929559ca66f614265d3940e076b8db2fa15c8e36
REF 33ed0be77d7767d0e2010e2c3cf972ef36c7c307
SHA512 41775802b5a33f1bb0cb2c5dd126180e25d281a57c934d94247130c31ec7bf1dbf269ed9e8e946be1bdeeb09f0c17fee42048f71b4beb44c65df18cfb0cddc3b
HEAD_REF master
PATCHES
add-clog-cmake.patch
)
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
tools CPUINFO_BUILD_TOOLS
clog CPUINFO_BUILD_CLOG
)
set(LINK_OPTIONS "")
@ -37,6 +40,7 @@ vcpkg_cmake_configure(
-DCPUINFO_BUILD_UNIT_TESTS=OFF
-DCPUINFO_BUILD_MOCK_TESTS=OFF
-DCPUINFO_BUILD_BENCHMARKS=OFF
-DCLOG_BUILD_TESTS=OFF
OPTIONS_DEBUG
-DCPUINFO_LOG_LEVEL=debug
OPTIONS_RELEASE

View File

@ -1,7 +1,6 @@
{
"name": "cpuinfo",
"version-date": "2022-07-19",
"port-version": 3,
"version-date": "2025-07-25",
"description": "CPU INFOrmation library (x86/x86-64/ARM/ARM64, Linux/Windows/Android/macOS/iOS)",
"homepage": "https://github.com/pytorch/cpuinfo",
"license": "BSD-2-Clause",
@ -17,6 +16,10 @@
}
],
"features": {
"clog": {
"description": "Build clog support",
"supports": "!uwp"
},
"tools": {
"description": "Build cpuinfo command-line tools",
"supports": "!uwp"

View File

@ -1,5 +1,5 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0243f68..ccf7331 100644
index 0243f68..bbe98e9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -94,13 +94,12 @@ project(fbgemm VERSION 0.1 LANGUAGES CXX C)
@ -21,7 +21,7 @@ index 0243f68..ccf7331 100644
option(FBGEMM_BUILD_TESTS "Build fbgemm unit tests" ON)
option(FBGEMM_BUILD_BENCHMARKS "Build fbgemm benchmarks" ON)
option(FBGEMM_BUILD_DOCS "Build fbgemm documentation" OFF)
@@ -178,7 +177,7 @@ add_dependencies(fbgemm_autovec defs.bzl)
@@ -178,11 +177,12 @@ add_dependencies(fbgemm_autovec defs.bzl)
# 2) MSVC uses /MD in default cxx compiling flags,
# Need to change it to /MT in static case
if(MSVC)
@ -30,7 +30,20 @@ index 0243f68..ccf7331 100644
if(FBGEMM_LIBRARY_TYPE STREQUAL "static")
target_compile_definitions(fbgemm_generic PRIVATE ASMJIT_STATIC)
target_compile_definitions(fbgemm_avx2 PRIVATE ASMJIT_STATIC)
@@ -199,7 +198,6 @@ if(MSVC)
target_compile_definitions(fbgemm_avx512 PRIVATE ASMJIT_STATIC)
+if(FALSE)
foreach(flag_var
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
@@ -190,6 +190,7 @@ if(MSVC)
string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
endif(${flag_var} MATCHES "/MD")
endforeach(flag_var)
+endif()
endif()
target_compile_options(fbgemm_avx2 PRIVATE "/arch:AVX2")
target_compile_options(fbgemm_avx512 PRIVATE "/arch:AVX512")
@@ -199,7 +200,6 @@ if(MSVC)
else(MSVC)
string(APPEND CMAKE_CXX_FLAGS " -Wall")
string(APPEND CMAKE_CXX_FLAGS " -Wextra")
@ -38,27 +51,25 @@ index 0243f68..ccf7331 100644
string(APPEND CMAKE_CXX_FLAGS " -Wno-deprecated-declarations")
string(APPEND CMAKE_CXX_FLAGS " -Wunknown-pragmas")
string(APPEND CMAKE_CXX_FLAGS " -Wimplicit-fallthrough")
@@ -247,7 +245,8 @@ message(WARNING "CMAKE_CXX_FLAGS_DEBUG is ${CMAKE_CXX_FLAGS_DEBUG}")
@@ -247,6 +247,8 @@ message(WARNING "CMAKE_CXX_FLAGS_DEBUG is ${CMAKE_CXX_FLAGS_DEBUG}")
message(WARNING "CMAKE_CXX_FLAGS_RELEASE is ${CMAKE_CXX_FLAGS_RELEASE}")
message(WARNING "==========")
-if(NOT TARGET asmjit)
+find_package(asmjit CONFIG REQUIRED) # target 'asmjit::asmjit'
+if(FALSE)
+add_library(asmjit ALIAS asmjit::asmjit)
if(NOT TARGET asmjit)
# Download asmjit from github if ASMJIT_SRC_DIR is not specified.
if(NOT DEFINED ASMJIT_SRC_DIR)
set(ASMJIT_SRC_DIR "${FBGEMM_SOURCE_DIR}/external/asmjit"
@@ -280,7 +279,8 @@ if(NOT TARGET asmjit)
@@ -280,6 +282,8 @@ if(NOT TARGET asmjit)
endif()
endif()
-if(NOT TARGET cpuinfo)
+find_package(cpuinfo CONFIG REQUIRED) # target 'cpuinfo::cpuinfo'
+if(FALSE)
+add_library(cpuinfo ALIAS cpuinfo::cpuinfo)
if(NOT TARGET cpuinfo)
#Download cpuinfo from github if CPUINFO_SOURCE_DIR is not specified.
if(NOT DEFINED CPUINFO_SOURCE_DIR)
set(CPUINFO_SOURCE_DIR "${FBGEMM_SOURCE_DIR}/external/cpuinfo"
@@ -301,26 +301,26 @@ endif()
@@ -301,26 +305,26 @@ endif()
target_include_directories(fbgemm_generic BEFORE
PUBLIC $<BUILD_INTERFACE:${FBGEMM_SOURCE_DIR}>
PUBLIC $<BUILD_INTERFACE:${FBGEMM_SOURCE_DIR}/include>
@ -93,7 +104,7 @@ index 0243f68..ccf7331 100644
if(FBGEMM_LIBRARY_TYPE STREQUAL "default")
add_library(fbgemm
@@ -338,6 +338,7 @@ elseif(FBGEMM_LIBRARY_TYPE STREQUAL "shared")
@@ -338,6 +342,7 @@ elseif(FBGEMM_LIBRARY_TYPE STREQUAL "shared")
set_property(TARGET fbgemm_avx2 PROPERTY POSITION_INDEPENDENT_CODE ON)
set_property(TARGET fbgemm_avx512 PROPERTY POSITION_INDEPENDENT_CODE ON)
set_property(TARGET fbgemm_autovec PROPERTY POSITION_INDEPENDENT_CODE ON)
@ -101,7 +112,24 @@ index 0243f68..ccf7331 100644
elseif(FBGEMM_LIBRARY_TYPE STREQUAL "static")
add_library(fbgemm STATIC
$<TARGET_OBJECTS:fbgemm_generic>
@@ -364,15 +365,10 @@ target_include_directories(fbgemm BEFORE
@@ -346,11 +351,11 @@ elseif(FBGEMM_LIBRARY_TYPE STREQUAL "static")
$<TARGET_OBJECTS:fbgemm_autovec>)
#MSVC need to define FBGEMM_STATIC for fbgemm_generic also to
#avoid generating _dllimport functions.
- target_compile_definitions(fbgemm_generic PRIVATE FBGEMM_STATIC)
- target_compile_definitions(fbgemm_avx2 PRIVATE FBGEMM_STATIC)
- target_compile_definitions(fbgemm_avx512 PRIVATE FBGEMM_STATIC)
- target_compile_definitions(fbgemm_autovec PRIVATE FBGEMM_STATIC)
- target_compile_definitions(fbgemm PRIVATE FBGEMM_STATIC)
+ target_compile_definitions(fbgemm_generic PUBLIC FBGEMM_STATIC)
+ target_compile_definitions(fbgemm_avx2 PUBLIC FBGEMM_STATIC)
+ target_compile_definitions(fbgemm_avx512 PUBLIC FBGEMM_STATIC)
+ target_compile_definitions(fbgemm_autovec PUBLIC FBGEMM_STATIC)
+ target_compile_definitions(fbgemm PUBLIC FBGEMM_STATIC)
else()
message(FATAL_ERROR "Unsupported library type ${FBGEMM_LIBRARY_TYPE}")
endif()
@@ -364,20 +369,15 @@ target_include_directories(fbgemm BEFORE
PUBLIC $<BUILD_INTERFACE:${FBGEMM_SOURCE_DIR}>
PUBLIC $<BUILD_INTERFACE:${FBGEMM_SOURCE_DIR}/include>)
@ -119,12 +147,44 @@ index 0243f68..ccf7331 100644
endif()
install(
@@ -391,7 +387,7 @@ install(
DESTINATION share/cmake/fbgemm
FILE fbgemmLibraryConfig.cmake)
TARGETS fbgemm
- EXPORT fbgemmLibraryConfig
+ EXPORT unofficial-fbgemm-config-targets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) #For windows
@@ -387,11 +387,16 @@ install(
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/fbgemm")
install(
- EXPORT fbgemmLibraryConfig
- DESTINATION share/cmake/fbgemm
- FILE fbgemmLibraryConfig.cmake)
+ EXPORT unofficial-fbgemm-config-targets
+ FILE unofficial-fbgemm-config-targets.cmake
+ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/fbgemmLibrary)
-if(MSVC)
+include(CMakePackageConfigHelpers)
+configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/fbgemmLibraryConfig.cmake" INSTALL_DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/fbgemmLibrary)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/fbgemmLibraryConfig.cmake DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/fbgemmLibrary)
+
+
+if(FALSE)
if(FBGEMM_LIBRARY_TYPE STREQUAL "shared")
install(
FILES $<TARGET_PDB_FILE:fbgemm> $<TARGET_PDB_FILE:asmjit>
diff --git a/Config.cmake.in b/Config.cmake.in
new file mode 100644
index 0000000..e2e187d
--- /dev/null
+++ b/Config.cmake.in
@@ -0,0 +1,8 @@
+@PACKAGE_INIT@
+
+include(CMakeFindDependencyMacro)
+find_dependency(asmjit)
+find_dependency(cpuinfo)
+
+
+include ( "${CMAKE_CURRENT_LIST_DIR}/unofficial-fbgemm-config-targets.cmake" )

View File

@ -20,7 +20,7 @@ vcpkg_cmake_configure(
)
vcpkg_cmake_install()
vcpkg_copy_pdbs()
vcpkg_cmake_config_fixup(PACKAGE_NAME fbgemmLibrary CONFIG_PATH share/cmake/${PORT})
vcpkg_cmake_config_fixup(PACKAGE_NAME fbgemmLibrary)
# this internal header is required by pytorch
file(INSTALL "${SOURCE_PATH}/src/RefImplementations.h"

View File

@ -1,6 +1,7 @@
{
"name": "fbgemm",
"version": "1.0.0",
"port-version": 1,
"description": "FB (Facebook) + GEMM (General Matrix-Matrix Multiplication)",
"homepage": "https://code.fb.com/ml-applications/fbgemm/",
"license": "BSD-3-Clause",

View File

@ -1,11 +0,0 @@
diff --git a/torch/csrc/jit/runtime/logging.h b/torch/csrc/jit/runtime/logging.h
index 5499ecf..269168e 100644
--- a/torch/csrc/jit/runtime/logging.h
+++ b/torch/csrc/jit/runtime/logging.h
@@ -1,5 +1,6 @@
#pragma once
+#include <chrono>
#include <mutex>
#include <string>
#include <unordered_map>

View File

@ -1,47 +0,0 @@
diff --git a/c10/util/Exception.h b/c10/util/Exception.h
index 2dd1001..b3f3d60 100644
--- a/c10/util/Exception.h
+++ b/c10/util/Exception.h
@@ -233,12 +233,16 @@ struct C10_API WarnAlways {
// IndexError when they cross to Python.
class C10_API IndexError : public Error {
using Error::Error;
+public:
+ inline IndexError(SourceLocation source_location, std::string msg) : Error(source_location,msg) {};
};
// Used in ATen for invalid values. These turn into
// ValueError when they cross to Python.
class C10_API ValueError : public Error {
using Error::Error;
+public:
+ inline ValueError(SourceLocation source_location, std::string msg) : Error(source_location,msg) {};
};
// Used in ATen for invalid types. These turn into
diff --git a/caffe2/CMakeLists.txt b/caffe2/CMakeLists.txt
index cf349c2..f7a595e 100644
--- a/caffe2/CMakeLists.txt
+++ b/caffe2/CMakeLists.txt
@@ -830,7 +830,7 @@ if(BUILD_CAFFE2 AND NOT MSVC)
target_compile_options(torch_cpu PRIVATE "-Wno-sign-compare")
endif()
-if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" AND NOT USE_VULKAN AND NOT USE_IOS AND NOT USE_PYTORCH_METAL AND NOT USE_COREML_DELEGATE)
+if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" AND NOT USE_VULKAN AND NOT USE_IOS AND NOT USE_PYTORCH_METAL AND NOT USE_COREML_DELEGATE AND NOT MSVC)
target_compile_options_if_supported(torch_cpu "-Wmissing-prototypes")
target_compile_options_if_supported(torch_cpu "-Werror=missing-prototypes")
get_target_property(TORCH_CPU_SOURCES torch_cpu SOURCES)
diff --git a/functorch/csrc/dim/arena.h b/functorch/csrc/dim/arena.h
index 3251321..cb09b7c 100644
--- a/functorch/csrc/dim/arena.h
+++ b/functorch/csrc/dim/arena.h
@@ -8,7 +8,7 @@
#include <ATen/ATen.h>
#include "minpybind.h"
-#ifdef _WIN32
+#if defined(_WIN32) && !defined(__clang__)
#include <intrin.h>
// https://stackoverflow.com/questions/355967/how-to-use-msvc-intrinsics-to-get-the-equivalent-of-this-gcc-code
inline unsigned int __builtin_clz(unsigned int x) {

View File

@ -1,254 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3a48eaf..7b8bc7c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1049,8 +1049,7 @@ if(USE_MIMALLOC)
set(MI_BUILD_OBJECT OFF)
set(MI_BUILD_TESTS OFF)
add_definitions(-DUSE_MIMALLOC)
- add_subdirectory(third_party/mimalloc)
- include_directories(third_party/mimalloc/include)
+ find_package(mimalloc REQUIRED)
endif()
# ---[ Main build
diff --git a/aten/src/ATen/native/quantized/cpu/qnnpack/CMakeLists.txt b/aten/src/ATen/native/quantized/cpu/qnnpack/CMakeLists.txt
index fd6b7ff..d185233 100644
--- a/aten/src/ATen/native/quantized/cpu/qnnpack/CMakeLists.txt
+++ b/aten/src/ATen/native/quantized/cpu/qnnpack/CMakeLists.txt
@@ -368,7 +368,7 @@ elseif(NOT TARGET pthreadpool AND USE_SYSTEM_PTHREADPOOL)
if(NOT PTHREADPOOL_LIBRARY)
message(FATAL_ERROR "Cannot find pthreadpool")
endif()
- message("-- Found pthreadpool: ${PTHREADPOOL_LIBRARY}")
+ message("-- Found pthreadpool cpu qnnpack: ${PTHREADPOOL_LIBRARY}")
set_target_properties(pthreadpool PROPERTIES
IMPORTED_LOCATION "${PTHREADPOOL_LIBRARY}")
add_library(pthreadpool_interface INTERFACE)
diff --git a/c10/CMakeLists.txt b/c10/CMakeLists.txt
index feebad7..ad407e1 100644
--- a/c10/CMakeLists.txt
+++ b/c10/CMakeLists.txt
@@ -109,8 +109,7 @@ else()
endif()
if(USE_MIMALLOC)
- target_link_libraries(c10 PRIVATE "mimalloc-static")
- add_dependencies(c10 mimalloc-static)
+ target_link_libraries(c10 PRIVATE "mimalloc")
endif()
if(ANDROID)
diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
index c3abce5..63f665f 100644
--- a/cmake/Dependencies.cmake
+++ b/cmake/Dependencies.cmake
@@ -285,7 +285,7 @@ endif()
set(AT_FFTW_ENABLED 0)
set(USE_FFTW OFF)
if(USE_FFTW OR NOT MKL_FOUND)
- find_library(LIBFFTW3 fftw3)
+ find_library(LIBFFTW3 NAMES fftw3 REQUIRED)
if(LIBFFTW3)
find_path(FFTW3_INCLUDE_DIR NAMES fftw3.h ONLY_CMAKE_FIND_ROOT_PATH)
if(FFTW3_INCLUDE_DIR)
@@ -415,8 +415,8 @@ if(INTERN_BUILD_MOBILE OR NOT DISABLE_NNPACK_AND_FAMILY)
if(NOT TARGET pthreadpool)
if(USE_SYSTEM_PTHREADPOOL)
- add_library(pthreadpool SHARED IMPORTED)
- find_library(PTHREADPOOL_LIBRARY pthreadpool)
+ add_library(pthreadpool UNKNOWN IMPORTED)
+ find_library(PTHREADPOOL_LIBRARY pthreadpool PATH_SUFFIXES lib)
set_property(TARGET pthreadpool PROPERTY IMPORTED_LOCATION "${PTHREADPOOL_LIBRARY}")
if(NOT PTHREADPOOL_LIBRARY)
message(FATAL_ERROR "Cannot find pthreadpool")
@@ -450,13 +450,15 @@ endif()
# ---[ Caffe2 uses cpuinfo library in the thread pool
if(NOT TARGET cpuinfo AND USE_SYSTEM_CPUINFO)
- add_library(cpuinfo SHARED IMPORTED)
- find_library(CPUINFO_LIBRARY cpuinfo)
+ add_library(cpuinfo UNKNOWN IMPORTED)
+ find_library(CPUINFO_LIBRARY NAMES cpuinfo REQUIRED)
+ find_library(CLOG_LIBRARY NAMES clog REQUIRED)
if(NOT CPUINFO_LIBRARY)
message(FATAL_ERROR "Cannot find cpuinfo")
endif()
message("Found cpuinfo: ${CPUINFO_LIBRARY}")
set_target_properties(cpuinfo PROPERTIES IMPORTED_LOCATION "${CPUINFO_LIBRARY}")
+ target_link_libraries(cpuinfo INTERFACE "${CLOG_LIBRARY}")
elseif(NOT TARGET cpuinfo)
if(NOT DEFINED CPUINFO_SOURCE_DIR)
set(CPUINFO_SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/../third_party/cpuinfo" CACHE STRING "cpuinfo source directory")
@@ -659,8 +661,8 @@ if(USE_XNNPACK AND NOT USE_SYSTEM_XNNPACK)
include_directories(SYSTEM ${XNNPACK_INCLUDE_DIR})
list(APPEND Caffe2_DEPENDENCY_LIBS XNNPACK)
elseif(NOT TARGET XNNPACK AND USE_SYSTEM_XNNPACK)
- add_library(XNNPACK SHARED IMPORTED)
- find_library(XNNPACK_LIBRARY XNNPACK)
+ add_library(XNNPACK UNKNOWN IMPORTED)
+ find_library(XNNPACK_LIBRARY NAMES XNNPACK REQUIRED)
set_property(TARGET XNNPACK PROPERTY IMPORTED_LOCATION "${XNNPACK_LIBRARY}")
if(NOT XNNPACK_LIBRARY)
message(FATAL_ERROR "Cannot find XNNPACK")
@@ -858,7 +860,7 @@ endif()
# ---[ LMDB
if(USE_LMDB)
- find_package(LMDB)
+ find_package(LMDB REQUIRED)
if(LMDB_FOUND)
include_directories(SYSTEM ${LMDB_INCLUDE_DIR})
list(APPEND Caffe2_DEPENDENCY_LIBS ${LMDB_LIBRARIES})
@@ -1002,8 +1004,9 @@ if(NOT TARGET fp16 AND NOT USE_SYSTEM_FP16)
"${FP16_SOURCE_DIR}"
"${CONFU_DEPENDENCIES_BINARY_DIR}/FP16")
elseif(NOT TARGET fp16 AND USE_SYSTEM_FP16)
- add_library(fp16 STATIC "/usr/include/fp16.h")
- set_target_properties(fp16 PROPERTIES LINKER_LANGUAGE C)
+ find_path(FP16_INCLUDE_DIR NAMES fp16.h PATH_SUFFIXES include)
+ add_library(fp16 INTERFACE)
+ target_include_directories(fp16 INTERFACE "${FP16_INCLUDE_DIR}")
endif()
list(APPEND Caffe2_DEPENDENCY_LIBS fp16)
@@ -1127,7 +1130,7 @@ if(BUILD_PYTHON)
# Observers are required in the python build
caffe2_update_option(USE_OBSERVERS ON)
else()
- message(WARNING "Python dependencies not met. Not compiling with python. Suppress this warning with -DBUILD_PYTHON=OFF")
+ message(FATAL_ERROR "Python dependencies not met. Not compiling with python. Suppress this warning with -DBUILD_PYTHON=OFF")
caffe2_update_option(BUILD_PYTHON OFF)
endif()
endif()
@@ -1231,7 +1234,7 @@ endif()
# ---[ LLVM
if(USE_LLVM)
message(STATUS "Looking for LLVM in ${USE_LLVM}")
- find_package(LLVM PATHS ${USE_LLVM} NO_DEFAULT_PATH)
+ find_package(LLVM)
if(LLVM_FOUND)
message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}")
@@ -1244,8 +1247,10 @@ endif(USE_LLVM)
# ---[ cuDNN
if(USE_CUDNN)
+ find_package(CUDNN REQUIRED)
set(CUDNN_FRONTEND_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/../third_party/cudnn_frontend/include)
target_include_directories(torch::cudnn INTERFACE ${CUDNN_FRONTEND_INCLUDE_DIR})
+ target_include_directories(torch::cudnn INTERFACE "${CUDNN_INCLUDE_DIR}")
endif()
# ---[ HIP
@@ -1555,7 +1560,10 @@ if(CAFFE2_CMAKE_BUILDING_WITH_MAIN_REPO AND NOT INTERN_DISABLE_ONNX)
set_target_properties(onnx_proto PROPERTIES CXX_STANDARD 17)
endif()
endif()
- add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../third_party/foxi EXCLUDE_FROM_ALL)
+
+ # setup foxi
+ find_library(FOXI_LOADER_LIBPATH NAMES foxi_loader REQUIRED)
+ list(APPEND Caffe2_DEPENDENCY_LIBS "${FOXI_LOADER_LIBPATH}")
add_definitions(-DONNX_NAMESPACE=${ONNX_NAMESPACE})
if(NOT USE_SYSTEM_ONNX)
@@ -1573,23 +1581,13 @@ if(CAFFE2_CMAKE_BUILDING_WITH_MAIN_REPO AND NOT INTERN_DISABLE_ONNX)
target_compile_options(onnx PRIVATE -Wno-deprecated-declarations)
endif()
else()
- add_library(onnx SHARED IMPORTED)
- find_library(ONNX_LIBRARY onnx)
- if(NOT ONNX_LIBRARY)
- message(FATAL_ERROR "Cannot find onnx")
- endif()
- set_property(TARGET onnx PROPERTY IMPORTED_LOCATION ${ONNX_LIBRARY})
- add_library(onnx_proto SHARED IMPORTED)
- find_library(ONNX_PROTO_LIBRARY onnx_proto)
- if(NOT ONNX_PROTO_LIBRARY)
- message(FATAL_ERROR "Cannot find onnx")
- endif()
- set_property(TARGET onnx_proto PROPERTY IMPORTED_LOCATION ${ONNX_PROTO_LIBRARY})
- message("-- Found onnx: ${ONNX_LIBRARY} ${ONNX_PROTO_LIBRARY}")
- list(APPEND Caffe2_DEPENDENCY_LIBS onnx_proto onnx)
+ find_package(ONNX CONFIG REQUIRED)
+ set(ONNX_LIBRARY ONNX::onnx)
+ set(ONNX_PROTO_LIBRARY ONNX::onnx_proto)
+ list(APPEND Caffe2_DEPENDENCY_LIBS ${ONNX_LIBRARY} ${ONNX_PROTO_LIBRARY})
endif()
include_directories(${FOXI_INCLUDE_DIRS})
- list(APPEND Caffe2_DEPENDENCY_LIBS foxi_loader)
+ list(APPEND Caffe2_DEPENDENCY_LIBS "${FOXI_LOADER_LIBPATH}")
# Recover the build shared libs option.
set(BUILD_SHARED_LIBS ${TEMP_BUILD_SHARED_LIBS})
endif()
@@ -1834,8 +1832,8 @@ endif()
#
set(TEMP_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS})
set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared libs" FORCE)
-add_subdirectory(${PROJECT_SOURCE_DIR}/third_party/fmt)
-
+#add_subdirectory(${PROJECT_SOURCE_DIR}/third_party/fmt)
+find_package(fmt REQUIRED)
# Disable compiler feature checks for `fmt`.
#
# CMake compiles a little program to check compiler features. Some of our build
@@ -1843,7 +1841,6 @@ add_subdirectory(${PROJECT_SOURCE_DIR}/third_party/fmt)
# CMAKE_CXX_FLAGS in ways that break feature checks. Since we already know
# `fmt` is compatible with a superset of the compilers that PyTorch is, it
# shouldn't be too bad to just disable the checks.
-set_target_properties(fmt-header-only PROPERTIES INTERFACE_COMPILE_FEATURES "")
list(APPEND Caffe2_DEPENDENCY_LIBS fmt::fmt-header-only)
set(BUILD_SHARED_LIBS ${TEMP_BUILD_SHARED_LIBS} CACHE BOOL "Build shared libs" FORCE)
diff --git a/cmake/Modules/FindLMDB.cmake b/cmake/Modules/FindLMDB.cmake
index 2f0adb1..8a817fd 100644
--- a/cmake/Modules/FindLMDB.cmake
+++ b/cmake/Modules/FindLMDB.cmake
@@ -12,12 +12,8 @@
# Copyright 2013 Conrad Steenberg <conrad.steenberg@gmail.com>
# Aug 31, 2013
-if(MSVC)
- find_package(LMDB NO_MODULE)
-else()
- find_path(LMDB_INCLUDE_DIR NAMES lmdb.h PATHS "$ENV{LMDB_DIR}/include")
- find_library(LMDB_LIBRARIES NAMES lmdb PATHS "$ENV{LMDB_DIR}/lib" )
-endif()
+find_path(LMDB_INCLUDE_DIR NAMES lmdb.h PATHS "$ENV{LMDB_DIR}/include")
+find_library(LMDB_LIBRARIES NAMES lmdb PATHS "$ENV{LMDB_DIR}/lib" )
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(LMDB DEFAULT_MSG LMDB_INCLUDE_DIR LMDB_LIBRARIES)
diff --git a/cmake/public/cuda.cmake b/cmake/public/cuda.cmake
index 32f3ba3..4112937 100644
--- a/cmake/public/cuda.cmake
+++ b/cmake/public/cuda.cmake
@@ -67,8 +67,8 @@ if(NOT CMAKE_CUDA_COMPILER_VERSION STREQUAL CUDAToolkit_VERSION OR
"V${CUDAToolkit_VERSION} in '${CUDAToolkit_INCLUDE_DIR}'")
endif()
-if(NOT TARGET CUDA::nvToolsExt)
- message(FATAL_ERROR "Failed to find nvToolsExt")
+if(NOT TARGET CUDA::nvToolsExt AND TARGET CUDA::nvtx3)
+ add_library(CUDA::nvToolsExt ALIAS CUDA::nvtx3)
endif()
message(STATUS "Caffe2: CUDA detected: " ${CUDA_VERSION})
diff --git a/cmake/public/utils.cmake b/cmake/public/utils.cmake
index 4d48c0f..ebdd39a 100644
--- a/cmake/public/utils.cmake
+++ b/cmake/public/utils.cmake
@@ -185,9 +185,9 @@ endfunction()
macro(caffe2_update_option variable value)
if(CAFFE2_CMAKE_BUILDING_WITH_MAIN_REPO)
get_property(__help_string CACHE ${variable} PROPERTY HELPSTRING)
- set(${variable} ${value} CACHE BOOL ${__help_string} FORCE)
+ set("${variable}" "${value}" CACHE BOOL "${__help_string}" FORCE)
else()
- set(${variable} ${value})
+ set("${variable}" "${value}")
endif()
endmacro()

View File

@ -1,63 +0,0 @@
diff --git a/cmake/Modules_CUDA_fix/upstream/FindCUDA.cmake b/cmake/Modules_CUDA_fix/upstream/FindCUDA.cmake
index 420ee63..8bc24a0 100644
--- a/cmake/Modules_CUDA_fix/upstream/FindCUDA.cmake
+++ b/cmake/Modules_CUDA_fix/upstream/FindCUDA.cmake
@@ -1691,14 +1691,6 @@ function(CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS output_file cuda_target options
# If -ccbin, --compiler-bindir has been specified, don't do anything. Otherwise add it here.
list( FIND nvcc_flags "-ccbin" ccbin_found0 )
list( FIND nvcc_flags "--compiler-bindir" ccbin_found1 )
- if( ccbin_found0 LESS 0 AND ccbin_found1 LESS 0 AND CUDA_HOST_COMPILER )
- # Match VERBATIM check below.
- if(CUDA_HOST_COMPILER MATCHES "\\$\\(VCInstallDir\\)")
- list(APPEND nvcc_flags -ccbin "\"${CUDA_HOST_COMPILER}\"")
- else()
- list(APPEND nvcc_flags -ccbin "${CUDA_HOST_COMPILER}")
- endif()
- endif()
# Create a list of flags specified by CUDA_NVCC_FLAGS_${CONFIG} and CMAKE_${CUDA_C_OR_CXX}_FLAGS*
set(config_specific_flags)
diff --git a/cmake/Modules_CUDA_fix/upstream/FindCUDA/run_nvcc.cmake b/cmake/Modules_CUDA_fix/upstream/FindCUDA/run_nvcc.cmake
index 9293df3..8c12015 100644
--- a/cmake/Modules_CUDA_fix/upstream/FindCUDA/run_nvcc.cmake
+++ b/cmake/Modules_CUDA_fix/upstream/FindCUDA/run_nvcc.cmake
@@ -126,13 +126,6 @@ list(APPEND CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS_${build_configuration}})
# Any -ccbin existing in CUDA_NVCC_FLAGS gets highest priority
list( FIND CUDA_NVCC_FLAGS "-ccbin" ccbin_found0 )
list( FIND CUDA_NVCC_FLAGS "--compiler-bindir" ccbin_found1 )
-if( ccbin_found0 LESS 0 AND ccbin_found1 LESS 0 AND CUDA_HOST_COMPILER )
- if (CUDA_HOST_COMPILER STREQUAL "@_CUDA_MSVC_HOST_COMPILER@" AND DEFINED CCBIN)
- set(CCBIN -ccbin "${CCBIN}")
- else()
- set(CCBIN -ccbin "${CUDA_HOST_COMPILER}")
- endif()
-endif()
# cuda_execute_process - Executes a command with optional command echo and status message.
#
diff --git a/cmake/Modules_CUDA_fix/upstream/FindCUDA/select_compute_arch.cmake b/cmake/Modules_CUDA_fix/upstream/FindCUDA/select_compute_arch.cmake
index d917738..6d0d4fa 100644
--- a/cmake/Modules_CUDA_fix/upstream/FindCUDA/select_compute_arch.cmake
+++ b/cmake/Modules_CUDA_fix/upstream/FindCUDA/select_compute_arch.cmake
@@ -30,7 +30,6 @@ endif()
set(CUDA_KNOWN_GPU_ARCHITECTURES "Kepler" "Maxwell")
# This list will be used for CUDA_ARCH_NAME = Common option (enabled by default)
-set(CUDA_COMMON_GPU_ARCHITECTURES "3.5" "5.0")
# This list is used to filter CUDA archs when autodetecting
set(CUDA_ALL_GPU_ARCHITECTURES "3.5" "5.0")
diff --git a/cmake/public/cuda.cmake b/cmake/public/cuda.cmake
index 4112937..5964429 100644
--- a/cmake/public/cuda.cmake
+++ b/cmake/public/cuda.cmake
@@ -41,9 +41,6 @@ set(CUDAToolkit_ROOT "${CUDA_TOOLKIT_ROOT_DIR}")
# Pass clang as host compiler, which according to the docs
# Must be done before CUDA language is enabled, see
# https://cmake.org/cmake/help/v3.15/variable/CMAKE_CUDA_HOST_COMPILER.html
-if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
- set(CMAKE_CUDA_HOST_COMPILER "${CMAKE_C_COMPILER}")
-endif()
enable_language(CUDA)
if("X${CMAKE_CUDA_STANDARD}" STREQUAL "X" )
set(CMAKE_CUDA_STANDARD ${CMAKE_CXX_STANDARD})

View File

@ -1,39 +0,0 @@
diff --git a/aten/src/ATen/Context.h b/aten/src/ATen/Context.h
index 285c6f7..1040acc 100644
--- a/aten/src/ATen/Context.h
+++ b/aten/src/ATen/Context.h
@@ -28,7 +28,7 @@ namespace at {
class Tensor;
-enum class TORCH_API Float32MatmulPrecision { HIGHEST, HIGH, MEDIUM };
+enum class Float32MatmulPrecision { HIGHEST, HIGH, MEDIUM };
class TORCH_API Context {
public:
diff --git a/aten/src/ATen/core/function_schema.h b/aten/src/ATen/core/function_schema.h
index c48e9b0..cd8d4dd 100644
--- a/aten/src/ATen/core/function_schema.h
+++ b/aten/src/ATen/core/function_schema.h
@@ -206,7 +206,7 @@ inline bool operator!=(const Argument& lhs, const Argument& rhs) {
return !(lhs == rhs);
}
-enum struct TORCH_API SchemaArgType { input, output };
+enum struct SchemaArgType { input, output };
/**
* struct SchemaArgument
diff --git a/torch/csrc/jit/runtime/static/native_ops.cpp b/torch/csrc/jit/runtime/static/native_ops.cpp
index 7f3cbcf..fe80ab1 100644
--- a/torch/csrc/jit/runtime/static/native_ops.cpp
+++ b/torch/csrc/jit/runtime/static/native_ops.cpp
@@ -1055,7 +1055,7 @@ namespace {
execution is completed, future is marked as complete to
indicate aten::wait() to proceed
*/
-class TORCH_API ForkedSubgraphSRLauncher {
+class ForkedSubgraphSRLauncher {
public:
ForkedSubgraphSRLauncher(
std::shared_ptr<StaticModule> smodule,

View File

@ -1,32 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 80bbfc6b..eead313d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -560,6 +560,8 @@ if(MSVC)
string(APPEND CMAKE_CXX_FLAGS " /FS")
string(APPEND CMAKE_CUDA_FLAGS " -Xcompiler /FS")
+ # CUTLASS_CONSTEXPR_IF_CXX17 must be constexpr. Correct the __cplusplus value
+ string(APPEND CMAKE_CUDA_FLAGS " -Xcompiler /Zc:__cplusplus")
endif(MSVC)
string(APPEND CMAKE_CUDA_FLAGS " -Xfatbin -compress-all")
diff --git a/aten/src/ATen/CMakeLists.txt b/aten/src/ATen/CMakeLists.txt
index 93021a74..0755c890 100644
--- a/aten/src/ATen/CMakeLists.txt
+++ b/aten/src/ATen/CMakeLists.txt
@@ -437,7 +437,13 @@ if(NOT MSVC AND NOT EMSCRIPTEN AND NOT INTERN_BUILD_MOBILE)
endif()
if(USE_CUDA AND NOT USE_ROCM)
- list(APPEND ATen_CUDA_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/../../../third_party/cutlass/include)
+ find_package(NvidiaCutlass CONFIG REQUIRED)
+ get_target_property(CUTLASS_INCLUDE_DIRS nvidia::cutlass::cutlass INTERFACE_INCLUDE_DIRECTORIES)
+ list(APPEND ATen_CUDA_INCLUDE ${CUTLASS_INCLUDE_DIRS})
+ if(MSVC)
+ # CUTLASS_CONSTEXPR_IF_CXX17 must be constexpr. Correct the __cplusplus value with MSVC
+ add_compile_options($<$<COMPILE_LANGUAGE:CUDA>:"-Xcompiler /Zc:__cplusplus">)
+ endif()
if($ENV{ATEN_STATIC_CUDA})
list(APPEND ATen_CUDA_DEPENDENCY_LIBS
${CUDA_LIBRARIES}

View File

@ -1,36 +0,0 @@
diff --git a/torch/csrc/distributed/c10d/socket.cpp b/torch/csrc/distributed/c10d/socket.cpp
index 51ea05fa..3c3fbb39 100644
--- a/torch/csrc/distributed/c10d/socket.cpp
+++ b/torch/csrc/distributed/c10d/socket.cpp
@@ -29,6 +29,7 @@
#include <fmt/chrono.h>
#include <fmt/format.h>
+#include <fmt/ranges.h>
#include <torch/csrc/distributed/c10d/error.h>
#include <torch/csrc/distributed/c10d/exception.h>
diff --git a/torch/csrc/profiler/standalone/execution_trace_observer.cpp b/torch/csrc/profiler/standalone/execution_trace_observer.cpp
index 93d9e2d1..ea241a8b 100644
--- a/torch/csrc/profiler/standalone/execution_trace_observer.cpp
+++ b/torch/csrc/profiler/standalone/execution_trace_observer.cpp
@@ -10,6 +10,7 @@
#endif // _WIN32
#include <fmt/format.h>
+#include <fmt/ranges.h>
#include <algorithm>
#include <chrono>
#include <cmath>
diff --git a/torch/csrc/profiler/util.cpp b/torch/csrc/profiler/util.cpp
index 180555f9..1358c9ab 100644
--- a/torch/csrc/profiler/util.cpp
+++ b/torch/csrc/profiler/util.cpp
@@ -5,6 +5,7 @@
#include <c10/util/ArrayRef.h>
#include <c10/util/irange.h>
#include <fmt/format.h>
+#include <fmt/ranges.h>
#ifdef USE_KINETO
#include <libkineto.h>

View File

@ -1,156 +0,0 @@
diff --git a/c10/cuda/CMakeLists.txt b/c10/cuda/CMakeLists.txt
index c0628d0..5dfb7f2 100644
--- a/c10/cuda/CMakeLists.txt
+++ b/c10/cuda/CMakeLists.txt
@@ -74,7 +74,11 @@ add_subdirectory(test)
# Note: for now, we will put all export path into one single Caffe2Targets group
# to deal with the cmake deployment need. Inside the Caffe2Targets set, the
# individual libraries like libc10.so and libcaffe2.so are still self-contained.
-install(TARGETS c10_cuda EXPORT Caffe2Targets DESTINATION lib)
+install(TARGETS c10_cuda EXPORT Caffe2Targets
+ RUNTIME DESTINATION bin
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib
+ )
foreach(file ${C10_CUDA_HEADERS})
get_filename_component( dir ${file} DIRECTORY )
install( FILES ${file} DESTINATION include/c10/cuda/${dir} )
diff --git a/c10/util/Exception.h b/c10/util/Exception.h
index ecbc7c1..2dd1001 100644
--- a/c10/util/Exception.h
+++ b/c10/util/Exception.h
@@ -14,6 +14,9 @@
#define __func__ __FUNCTION__
#endif
+#ifdef _MSC_VER
+#pragma warning(suppress : 4251)
+#endif
namespace c10 {
/// The primary ATen error class.
diff --git a/pyproject.toml b/pyproject.toml
index eb764cb..c70f317 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -4,11 +4,9 @@ requires = [
"wheel",
"astunparse",
"numpy",
- "ninja",
"pyyaml",
- "cmake",
"typing-extensions",
- "requests",
+# "requests",
]
# Use legacy backend to import local packages in setup.py
build-backend = "setuptools.build_meta:__legacy__"
diff --git a/setup.py b/setup.py
index 7016441..a6416c7 100644
--- a/setup.py
+++ b/setup.py
@@ -263,7 +263,7 @@ from tools.setup_helpers.env import build_type, IS_DARWIN, IS_LINUX, IS_WINDOWS
################################################################################
VERBOSE_SCRIPT = True
-RUN_BUILD_DEPS = True
+RUN_BUILD_DEPS = False
# see if the user passed a quiet flag to setup.py arguments and respect
# that in our parts of the build
EMIT_BUILD_WARNING = False
@@ -307,9 +307,9 @@ else:
# Constant known variables used throughout this file
cwd = os.path.dirname(os.path.abspath(__file__))
-lib_path = os.path.join(cwd, "torch", "lib")
+lib_path = os.path.join(cwd, "../../@TARGET_TRIPLET@/", "lib")
third_party_path = os.path.join(cwd, "third_party")
-caffe2_build_dir = os.path.join(cwd, "build")
+caffe2_build_dir = os.path.join(cwd, "../../@TARGET_TRIPLET@")
# CMAKE: full path to python library
if IS_WINDOWS:
@@ -759,7 +759,7 @@ class build_ext(setuptools.command.build_ext.build_ext):
with open(filename) as f:
return json.load(f)
- ninja_files = glob.glob("build/*compile_commands.json")
+ ninja_files = glob.glob("../../@TARGET_TRIPLET@/*compile_commands.json")
cmake_files = glob.glob("torch/lib/build/*/compile_commands.json")
all_commands = [entry for f in ninja_files + cmake_files for entry in load(f)]
diff --git a/third_party/nvfuser/csrc/instrumentation.h b/third_party/nvfuser/csrc/instrumentation.h
index cd57825..75e81e9 100644
--- a/third_party/nvfuser/csrc/instrumentation.h
+++ b/third_party/nvfuser/csrc/instrumentation.h
@@ -2,7 +2,7 @@
#include <utils.h>
-#include <nvToolsExt.h>
+#include <nvtx3/nvToolsExt.h>
// NOLINTNEXTLINE(modernize-deprecated-headers)
#include <stdio.h>
diff --git a/tools/setup_helpers/env.py b/tools/setup_helpers/env.py
index d87e97a..6c52f39 100644
--- a/tools/setup_helpers/env.py
+++ b/tools/setup_helpers/env.py
@@ -19,7 +19,7 @@ CONDA_DIR = os.path.join(os.path.dirname(sys.executable), "..")
IS_64BIT = struct.calcsize("P") == 8
-BUILD_DIR = "build"
+BUILD_DIR = "../../@TARGET_TRIPLET@"
def check_env_flag(name: str, default: str = "") -> bool:
diff --git a/torch/lib/libshm/CMakeLists.txt b/torch/lib/libshm/CMakeLists.txt
index 20158a9..7d3c475 100644
--- a/torch/lib/libshm/CMakeLists.txt
+++ b/torch/lib/libshm/CMakeLists.txt
@@ -71,6 +71,10 @@ target_link_libraries(torch_shm_manager PRIVATE shm)
set_target_properties(torch_shm_manager PROPERTIES
INSTALL_RPATH "${_rpath_portable_origin}/../lib")
-install(TARGETS shm LIBRARY DESTINATION ${LIBSHM_INSTALL_LIB_SUBDIR})
+install(TARGETS shm
+ RUNTIME DESTINATION bin
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib
+)
install(FILES libshm.h DESTINATION "include")
install(TARGETS torch_shm_manager DESTINATION "bin")
diff --git a/torch/lib/libshm_windows/CMakeLists.txt b/torch/lib/libshm_windows/CMakeLists.txt
index df2a106..b86e0b6 100644
--- a/torch/lib/libshm_windows/CMakeLists.txt
+++ b/torch/lib/libshm_windows/CMakeLists.txt
@@ -19,9 +19,12 @@ target_include_directories(shm PRIVATE
target_link_libraries(shm torch c10)
-install(TARGETS shm DESTINATION "${LIBSHM_INSTALL_LIB_SUBDIR}")
+install(TARGETS shm
+ LIBRARY DESTINATION "${LIBSHM_INSTALL_LIB_SUBDIR}"
+ ARCHIVE DESTINATION "${LIBSHM_INSTALL_LIB_SUBDIR}"
+ RUNTIME DESTINATION "${LIBSHM_INSTALL_BIN_SUBDIR}")
install(FILES libshm.h DESTINATION "include")
if(MSVC AND BUILD_SHARED_LIBS)
- install(FILES $<TARGET_PDB_FILE:shm> DESTINATION "${LIBSHM_INSTALL_LIB_SUBDIR}" OPTIONAL)
+ install(FILES $<TARGET_PDB_FILE:shm> DESTINATION "${LIBSHM_INSTALL_BIN_SUBDIR}" OPTIONAL)
endif()
diff --git a/torch/utils/cpp_extension.py b/torch/utils/cpp_extension.py
index 6600eb3..15ddc8c 100644
--- a/torch/utils/cpp_extension.py
+++ b/torch/utils/cpp_extension.py
@@ -38,7 +38,7 @@ SHARED_FLAG = '/DLL' if IS_WINDOWS else '-shared'
_HERE = os.path.abspath(__file__)
_TORCH_PATH = os.path.dirname(os.path.dirname(_HERE))
-TORCH_LIB_PATH = os.path.join(_TORCH_PATH, 'lib')
+TORCH_LIB_PATH = os.path.join(_TORCH_PATH, '../../../@TARGET_TRIPLET@', 'lib')
SUBPROCESS_DECODE_ARGS = ('oem',) if IS_WINDOWS else ()

View File

@ -1,13 +0,0 @@
diff --git a/c10/util/Logging.cpp b/c10/util/Logging.cpp
index 306dac5..dca802c 100644
--- a/c10/util/Logging.cpp
+++ b/c10/util/Logging.cpp
@@ -272,7 +272,7 @@ void UpdateLoggingLevelsFromFlags() {
void ShowLogInfoToStderr() {
FLAGS_logtostderr = 1;
- FLAGS_minloglevel = std::min(FLAGS_minloglevel, google::GLOG_INFO);
+ FLAGS_minloglevel = std::min(FLAGS_minloglevel, static_cast<decltype(FLAGS_minloglevel)>(google::GLOG_INFO));
}
} // namespace c10

View File

@ -0,0 +1,404 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 07edb30..1ca26e3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1247,8 +1247,7 @@ if(USE_MIMALLOC)
set(MI_BUILD_OBJECT OFF)
set(MI_BUILD_TESTS OFF)
add_definitions(-DUSE_MIMALLOC)
- add_subdirectory(third_party/mimalloc)
- include_directories(third_party/mimalloc/include)
+ find_package(mimalloc CONFIG REQUIRED)
endif()
if(USE_MIMALLOC AND USE_MIMALLOC_ON_MKL)
@@ -1316,10 +1315,7 @@ if(BUILD_SHARED_LIBS)
DIRECTORY ${PROJECT_SOURCE_DIR}/cmake/Modules_CUDA_fix
DESTINATION share/cmake/Caffe2/
COMPONENT dev)
- install(
- FILES ${PROJECT_SOURCE_DIR}/cmake/Modules/FindCUDAToolkit.cmake
- DESTINATION share/cmake/Caffe2/
- COMPONENT dev)
+
install(
FILES ${PROJECT_SOURCE_DIR}/cmake/Modules/FindCUSPARSELT.cmake
DESTINATION share/cmake/Caffe2/
diff --git a/aten/src/ATen/CMakeLists.txt b/aten/src/ATen/CMakeLists.txt
index 085af37..1c61f27 100644
--- a/aten/src/ATen/CMakeLists.txt
+++ b/aten/src/ATen/CMakeLists.txt
@@ -515,7 +515,7 @@ if(NOT EMSCRIPTEN AND NOT INTERN_BUILD_MOBILE)
list(APPEND ATen_THIRD_PARTY_INCLUDE ${CMAKE_BINARY_DIR}/include)
link_directories(${CMAKE_BINARY_DIR}/sleef/lib)
else()
- add_library(sleef SHARED IMPORTED)
+ add_library(sleef UNKNOWN IMPORTED)
find_library(SLEEF_LIBRARY sleef)
if(NOT SLEEF_LIBRARY)
message(FATAL_ERROR "Cannot find sleef")
@@ -523,7 +523,7 @@ if(NOT EMSCRIPTEN AND NOT INTERN_BUILD_MOBILE)
message("Found sleef: ${SLEEF_LIBRARY}")
set_target_properties(sleef PROPERTIES IMPORTED_LOCATION "${SLEEF_LIBRARY}")
endif()
- list(APPEND ATen_CPU_DEPENDENCY_LIBS sleef)
+ list(APPEND ATen_CPU_DEPENDENCY_LIBS ${SLEEF_LIBRARY})
if(NOT MSVC)
set(CMAKE_C_FLAGS_DEBUG ${OLD_CMAKE_C_FLAGS_DEBUG})
@@ -534,8 +534,8 @@ if(USE_CUDA AND NOT USE_ROCM)
add_definitions(-DCUTLASS_ENABLE_TENSOR_CORE_MMA=1)
add_definitions(-DCUTLASS_ENABLE_SM90_EXTENDED_MMA_SHAPES=1)
add_definitions(-DCUTE_SM90_EXTENDED_MMA_SHAPES_ENABLED)
- list(APPEND ATen_CUDA_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/../../../third_party/cutlass/include)
- list(APPEND ATen_CUDA_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/../../../third_party/cutlass/tools/util/include)
+ find_package(NvidiaCutlass CONFIG REQUIRED)
+ list(APPEND ATen_CUDA_DEPENDENCY_LIBS nvidia::cutlass::cutlass)
if($ENV{ATEN_STATIC_CUDA})
list(APPEND ATen_CUDA_DEPENDENCY_LIBS
${CUDA_LIBRARIES}
diff --git a/c10/CMakeLists.txt b/c10/CMakeLists.txt
index 34577ca..5462cfe 100644
--- a/c10/CMakeLists.txt
+++ b/c10/CMakeLists.txt
@@ -121,8 +121,7 @@ if(NOT BUILD_LIBTORCHLESS)
endif()
if(USE_MIMALLOC)
- target_link_libraries(c10 PRIVATE "mimalloc-static")
- add_dependencies(c10 mimalloc-static)
+ target_link_libraries(c10 PRIVATE "mimalloc")
endif()
if(LINUX)
@@ -163,7 +162,7 @@ if(NOT BUILD_LIBTORCHLESS)
# Note: for now, we will put all export path into one single Caffe2Targets group
# to deal with the cmake deployment need. Inside the Caffe2Targets set, the
# individual libraries like libc10.so and libcaffe2.so are still self-contained.
- install(TARGETS c10 EXPORT Caffe2Targets DESTINATION lib)
+ install(TARGETS c10 EXPORT Caffe2Targets RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
endif()
install(DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
@@ -173,5 +172,5 @@ install(FILES ${CMAKE_BINARY_DIR}/c10/macros/cmake_macros.h
DESTINATION include/c10/macros)
if(MSVC AND C10_BUILD_SHARED_LIBS)
- install(FILES $<TARGET_PDB_FILE:c10> DESTINATION lib OPTIONAL)
+ install(FILES $<TARGET_PDB_FILE:c10> DESTINATION bin OPTIONAL)
endif()
diff --git a/c10/cuda/CMakeLists.txt b/c10/cuda/CMakeLists.txt
index 3327dab..4a0476f 100644
--- a/c10/cuda/CMakeLists.txt
+++ b/c10/cuda/CMakeLists.txt
@@ -82,7 +82,7 @@ if(NOT BUILD_LIBTORCHLESS)
# Note: for now, we will put all export path into one single Caffe2Targets group
# to deal with the cmake deployment need. Inside the Caffe2Targets set, the
# individual libraries like libc10.so and libcaffe2.so are still self-contained.
-install(TARGETS c10_cuda EXPORT Caffe2Targets DESTINATION lib)
+install(TARGETS c10_cuda EXPORT Caffe2Targets RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}" LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}" ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}")
endif()
diff --git a/caffe2/CMakeLists.txt b/caffe2/CMakeLists.txt
index d2d23b7..51930dd 100644
--- a/caffe2/CMakeLists.txt
+++ b/caffe2/CMakeLists.txt
@@ -86,7 +86,7 @@ endif()
# ---[ Caffe2 build
# Note: the folders that are being commented out have not been properly
# addressed yet.
-
+if(FALSE)
if(NOT MSVC AND USE_XNNPACK)
if(NOT TARGET fxdiv)
set(FXDIV_BUILD_TESTS OFF CACHE BOOL "")
@@ -96,6 +96,7 @@ if(NOT MSVC AND USE_XNNPACK)
"${CMAKE_BINARY_DIR}/FXdiv")
endif()
endif()
+endif()
add_subdirectory(core)
add_subdirectory(serialize)
@@ -557,7 +558,7 @@ if(USE_CUDA)
endif()
target_link_libraries(caffe2_nvrtc PRIVATE caffe2::nvrtc ${DELAY_LOAD_FLAGS})
- install(TARGETS caffe2_nvrtc DESTINATION "${TORCH_INSTALL_LIB_DIR}")
+ install(TARGETS caffe2_nvrtc RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}" LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}" ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}")
if(USE_NCCL)
list(APPEND Caffe2_GPU_SRCS
${TORCH_SRC_DIR}/csrc/cuda/nccl.cpp)
@@ -1134,7 +1135,7 @@ if(USE_XPU)
endif()
endif()
-if(NOT MSVC AND USE_XNNPACK)
+if(FALSE)
TARGET_LINK_LIBRARIES(torch_cpu PRIVATE fxdiv)
endif()
@@ -1251,11 +1252,11 @@ if(USE_KINETO)
${TORCH_ROOT}/third_party/kineto/libkineto/src)
endif()
-target_include_directories(torch_cpu PRIVATE
- ${TORCH_ROOT}/third_party/cpp-httplib)
+target_link_libraries(torch_cpu PRIVATE httplib::httplib nlohmann_json::nlohmann_json)
+if(APPLE)
+ target_link_libraries(torch_cpu PUBLIC "-framework CoreFoundation" "-framework CFNetwork")
-target_include_directories(torch_cpu PRIVATE
- ${TORCH_ROOT}/third_party/nlohmann/include)
+endif()
install(DIRECTORY "${TORCH_SRC_DIR}/csrc"
DESTINATION ${TORCH_INSTALL_INCLUDE_DIR}/torch
@@ -1536,17 +1537,17 @@ endif()
caffe2_interface_library(torch torch_library)
-install(TARGETS torch_cpu torch_cpu_library EXPORT Caffe2Targets DESTINATION "${TORCH_INSTALL_LIB_DIR}")
+install(TARGETS torch_cpu torch_cpu_library EXPORT Caffe2Targets RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}" LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}" ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}")
if(USE_CUDA)
- install(TARGETS torch_cuda torch_cuda_library EXPORT Caffe2Targets DESTINATION "${TORCH_INSTALL_LIB_DIR}")
+ install(TARGETS torch_cuda torch_cuda_library EXPORT Caffe2Targets RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}" LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}" ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}")
elseif(USE_ROCM)
- install(TARGETS torch_hip torch_hip_library EXPORT Caffe2Targets DESTINATION "${TORCH_INSTALL_LIB_DIR}")
+ install(TARGETS torch_hip torch_hip_library EXPORT Caffe2Targets RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}" LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}" ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}")
elseif(USE_XPU)
- install(TARGETS torch_xpu torch_xpu_library EXPORT Caffe2Targets DESTINATION "${TORCH_INSTALL_LIB_DIR}")
+ install(TARGETS torch_xpu torch_xpu_library EXPORT Caffe2Targets RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}" LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}" ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}")
endif()
-install(TARGETS torch torch_library EXPORT Caffe2Targets DESTINATION "${TORCH_INSTALL_LIB_DIR}")
+install(TARGETS torch torch_library EXPORT Caffe2Targets RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}" LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}" ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}")
target_link_libraries(torch PUBLIC torch_cpu_library)
@@ -1685,7 +1686,7 @@ if(BUILD_SHARED_LIBS)
target_link_libraries(torch_global_deps torch::nvtoolsext)
endif()
endif()
- install(TARGETS torch_global_deps DESTINATION "${TORCH_INSTALL_LIB_DIR}")
+ install(TARGETS torch_global_deps RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}" LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}" ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}")
endif()
# ---[ Caffe2 HIP sources.
diff --git a/cmake/Codegen.cmake b/cmake/Codegen.cmake
index 724d993..f743939 100644
--- a/cmake/Codegen.cmake
+++ b/cmake/Codegen.cmake
@@ -36,11 +36,13 @@ endfunction()
################################################################################
# -- [ Deterine commit hash
-execute_process(
- COMMAND "${Python_EXECUTABLE}" -c "from tools.generate_torch_version import get_sha;print(get_sha('.'), end='')"
- OUTPUT_VARIABLE COMMIT_SHA
- WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/..
-)
+if(NOT DEFINED COMMIT_SHA)
+ execute_process(
+ COMMAND "${Python_EXECUTABLE}" -c "from tools.generate_torch_version import get_sha;print(get_sha('.'), end='')"
+ OUTPUT_VARIABLE COMMIT_SHA
+ WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/..
+ )
+endif()
# ---[ Write the macros file
configure_file(
diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
index 5227204..9acaf75 100644
--- a/cmake/Dependencies.cmake
+++ b/cmake/Dependencies.cmake
@@ -46,6 +46,7 @@ if(USE_CUDA)
# A helper variable recording the list of Caffe2 dependent libraries
# torch::cudart is dealt with separately, due to CUDA_ADD_LIBRARY
# design reason (it adds CUDA_LIBRARIES itself).
+ find_package(NvidiaCutlass CONFIG REQUIRED)
set(Caffe2_PUBLIC_CUDA_DEPENDENCY_LIBS )
if(NOT CAFFE2_USE_NVRTC)
caffe2_update_option(USE_NVRTC OFF)
@@ -378,6 +379,9 @@ if(INTERN_BUILD_MOBILE OR NOT DISABLE_NNPACK_AND_FAMILY)
set(USE_PTHREADPOOL ON CACHE BOOL "" FORCE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_PTHREADPOOL")
+ find_package(unofficial-pthreadpool CONFIG REQUIRED)
+ add_library(pthreadpool ALIAS unofficial::pthreadpool)
+
if(NOT TARGET pthreadpool)
if(USE_SYSTEM_PTHREADPOOL)
add_library(pthreadpool SHARED IMPORTED)
@@ -412,6 +416,9 @@ endif()
if(NOT CMAKE_SYSTEM_PROCESSOR MATCHES "^(s390x|ppc64le)$")
# ---[ Caffe2 uses cpuinfo library in the thread pool
# ---[ But it doesn't support s390x/powerpc and thus not used on s390x/powerpc
+ find_package(cpuinfo CONFIG REQUIRED)
+ add_library(cpuinfo ALIAS cpuinfo::cpuinfo)
+ add_library(clog ALIAS cpuinfo::clog)
if(NOT TARGET cpuinfo AND USE_SYSTEM_CPUINFO)
add_library(cpuinfo SHARED IMPORTED)
find_library(CPUINFO_LIBRARY cpuinfo)
@@ -476,8 +483,10 @@ endif()
# ---[ NNPACK
if(USE_NNPACK)
- include(${CMAKE_CURRENT_LIST_DIR}/External/nnpack.cmake)
- if(NNPACK_FOUND)
+
+ find_package(unofficial-nnpack CONFIG REQUIRED)
+ add_library(nnpack ALIAS unofficial::nnpack::nnpack)
+ if(nnpack_FOUND)
if(TARGET nnpack)
# ---[ NNPACK is being built together with Caffe2: explicitly specify dependency
list(APPEND Caffe2_DEPENDENCY_LIBS nnpack)
@@ -492,6 +501,12 @@ if(USE_NNPACK)
endif()
# ---[ XNNPACK
+if(USE_XNNPACK)
+ find_package(unofficial-xnnpack CONFIG REQUIRED)
+ add_library(XNNPACK ALIAS unofficial::xnnpack::XNNPACK)
+ add_library(microkernels-prod ALIAS unofficial::xnnpack::microkernels-prod)
+ list(APPEND Caffe2_DEPENDENCY_LIBS XNNPACK microkernels-prod)
+endif()
if(USE_XNNPACK AND NOT USE_SYSTEM_XNNPACK)
if(NOT DEFINED XNNPACK_SOURCE_DIR)
set(XNNPACK_SOURCE_DIR "${CAFFE2_THIRD_PARTY_ROOT}/XNNPACK" CACHE STRING "XNNPACK source directory")
@@ -702,7 +717,7 @@ if(BUILD_TEST OR BUILD_MOBILE_BENCHMARK OR BUILD_MOBILE_TEST)
endif()
# ---[ FBGEMM
-if(USE_FBGEMM)
+if(FALSE)
set(CAFFE2_THIRD_PARTY_ROOT "${PROJECT_SOURCE_DIR}/third_party")
if(NOT DEFINED FBGEMM_SOURCE_DIR)
set(FBGEMM_SOURCE_DIR "${CAFFE2_THIRD_PARTY_ROOT}/fbgemm" CACHE STRING "FBGEMM source directory")
@@ -755,6 +770,9 @@ endif()
if(USE_FBGEMM)
caffe2_update_option(USE_FBGEMM ON)
+ find_package(fbgemmLibrary REQUIRED)
+ list(APPEND Caffe2_DEPENDENCY_LIBS fbgemm)
+
else()
caffe2_update_option(USE_FBGEMM OFF)
message(WARNING
@@ -804,6 +822,8 @@ if(USE_ITT)
endif()
# ---[ Caffe2 depends on FP16 library for half-precision conversions
+find_package(unofficial-fp16 CONFIG REQUIRED)
+add_library(fp16 ALIAS unofficial::fp16::fp16)
if(NOT TARGET fp16 AND NOT USE_SYSTEM_FP16)
set(CAFFE2_THIRD_PARTY_ROOT "${PROJECT_SOURCE_DIR}/third_party")
# PSIMD is required by FP16
@@ -1155,6 +1175,7 @@ if(USE_DISTRIBUTED AND USE_TENSORPIPE)
if(MSVC)
message(WARNING "Tensorpipe cannot be used on Windows.")
else()
+ if(FALSE)
if(USE_CUDA)
set(TP_USE_CUDA ON CACHE BOOL "" FORCE)
set(TP_ENABLE_CUDA_IPC ON CACHE BOOL "" FORCE)
@@ -1177,6 +1198,9 @@ if(USE_DISTRIBUTED AND USE_TENSORPIPE)
if(CMAKE_VERSION VERSION_GREATER_EQUAL "4.0.0")
unset(CMAKE_POLICY_VERSION_MINIMUM)
endif()
+ endif()
+ find_package(unofficial-tensorpipe CONFIG REQUIRED)
+ add_library(tensorpipe ALIAS unofficial::tensorpipe::tensorpipe)
list(APPEND Caffe2_DEPENDENCY_LIBS tensorpipe)
list(APPEND Caffe2_DEPENDENCY_LIBS nlohmann)
@@ -1329,7 +1353,7 @@ if(CAFFE2_CMAKE_BUILDING_WITH_MAIN_REPO AND NOT INTERN_DISABLE_ONNX)
caffe2_interface_library(onnx onnx_library)
endif()
list(APPEND Caffe2_DEPENDENCY_WHOLE_LINK_LIBS onnx_library)
- else()
+ elseif(FALSE)
add_library(onnx SHARED IMPORTED)
find_library(ONNX_LIBRARY onnx)
if(NOT ONNX_LIBRARY)
@@ -1345,6 +1369,8 @@ if(CAFFE2_CMAKE_BUILDING_WITH_MAIN_REPO AND NOT INTERN_DISABLE_ONNX)
message("-- Found onnx: ${ONNX_LIBRARY} ${ONNX_PROTO_LIBRARY}")
list(APPEND Caffe2_DEPENDENCY_LIBS onnx_proto onnx)
endif()
+ find_package(ONNX CONFIG REQUIRED)
+ list(APPEND Caffe2_DEPENDENCY_LIBS ONNX::onnx ONNX::onnx_proto)
# Recover the build shared libs option.
set(BUILD_SHARED_LIBS ${TEMP_BUILD_SHARED_LIBS})
endif()
@@ -1515,6 +1541,9 @@ if(NOT INTERN_BUILD_MOBILE)
endif()
if(USE_KLEIDIAI)
+ find_package(KleidiAI CONFIG REQUIRED)
+ list(APPEND Caffe2_DEPENDENCY_LIBS KleidiAI::kleidiai)
+ elseif(FALSE)
if(CMAKE_C_COMPILER_ID STREQUAL "Clang" AND CMAKE_C_COMPILER_VERSION VERSION_LESS "11" )
message(WARNING "KleidiAI: Using non-supported Clang version. Expected 11 or newer, received ${CMAKE_C_COMPILER_VERSION}.")
endif()
@@ -1586,6 +1615,7 @@ endif()
#
set(TEMP_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS})
set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared libs" FORCE)
+if(0)
add_subdirectory(${PROJECT_SOURCE_DIR}/third_party/fmt)
# Disable compiler feature checks for `fmt`.
@@ -1596,7 +1626,8 @@ add_subdirectory(${PROJECT_SOURCE_DIR}/third_party/fmt)
# `fmt` is compatible with a superset of the compilers that PyTorch is, it
# shouldn't be too bad to just disable the checks.
set_target_properties(fmt-header-only PROPERTIES INTERFACE_COMPILE_FEATURES "")
-
+endif()
+find_package(fmt REQUIRED)
list(APPEND Caffe2_DEPENDENCY_LIBS fmt::fmt-header-only)
set(BUILD_SHARED_LIBS ${TEMP_BUILD_SHARED_LIBS} CACHE BOOL "Build shared libs" FORCE)
@@ -1745,13 +1776,10 @@ if(USE_KINETO)
endif()
endif()
-# Include google/FlatBuffers
-include(${CMAKE_CURRENT_LIST_DIR}/FlatBuffers.cmake)
-# Include cpp-httplib
-add_library(httplib INTERFACE IMPORTED)
-target_include_directories(httplib SYSTEM INTERFACE ${PROJECT_SOURCE_DIR}/third_party/cpp-httplib)
+find_package(FlatBuffers REQUIRED)
+add_library(flatbuffers ALIAS flatbuffers::flatbuffers)
+find_package(httplib REQUIRED)
+find_package(nlohmann_json REQUIRED)
+add_library(nlohmann ALIAS nlohmann_json)
-# Include nlohmann-json
-add_library(nlohmann INTERFACE IMPORTED)
-include_directories(nlohmann SYSTEM INTERFACE ${PROJECT_SOURCE_DIR}/third_party/nlohmann/include)
diff --git a/torch/CMakeLists.txt b/torch/CMakeLists.txt
index 8b8ebdc..1777c0e 100644
--- a/torch/CMakeLists.txt
+++ b/torch/CMakeLists.txt
@@ -59,18 +59,7 @@ set(TORCH_PYTHON_INCLUDE_DIRECTORIES
${CMAKE_BINARY_DIR}
${CMAKE_BINARY_DIR}/aten/src
${CMAKE_BINARY_DIR}/caffe2/aten/src
- ${CMAKE_BINARY_DIR}/third_party
- ${CMAKE_BINARY_DIR}/third_party/onnx
-
${TORCH_ROOT}/third_party/valgrind-headers
-
- ${TORCH_ROOT}/third_party/gloo
- ${TORCH_ROOT}/third_party/onnx
- ${TORCH_ROOT}/third_party/flatbuffers/include
- ${TORCH_ROOT}/third_party/kineto/libkineto/include
- ${TORCH_ROOT}/third_party/cpp-httplib
- ${TORCH_ROOT}/third_party/nlohmann/include
-
${TORCH_SRC_DIR}/csrc
${TORCH_SRC_DIR}/csrc/api/include
${TORCH_SRC_DIR}/lib

View File

@ -0,0 +1,22 @@
diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
index 9acaf75..4f44d3e 100644
--- a/cmake/Dependencies.cmake
+++ b/cmake/Dependencies.cmake
@@ -1205,6 +1205,8 @@ if(USE_DISTRIBUTED AND USE_TENSORPIPE)
list(APPEND Caffe2_DEPENDENCY_LIBS tensorpipe)
list(APPEND Caffe2_DEPENDENCY_LIBS nlohmann)
if(USE_CUDA)
+ add_library(tensorpipe_cuda ALIAS unofficial::tensorpipe::tensorpipe_cuda)
+
list(APPEND Caffe2_CUDA_DEPENDENCY_LIBS tensorpipe_cuda)
elseif(USE_ROCM)
message(WARNING "TensorPipe doesn't yet support ROCm")
@@ -1279,7 +1281,7 @@ if(USE_GLOO)
endif()
# Pick the right dependency depending on USE_CUDA
list(APPEND Caffe2_DEPENDENCY_LIBS gloo)
- if(USE_CUDA)
+ if(FALSE)
list(APPEND Caffe2_CUDA_DEPENDENCY_LIBS gloo_cuda)
elseif(USE_ROCM)
list(APPEND Caffe2_HIP_DEPENDENCY_LIBS gloo_hip)

View File

@ -1,8 +1,21 @@
diff --git a/c10/util/Logging.cpp b/c10/util/Logging.cpp
index ff8e1d6cc..306dac51f 100644
--- a/c10/util/Logging.cpp
index c463658..a523040 100644
--- a/c10/util/Logging.cpp
+++ b/c10/util/Logging.cpp
@@ -218,24 +218,11 @@ C10_DEFINE_int(
@@ -362,7 +362,7 @@ void UpdateLoggingLevelsFromFlags() {
void ShowLogInfoToStderr() {
FLAGS_logtostderr = 1;
- FLAGS_minloglevel = std::min(FLAGS_minloglevel, google::GLOG_INFO);
+ FLAGS_minloglevel = std::min<int>(FLAGS_minloglevel, google::GLOG_INFO);
}
} // namespace c10
diff --git a/c10/util/Logging.cpp b/c10/util/Logging.cpp
index a523040..04375b6 100644
--- a/c10/util/Logging.cpp
+++ b/c10/util/Logging.cpp
@@ -295,23 +295,13 @@ C10_DEFINE_int(
google::GLOG_WARNING,
"The minimum log level that caffe2 will output.");
@ -20,11 +33,10 @@ index ff8e1d6cc..306dac51f 100644
namespace {
void initGoogleLogging(char const* name) {
-#if !defined(_MSC_VER)
- // This trick can only be used on UNIX platforms
#if !defined(_MSC_VER)
// This trick can only be used on UNIX platforms
- if (!::google::glog_internal_namespace_::IsGoogleLoggingInitialized())
-#endif
+ if (!::google::IsGoogleLoggingInitialized())
#endif
{
::google::InitGoogleLogging(name);
#if !defined(_MSC_VER)

View File

@ -1,15 +0,0 @@
diff --git a/aten/src/ATen/cpu/vec/vec_base.h b/aten/src/ATen/cpu/vec/vec_base.h
index f68e9c6eb..c42a9b8bb 100644
--- a/aten/src/ATen/cpu/vec/vec_base.h
+++ b/aten/src/ATen/cpu/vec/vec_base.h
@@ -150,9 +150,8 @@ public:
// versions GCC/Clang have buggy determinations on whether or not an
// identifier is odr-used or not, and in any case it's hard to tell if
// a variable is odr-used or not. So best to just cut the problem at the root.
- static constexpr size_type size_T = sizeof(T); // Workaround to compile with VS2022.
static constexpr size_type size() {
- return VECTOR_WIDTH / size_T;
+ return VECTOR_WIDTH / sizeof(T);
}
Vectorized() : values{static_cast<T>(0)} {}
Vectorized(T val) {

View File

@ -0,0 +1,16 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 463788e..1ca26e3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -796,7 +796,10 @@ if(NOT CMAKE_BUILD_TYPE)
endif()
# The below means we are cross compiling for arm64 or x86_64 on MacOSX
-if(NOT IOS
+if(TRUE)
+ message(STATUS "Using custom protoc executable: ${PROTOBUF_PROTOC_EXECUTABLE}")
+ message(STATUS "Using custom caffe2 protoc executable: ${CAFFE2_CUSTOM_PROTOC_EXECUTABLE}")
+elseif(NOT IOS
AND CMAKE_SYSTEM_NAME STREQUAL "Darwin"
AND CMAKE_OSX_ARCHITECTURES MATCHES "^(x86_64|arm64)$")
set(CROSS_COMPILING_MACOSX TRUE)

View File

@ -0,0 +1,29 @@
diff --git a/aten/src/ATen/native/cuda/SegmentReduce.cu b/aten/src/ATen/native/cuda/SegmentReduce.cu
index 04bec04..3ea8af2 100644
--- a/aten/src/ATen/native/cuda/SegmentReduce.cu
+++ b/aten/src/ATen/native/cuda/SegmentReduce.cu
@@ -1,5 +1,6 @@
#define TORCH_ASSERT_ONLY_METHOD_OPERATORS
#include <ATen/native/SegmentReduce.h>
+#include <cuda_runtime.h>
#include <ATen/core/Tensor.h>
#include <ATen/Dispatch.h>
@@ -17,6 +18,10 @@
#include <ATen/ops/cumsum.h>
#endif
+// SegmentReduce compilation with CUDA-12.9 causes NVCC crash on Windows
+// See https://github.com/pytorch/pytorch/issues/156181
+#if !defined(_WIN32) || CUDART_VERSION < 12090
+
namespace at::native {
namespace {
@@ -600,3 +605,5 @@ REGISTER_DISPATCH(
&_segment_reduce_offsets_backward_cuda_kernel);
} // namespace at::native
+
+#endif // !defined(_WIN32) || CUDART_VERSION < 12090
\ No newline at end of file

View File

@ -1,84 +0,0 @@
diff --git a/aten/src/ATen/CMakeLists.txt b/aten/src/ATen/CMakeLists.txt
index f3281d3cb..c8b6ed30e 100644
--- a/aten/src/ATen/CMakeLists.txt
+++ b/aten/src/ATen/CMakeLists.txt
@@ -418,7 +418,7 @@ if(NOT MSVC AND NOT EMSCRIPTEN AND NOT INTERN_BUILD_MOBILE)
list(APPEND ATen_THIRD_PARTY_INCLUDE ${CMAKE_BINARY_DIR}/include)
link_directories(${CMAKE_BINARY_DIR}/sleef/lib)
else()
- add_library(sleef SHARED IMPORTED)
+ add_library(sleef UNKNOWN IMPORTED)
find_library(SLEEF_LIBRARY sleef)
if(NOT SLEEF_LIBRARY)
message(FATAL_ERROR "Cannot find sleef")
@@ -426,7 +426,7 @@ if(NOT MSVC AND NOT EMSCRIPTEN AND NOT INTERN_BUILD_MOBILE)
message("Found sleef: ${SLEEF_LIBRARY}")
set_target_properties(sleef PROPERTIES IMPORTED_LOCATION "${SLEEF_LIBRARY}")
endif()
- list(APPEND ATen_CPU_DEPENDENCY_LIBS sleef)
+ list(APPEND ATen_CPU_DEPENDENCY_LIBS ${SLEEF_LIBRARY})
set(CMAKE_C_FLAGS_DEBUG ${OLD_CMAKE_C_FLAGS_DEBUG})
set(CMAKE_CXX_FLAGS ${OLD_CMAKE_CXX_FLAGS})
diff --git a/aten/src/ATen/cpu/vec/vec256/vec256_bfloat16.h b/aten/src/ATen/cpu/vec/vec256/vec256_bfloat16.h
index f3281d3cb..c8b6ed30e 100644
--- a/aten/src/ATen/cpu/vec/vec256/vec256_bfloat16.h
+++ b/aten/src/ATen/cpu/vec/vec256/vec256_bfloat16.h
@@ -21,6 +21,17 @@ inline namespace CPU_CAPABILITY {
#if defined(CPU_CAPABILITY_AVX2) && !defined(_MSC_VER)
+#ifndef SLEEF_CONST
+#if (defined(__GNUC__) || defined(__CLANG__)) && !defined(__INTEL_COMPILER)
+#define SLEEF_CONST const
+#else
+#define SLEEF_CONST
+#endif
+#define SLEEF_CONST_OLD SLEEF_CONST
+#else
+#define SLEEF_CONST_OLD
+#endif
+
// bfloat16 conversion
static inline void cvtbf16_fp32(const __m128i& a, __m256& o) {
o = _mm256_castsi256_ps(_mm256_slli_epi32(_mm256_cvtepu16_epi32(a), 16));
@@ -266,7 +277,7 @@ public:
}
return b;
}
- Vectorized<T> map(const __m256 (*const vop)(__m256)) const {
+ Vectorized<T> map(SLEEF_CONST __m256 (*SLEEF_CONST_OLD vop)(__m256)) const {
__m256 lo, hi;
cvt_to_fp32<T>(values, lo, hi);
const auto o1 = vop(lo);
diff --git a/aten/src/ATen/cpu/vec/vec256/vec256_bfloat16.h b/aten/src/ATen/cpu/vec/vec256/vec256_bfloat16.h
index f3281d3cb..c8b6ed30e 100644
--- a/aten/src/ATen/cpu/vec/vec512/vec512_bfloat16.h
+++ b/aten/src/ATen/cpu/vec/vec512/vec512_bfloat16.h
@@ -18,6 +18,17 @@ inline namespace CPU_CAPABILITY {
#if defined(CPU_CAPABILITY_AVX512) && !defined(_MSC_VER)
+#ifndef SLEEF_CONST
+#if (defined(__GNUC__) || defined(__CLANG__)) && !defined(__INTEL_COMPILER)
+#define SLEEF_CONST const
+#else
+#define SLEEF_CONST
+#endif
+#define SLEEF_CONST_OLD SLEEF_CONST
+#else
+#define SLEEF_CONST_OLD
+#endif
+
// bfloat16 conversion
static inline void cvtbf16_fp32(const __m256i& a, __m512& o) {
o = _mm512_castsi512_ps(_mm512_slli_epi32(_mm512_cvtepu16_epi32(a), 16));
@@ -345,7 +356,7 @@ public:
}
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wignored-qualifiers"
- Vectorized<T> map(const __m512 (*const vop)(__m512)) const {
+ Vectorized<T> map(SLEEF_CONST __m512 (*SLEEF_CONST_OLD vop)(__m512)) const {
__m512 lo, hi;
cvt_to_fp32<T>(values, lo, hi);
const auto o1 = vop(lo);

View File

@ -0,0 +1,43 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1ca26e3..7d3442c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1104,7 +1104,8 @@ if(NOT MSVC)
else()
# Define export functions for AOTI.
add_compile_definitions(EXPORT_AOTI_FUNCTIONS)
-
+ # needed for vulkan compile
+ add_compile_definitions(_USE_MATH_DEFINES) # math.h macros like M_PI, M_SQRT2, M_2_SQRTPI, etc.
# skip unwanted includes from windows.h
add_compile_definitions(WIN32_LEAN_AND_MEAN)
# Windows SDK broke compatibility since version 25131, but introduced this
diff --git a/aten/src/ATen/native/vulkan/api/Allocator.h b/aten/src/ATen/native/vulkan/api/Allocator.h
index a89c333..a9a41ef 100644
--- a/aten/src/ATen/native/vulkan/api/Allocator.h
+++ b/aten/src/ATen/native/vulkan/api/Allocator.h
@@ -50,7 +50,11 @@
#pragma clang diagnostic ignored "-Winconsistent-missing-destructor-override"
#endif /* __clang__ */
-#include <include/vk_mem_alloc.h>
+#if __has_include(<vma/vk_mem_alloc.h>)
+#include <vma/vk_mem_alloc.h>
+#else
+#include <vk_mem_alloc.h>
+#endif
#ifdef __clang__
#pragma clang diagnostic pop
diff --git a/aten/src/ATen/native/vulkan/api/QueryPool.cpp b/aten/src/ATen/native/vulkan/api/QueryPool.cpp
index 9c0c7fb..ae4a81f 100644
--- a/aten/src/ATen/native/vulkan/api/QueryPool.cpp
+++ b/aten/src/ATen/native/vulkan/api/QueryPool.cpp
@@ -9,6 +9,7 @@
#include <iomanip>
#include <iostream>
#include <utility>
+#include <algorithm>
namespace at {
namespace native {

View File

@ -1,12 +0,0 @@
diff --git a/cmake/public/cuda.cmake b/cmake/public/cuda.cmake
index 5964429..d528597 100644
--- a/cmake/public/cuda.cmake
+++ b/cmake/public/cuda.cmake
@@ -57,6 +57,7 @@ find_package(CUDAToolkit REQUIRED)
cmake_policy(POP)
+set(CUDAToolkit_INCLUDE_DIR "${CUDA_INCLUDE_DIRS}")
if(NOT CMAKE_CUDA_COMPILER_VERSION STREQUAL CUDAToolkit_VERSION OR
NOT CUDA_INCLUDE_DIRS STREQUAL CUDAToolkit_INCLUDE_DIR)
message(FATAL_ERROR "Found two conflicting CUDA installs:\n"

View File

@ -1,45 +0,0 @@
diff --git a/aten/src/ATen/native/quantized/cpu/qnnpack/CMakeLists.txt b/aten/src/ATen/native/quantized/cpu/qnnpack/CMakeLists.txt
index d185233..11f285b 100644
--- a/aten/src/ATen/native/quantized/cpu/qnnpack/CMakeLists.txt
+++ b/aten/src/ATen/native/quantized/cpu/qnnpack/CMakeLists.txt
@@ -389,12 +389,12 @@ if(NOT TARGET fxdiv AND NOT USE_SYSTEM_FXDIV)
"${FXDIV_SOURCE_DIR}"
"${CONFU_DEPENDENCIES_BINARY_DIR}/fxdiv")
elseif(NOT TARGET fxdiv AND USE_SYSTEM_FXDIV)
- find_file(FXDIV_HDR fxdiv.h PATH_SUFFIXES include)
+ find_path(FXDIV_HDR fxdiv.h PATH_SUFFIXES include)
if(NOT FXDIV_HDR)
message(FATAL_ERROR "Cannot find fxdiv")
endif()
- add_library(fxdiv STATIC "${FXDIV_HDR}")
- set_property(TARGET fxdiv PROPERTY LINKER_LANGUAGE C)
+ add_library(fxdiv INTERFACE IMPORTED)
+ target_include_directories(fxdiv INTERFACE "${FXDIV_HDR}")
endif()
target_link_libraries(pytorch_qnnpack PRIVATE fxdiv)
diff --git a/caffe2/CMakeLists.txt b/caffe2/CMakeLists.txt
index f7a595e..47faec5 100644
--- a/caffe2/CMakeLists.txt
+++ b/caffe2/CMakeLists.txt
@@ -108,12 +108,19 @@ endif()
# addressed yet.
if(NOT MSVC AND USE_XNNPACK)
- if(NOT TARGET fxdiv)
+ if(NOT TARGET fxdiv AND NOT USE_SYSTEM_FXDIV)
set(FXDIV_BUILD_TESTS OFF CACHE BOOL "")
set(FXDIV_BUILD_BENCHMARKS OFF CACHE BOOL "")
add_subdirectory(
"${FXDIV_SOURCE_DIR}"
"${CMAKE_BINARY_DIR}/FXdiv")
+ elseif(NOT TARGET fxdiv AND USE_SYSTEM_FXDIV)
+ find_path(FXDIV_HDR fxdiv.h PATH_SUFFIXES include)
+ if(NOT FXDIV_HDR)
+ message(FATAL_ERROR "Cannot find fxdiv")
+ endif()
+ add_library(fxdiv INTERFACE IMPORTED)
+ target_include_directories(fxdiv INTERFACE "${FXDIV_HDR}")
endif()
endif()

View File

@ -1,320 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7b8bc7c..fa6da32 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -383,7 +383,7 @@ if(WIN32)
NAMES uv libuv
HINTS $ENV{CONDA_PREFIX}\\Library $ENV{PREFIX}\\Library
PATH_SUFFIXES lib
- NO_DEFAULT_PATH)
+ )
if(NOT libuv_tmp_LIBRARY)
set(USE_DISTRIBUTED OFF)
set(USE_GLOO OFF)
@@ -1151,10 +1151,6 @@ if(BUILD_SHARED_LIBS)
${PROJECT_SOURCE_DIR}/cmake/Modules_CUDA_fix
DESTINATION share/cmake/Caffe2/
COMPONENT dev)
- install(FILES
- ${PROJECT_SOURCE_DIR}/cmake/Modules/FindCUDAToolkit.cmake
- DESTINATION share/cmake/Caffe2/
- COMPONENT dev)
install(FILES
${PROJECT_SOURCE_DIR}/cmake/Modules/FindCUSPARSELT.cmake
DESTINATION share/cmake/Caffe2/
diff --git a/aten/src/ATen/native/vulkan/api/Allocator.h b/aten/src/ATen/native/vulkan/api/Allocator.h
index d0c8bdf..50df97a 100644
--- a/aten/src/ATen/native/vulkan/api/Allocator.h
+++ b/aten/src/ATen/native/vulkan/api/Allocator.h
@@ -47,7 +47,7 @@
#pragma clang diagnostic ignored "-Wunused-variable"
#endif /* __clang__ */
-#include <include/vk_mem_alloc.h>
+#include <vk_mem_alloc.h>
#ifdef __clang__
#pragma clang diagnostic pop
diff --git a/aten/src/ATen/native/vulkan/ops/Clamp.cpp b/aten/src/ATen/native/vulkan/ops/Clamp.cpp
index dc22b98..f91fbf6 100644
--- a/aten/src/ATen/native/vulkan/ops/Clamp.cpp
+++ b/aten/src/ATen/native/vulkan/ops/Clamp.cpp
@@ -1,3 +1,6 @@
+#define _USE_MATH_DEFINES
+#include <cmath>
+
#include <ATen/native/vulkan/ops/Common.h>
#include <torch/library.h>
diff --git a/c10/CMakeLists.txt b/c10/CMakeLists.txt
index ad407e1..bbca41b 100644
--- a/c10/CMakeLists.txt
+++ b/c10/CMakeLists.txt
@@ -139,7 +139,11 @@ endif()
# Note: for now, we will put all export path into one single Caffe2Targets group
# to deal with the cmake deployment need. Inside the Caffe2Targets set, the
# individual libraries like libc10.so and libcaffe2.so are still self-contained.
-install(TARGETS c10 EXPORT Caffe2Targets DESTINATION lib)
+install(TARGETS c10 EXPORT Caffe2Targets
+ RUNTIME DESTINATION bin
+ ARCHIVE DESTINATION lib
+ ARCHIVE DESTINATION lib
+ )
install(DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
DESTINATION include
FILES_MATCHING PATTERN "*.h")
diff --git a/caffe2/CMakeLists.txt b/caffe2/CMakeLists.txt
index 74d0d55..cf349c2 100644
--- a/caffe2/CMakeLists.txt
+++ b/caffe2/CMakeLists.txt
@@ -632,7 +632,11 @@ if(USE_CUDA)
target_link_libraries(caffe2_nvrtc ${CUDA_NVRTC} ${CUDA_CUDA_LIB} ${CUDA_NVRTC_LIB} ${DELAY_LOAD_FLAGS})
target_include_directories(caffe2_nvrtc PRIVATE ${CUDA_INCLUDE_DIRS})
- install(TARGETS caffe2_nvrtc DESTINATION "${TORCH_INSTALL_LIB_DIR}")
+ install(TARGETS caffe2_nvrtc
+ RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}"
+ LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}"
+ ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}"
+ )
if(USE_NCCL)
list(APPEND Caffe2_GPU_SRCS
${TORCH_SRC_DIR}/csrc/cuda/nccl.cpp)
@@ -694,7 +698,11 @@ if(USE_ROCM)
add_library(caffe2_nvrtc SHARED ${ATen_NVRTC_STUB_SRCS})
target_link_libraries(caffe2_nvrtc ${PYTORCH_HIP_HCC_LIBRARIES} ${ROCM_HIPRTC_LIB})
target_compile_definitions(caffe2_nvrtc PRIVATE USE_ROCM __HIP_PLATFORM_HCC__)
- install(TARGETS caffe2_nvrtc DESTINATION "${TORCH_INSTALL_LIB_DIR}")
+ install(TARGETS caffe2_nvrtc
+ RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}"
+ LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}"
+ ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}"
+ )
endif()
if(NOT NO_API AND NOT BUILD_LITE_INTERPRETER)
@@ -1013,7 +1021,11 @@ elseif(USE_CUDA)
CUDA::culibos ${CMAKE_DL_LIBS})
endif()
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/../aten/src/ATen/native/cuda/LinearAlgebraStubs.cpp PROPERTIES COMPILE_FLAGS "-DBUILD_LAZY_CUDA_LINALG")
- install(TARGETS torch_cuda_linalg DESTINATION "${TORCH_INSTALL_LIB_DIR}")
+ install(TARGETS torch_cuda_linalg
+ RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}"
+ LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}"
+ ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}"
+ )
endif()
if(USE_PRECOMPILED_HEADERS)
@@ -1475,14 +1487,26 @@ endif()
caffe2_interface_library(torch torch_library)
-install(TARGETS torch_cpu torch_cpu_library EXPORT Caffe2Targets DESTINATION "${TORCH_INSTALL_LIB_DIR}")
+install(TARGETS torch_cpu torch_cpu_library EXPORT Caffe2Targets
+ RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}"
+ LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}"
+ ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}")
if(USE_CUDA)
- install(TARGETS torch_cuda torch_cuda_library EXPORT Caffe2Targets DESTINATION "${TORCH_INSTALL_LIB_DIR}")
+ install(TARGETS torch_cuda torch_cuda_library EXPORT Caffe2Targets
+ RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}"
+ LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}"
+ ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}")
elseif(USE_ROCM)
- install(TARGETS torch_hip torch_hip_library EXPORT Caffe2Targets DESTINATION "${TORCH_INSTALL_LIB_DIR}")
+ install(TARGETS torch_hip torch_hip_library EXPORT Caffe2Targets
+ RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}"
+ LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}"
+ ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}")
endif()
-install(TARGETS torch torch_library EXPORT Caffe2Targets DESTINATION "${TORCH_INSTALL_LIB_DIR}")
+install(TARGETS torch torch_library EXPORT Caffe2Targets
+ RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}"
+ LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}"
+ ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}")
target_link_libraries(torch PUBLIC torch_cpu_library)
@@ -1499,11 +1523,11 @@ endif()
# Install PDB files for MSVC builds
if(MSVC AND BUILD_SHARED_LIBS)
- install(FILES $<TARGET_PDB_FILE:torch_cpu> DESTINATION "${TORCH_INSTALL_LIB_DIR}" OPTIONAL)
+ install(FILES $<TARGET_PDB_FILE:torch_cpu> DESTINATION "${TORCH_INSTALL_BIN_DIR}" OPTIONAL)
if(USE_CUDA)
- install(FILES $<TARGET_PDB_FILE:torch_cuda> DESTINATION "${TORCH_INSTALL_LIB_DIR}" OPTIONAL)
+ install(FILES $<TARGET_PDB_FILE:torch_cuda> DESTINATION "${TORCH_INSTALL_BIN_DIR}" OPTIONAL)
elseif(USE_ROCM)
- install(FILES $<TARGET_PDB_FILE:torch_hip> DESTINATION "${TORCH_INSTALL_LIB_DIR}" OPTIONAL)
+ install(FILES $<TARGET_PDB_FILE:torch_hip> DESTINATION "${TORCH_INSTALL_BIN_DIR}" OPTIONAL)
endif()
endif()
@@ -1577,7 +1601,10 @@ if(BUILD_SHARED_LIBS)
target_link_libraries(torch_global_deps TBB::tbb)
endif()
- install(TARGETS torch_global_deps DESTINATION "${TORCH_INSTALL_LIB_DIR}")
+ install(TARGETS torch_global_deps
+ RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}"
+ LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}"
+ ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}")
endif()
# ---[ Caffe2 HIP sources.
diff --git a/cmake/Modules/FindCUSPARSELT.cmake b/cmake/Modules/FindCUSPARSELT.cmake
index 8727f44..1e41281 100644
--- a/cmake/Modules/FindCUSPARSELT.cmake
+++ b/cmake/Modules/FindCUSPARSELT.cmake
@@ -24,13 +24,13 @@ list(APPEND CMAKE_PREFIX_PATH ${CUSPARSELT_ROOT})
set(CUSPARSELT_INCLUDE_DIR $ENV{CUSPARSELT_INCLUDE_DIR} CACHE PATH "Folder containing NVIDIA cuSPARSELt header files")
find_path(CUSPARSELT_INCLUDE_PATH cusparseLt.h
- HINTS ${CUSPARSELT_INCLUDE_DIR}
+ HINTS ${CUSPARSELT_INCLUDE_DIR} ENV CUDA_PATH
PATH_SUFFIXES cuda/include cuda include)
set(CUSPARSELT_LIBRARY $ENV{CUSPARSELT_LIBRARY} CACHE PATH "Path to the cusparselt library file (e.g., libcusparseLt.so)")
-find_library(CUSPARSELT_LIBRARY_PATH libcusparseLt.so
- PATHS ${CUSPARSELT_LIBRARY}
+find_library(CUSPARSELT_LIBRARY_PATH cusparseLt
+ PATHS ${CUSPARSELT_LIBRARY} ENV CUDA_PATH
PATH_SUFFIXES lib lib64 cuda/lib cuda/lib64 lib/x64)
find_package_handle_standard_args(CUSPARSELT DEFAULT_MSG CUSPARSELT_LIBRARY_PATH CUSPARSELT_INCLUDE_PATH)
diff --git a/cmake/Modules/FindMAGMA.cmake b/cmake/Modules/FindMAGMA.cmake
index d2bff53..3af9012 100644
--- a/cmake/Modules/FindMAGMA.cmake
+++ b/cmake/Modules/FindMAGMA.cmake
@@ -30,18 +30,13 @@ FIND_PATH(MAGMA_INCLUDE_DIR magma.h
HINTS $ENV{MAGMA_HOME} /usr/local/magma
PATH_SUFFIXES include)
-IF (MAGMA_LIBRARIES)
- SET(MAGMA_FOUND TRUE)
-ELSE (MAGMA_LIBRARIES)
- SET(MAGMA_FOUND FALSE)
-ENDIF (MAGMA_LIBRARIES)
-
-add_library(torch::magma INTERFACE IMPORTED)
-set_property(TARGET torch::magma
- PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${MAGMA_INCLUDE_DIR}")
-set_property(TARGET torch::magma
- PROPERTY INTERFACE_LINK_LIBRARIES "${MAGMA_LIBRARIES}")
-
+if(NOT TARGET torch::magma)
+ add_library(torch::magma INTERFACE IMPORTED)
+ set_property(TARGET torch::magma
+ PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${MAGMA_INCLUDE_DIR}")
+ set_property(TARGET torch::magma
+ PROPERTY INTERFACE_LINK_LIBRARIES "${MAGMA_LIBRARIES}")
+endif()
# Check for Magma V2
include(CheckPrototypeDefinition)
check_prototype_definition(magma_get_sgeqrf_nb
@@ -53,3 +48,5 @@ if(MAGMA_V2)
set_property(TARGET torch::magma
PROPERTY INTERFACE_COMPILE_DEFINITIONS "MAGMA_V2")
endif(MAGMA_V2)
+
+find_package_handle_standard_args(MAGMA REQUIRED_VARS MAGMA_INCLUDE_DIR MAGMA_LIBRARIES)
\ No newline at end of file
diff --git a/test/cpp/jit/CMakeLists.txt b/test/cpp/jit/CMakeLists.txt
index 2376f1b..a8ae436 100644
--- a/test/cpp/jit/CMakeLists.txt
+++ b/test/cpp/jit/CMakeLists.txt
@@ -124,7 +124,7 @@ endif()
set(JIT_TEST_DEPENDENCIES torch gtest jitbackend_test backend_with_compiler)
if(MSVC)
- list(APPEND JIT_TEST_DEPENDENCIES onnx_library)
+ list(APPEND JIT_TEST_DEPENDENCIES onnx)
endif(MSVC)
target_link_libraries(test_jit PRIVATE ${JIT_TEST_DEPENDENCIES})
diff --git a/third_party/nvfuser/CMakeLists.txt b/third_party/nvfuser/CMakeLists.txt
index b148418..7b96083 100644
--- a/third_party/nvfuser/CMakeLists.txt
+++ b/third_party/nvfuser/CMakeLists.txt
@@ -158,7 +158,10 @@ endif()
target_include_directories(${NVFUSER_CODEGEN}
PUBLIC $<BUILD_INTERFACE:${NVFUSER_SRCS_DIR}>)
set_property(TARGET ${NVFUSER_CODEGEN} PROPERTY CXX_STANDARD 17)
-install(TARGETS ${NVFUSER_CODEGEN} EXPORT NvfuserTargets DESTINATION "${TORCH_INSTALL_LIB_DIR}")
+install(TARGETS ${NVFUSER_CODEGEN} EXPORT NvfuserTargets
+ RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}"
+ LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}"
+ ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}")
# installing nvfuser python tests
install(DIRECTORY "${NVFUSER_ROOT}/python_tests/"
DESTINATION "${TORCH_ROOT}/test/_nvfuser"
diff --git a/torch/CMakeLists.txt b/torch/CMakeLists.txt
index 62ee4c1..f75073c 100644
--- a/torch/CMakeLists.txt
+++ b/torch/CMakeLists.txt
@@ -107,7 +107,7 @@ set(TORCH_PYTHON_LINK_FLAGS "")
if(MSVC)
string(APPEND TORCH_PYTHON_LINK_FLAGS " /NODEFAULTLIB:LIBCMT.LIB")
- list(APPEND TORCH_PYTHON_LINK_LIBRARIES ${PYTHON_LIBRARIES} onnx_library)
+ list(APPEND TORCH_PYTHON_LINK_LIBRARIES ${PYTHON_LIBRARIES} onnx)
if(NOT CMAKE_BUILD_TYPE MATCHES "Release")
string(APPEND TORCH_PYTHON_LINK_FLAGS " /DEBUG:FULL")
endif()
@@ -374,7 +374,10 @@ if(NOT TORCH_PYTHON_LINK_FLAGS STREQUAL "")
set_target_properties(torch_python PROPERTIES LINK_FLAGS ${TORCH_PYTHON_LINK_FLAGS})
endif()
-install(TARGETS torch_python DESTINATION "${TORCH_INSTALL_LIB_DIR}")
+install(TARGETS torch_python
+ RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}"
+ LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}"
+ ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}")
# Generate torch/version.py from the appropriate CMake cache variables.
if(${CMAKE_BUILD_TYPE} STREQUAL "Debug")
diff --git a/torch/csrc/cuda/shared/nvtx.cpp b/torch/csrc/cuda/shared/nvtx.cpp
index 4fb72c5..1abe1b7 100644
--- a/torch/csrc/cuda/shared/nvtx.cpp
+++ b/torch/csrc/cuda/shared/nvtx.cpp
@@ -1,7 +1,7 @@
#ifdef _WIN32
#include <wchar.h> // _wgetenv for nvtx
#endif
-#include <nvToolsExt.h>
+#include <nvtx3/nvToolsExt.h>
#include <torch/csrc/utils/pybind.h>
namespace torch::cuda::shared {
diff --git a/torch/csrc/jit/tensorexpr/llvm_codegen.h b/torch/csrc/jit/tensorexpr/llvm_codegen.h
index 7ab506f..2ee3b68 100644
--- a/torch/csrc/jit/tensorexpr/llvm_codegen.h
+++ b/torch/csrc/jit/tensorexpr/llvm_codegen.h
@@ -41,9 +41,9 @@ class TORCH_API LLVMCodeGen : public CodeGen {
// users can continue to call this kernel using `call` and `call_raw`.
void cleanup_memory();
- TORCH_API void call(const std::vector<CallArg>& args) override;
- TORCH_API void call_raw(const std::vector<void*>& args) override;
- TORCH_API void call_with_numel(void** args, int64_t numel) override;
+ void call(const std::vector<CallArg>& args) override;
+ void call_raw(const std::vector<void*>& args) override;
+ void call_with_numel(void** args, int64_t numel) override;
at::Tensor empty_strided(
c10::IntArrayRef size,
diff --git a/torch/csrc/profiler/stubs/cuda.cpp b/torch/csrc/profiler/stubs/cuda.cpp
index dec8757..3bb368a 100644
--- a/torch/csrc/profiler/stubs/cuda.cpp
+++ b/torch/csrc/profiler/stubs/cuda.cpp
@@ -1,6 +1,6 @@
#include <sstream>
-#include <nvToolsExt.h>
+#include <nvtx3/nvToolsExt.h>
#include <c10/cuda/CUDAGuard.h>
#include <c10/util/irange.h>

View File

@ -1,25 +0,0 @@
diff --git a/caffe2/core/macros.h.in b/caffe2/core/macros.h.in
index 997752ede3..7209b9a63e 100644
--- a/caffe2/core/macros.h.in
+++ b/caffe2/core/macros.h.in
@@ -35,7 +35,7 @@
// Useful build settings that are recorded in the compiled binary
#define CAFFE2_BUILD_STRINGS { \
{"TORCH_VERSION", "${TORCH_VERSION}"}, \
- {"CXX_COMPILER", "${CMAKE_CXX_COMPILER}"}, \
+ {"CXX_COMPILER", "${cxx_compiler}"}, \
{"CXX_FLAGS", "${CMAKE_CXX_FLAGS}"}, \
{"BUILD_TYPE", "${CMAKE_BUILD_TYPE}"}, \
{"BLAS_INFO", "${BLAS_INFO}"}, \
diff --git a/cmake/Codegen.cmake b/cmake/Codegen.cmake
index 6fa2ab6ea1..07c449c02b 100644
--- a/cmake/Codegen.cmake
+++ b/cmake/Codegen.cmake
@@ -36,6 +36,7 @@ endfunction()
################################################################################
# ---[ Write the macros file
+cmake_path(GET CMAKE_CXX_COMPILER FILENAME cxx_compiler)
configure_file(
${CMAKE_CURRENT_LIST_DIR}/../caffe2/core/macros.h.in
${CMAKE_BINARY_DIR}/caffe2/core/macros.h)

View File

@ -1,285 +1,240 @@
vcpkg_download_distfile(
CUDNN_9_FIX
URLS https://github.com/pytorch/pytorch/commit/e14026bc2a6cd80bedffead77a5d7b75a37f8e67.patch?full_index=1
SHA512 9569547b44b61f9559f0e7ab91f2be51657ece4f5462b6860cb5eae8d23d01187d6af046b369a77a228fe4d7153f5c683b686e84c1296a662f83e5f1f281bc7e
FILENAME libtorch-cudnn-9-fix-e14026bc2a6cd80bedffead77a5d7b75a37f8e67.patch
)
vcpkg_download_distfile(
CUDA_THRUST_MISSING_HEADER_FIX
URLS https://github.com/pytorch/pytorch/commit/2a440348958b3f0a2b09458bd76fe5959b371c0c.patch?full_index=1
SHA512 eff10d81b1c635108ad1b95a430865a76ab3f2079be74e61e06876942ac1fd43a274fc1c73e43c2c01b9ce5aca648213ef75c13c28b8ffa40497e4e26d5e3b16
FILENAME libtorch-cuda-thrust-missing-header-2a440348958b3f0a2b09458bd76fe5959b371c0c.patch
)
vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO pytorch/pytorch
REF "v${VERSION}"
SHA512 a8961d78ad785b13c959a0612563a60e0de17a7c8bb9822ddea9a24072796354d07e81c47b6cc8761b21a6448845b088cf80e1661d9e889b0ed5474d3dc76756
HEAD_REF master
PATCHES
"${CUDNN_9_FIX}"
"${CUDA_THRUST_MISSING_HEADER_FIX}"
cmake-fixes.patch
more-fixes.patch
fix-build.patch
clang-cl.patch
cuda-adjustments.patch
fix-api-export.patch
fxdiv.patch
protoc.patch
fix-sleef.patch
fix-glog.patch
fix-msvc-ICE.patch
fix-calculate-minloglevel.patch
force-cuda-include.patch
fix-aten-cutlass.patch
fix-build-error-with-fmt11.patch
no-abs-path.patch
add-include-chrono.patch
)
file(REMOVE_RECURSE "${SOURCE_PATH}/caffe2/core/macros.h") # We must use generated header files
vcpkg_from_github(
OUT_SOURCE_PATH src_kineto
REPO pytorch/kineto
REF 49e854d805d916b2031e337763928d2f8d2e1fbf
SHA512 ae63d48dc5b8ac30c38c2ace60f16834c7e9275fa342dc9f109d4fbc87b7bd674664f6413c36d0c1ab5a7da786030a4108d83daa4502b2f30239283ea3acdb16
HEAD_REF main
PATCHES
kineto.patch
)
file(COPY "${src_kineto}/" DESTINATION "${SOURCE_PATH}/third_party/kineto")
vcpkg_from_github(
OUT_SOURCE_PATH src_cudnn
REPO NVIDIA/cudnn-frontend # new port ?
REF 12f35fa2be5994c1106367cac2fba21457b064f4
SHA512 a7e4bf58f82ca0b767df35da1b3588e2639ea2ef22ed0c47e989fb4cde5a28b0605b228b42fcaefbdf721bfbb91f2a9e7d41352ff522bd80b63db6d27e44ec20
HEAD_REF main
)
file(COPY "${src_cudnn}/" DESTINATION "${SOURCE_PATH}/third_party/cudnn_frontend")
file(REMOVE
"${SOURCE_PATH}/cmake/Modules/FindBLAS.cmake"
"${SOURCE_PATH}/cmake/Modules/FindLAPACK.cmake"
"${SOURCE_PATH}/cmake/Modules/FindCUDA.cmake"
"${SOURCE_PATH}/cmake/Modules/FindCUDAToolkit.cmake"
"${SOURCE_PATH}/cmake/Modules/Findpybind11.cmake"
)
find_program(FLATC NAMES flatc PATHS "${CURRENT_HOST_INSTALLED_DIR}/tools/flatbuffers" REQUIRED NO_DEFAULT_PATH NO_CMAKE_PATH)
message(STATUS "Using flatc: ${FLATC}")
vcpkg_execute_required_process(
COMMAND ${FLATC} --cpp --no-prefix --scoped-enums --gen-mutable mobile_bytecode.fbs
LOGNAME codegen-flatc-mobile_bytecode
WORKING_DIRECTORY "${SOURCE_PATH}/torch/csrc/jit/serialization"
)
find_program(PROTOC NAMES protoc PATHS "${CURRENT_HOST_INSTALLED_DIR}/tools/protobuf" REQUIRED NO_DEFAULT_PATH NO_CMAKE_PATH)
message(STATUS "Using protoc: ${PROTOC}")
x_vcpkg_get_python_packages(
PYTHON_VERSION 3
PACKAGES typing-extensions pyyaml numpy
OUT_PYTHON_VAR PYTHON3
)
#set(PYTHON3 "${CURRENT_HOST_INSTALLED_DIR}/tools/python3/python${VCPKG_HOST_EXECUTABLE_SUFFIX}")
message(STATUS "Using Python3: ${PYTHON3}")
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
dist USE_DISTRIBUTED # MPI, Gloo, TensorPipe
zstd USE_ZSTD
fbgemm USE_FBGEMM
opencv USE_OPENCV
# These are alternatives !
# tbb USE_TBB
# tbb AT_PARALLEL_NATIVE_TBB # AT_PARALLEL_ are alternatives
# openmp USE_OPENMP
# openmp AT_PARALLEL_OPENMP # AT_PARALLEL_ are alternatives
leveldb USE_LEVELDB
opencl USE_OPENCL
cuda USE_CUDA
cuda USE_CUDNN
cuda USE_NCCL
cuda USE_SYSTEM_NCCL
cuda USE_NVRTC
cuda AT_CUDA_ENABLED
cuda AT_CUDNN_ENABLED
cuda USE_MAGMA
vulkan USE_VULKAN
#vulkan USE_VULKAN_SHADERC_RUNTIME
vulkan USE_VULKAN_RELAXED_PRECISION
rocm USE_ROCM # This is an alternative to cuda not a feature! (Not in vcpkg.json!) -> disabled
llvm USE_LLVM
mpi USE_MPI
nnpack USE_NNPACK # todo: check use of `DISABLE_NNPACK_AND_FAMILY`
nnpack AT_NNPACK_ENABLED
qnnpack USE_QNNPACK # todo: check use of `USE_PYTORCH_QNNPACK`
# No feature in vcpkg yet so disabled. -> Requires numpy build by vcpkg itself
python BUILD_PYTHON
python USE_NUMPY
)
if("dist" IN_LIST FEATURES)
if(VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_OSX)
list(APPEND FEATURE_OPTIONS -DUSE_TENSORPIPE=ON)
endif()
if(VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_OSX)
list(APPEND FEATURE_OPTIONS -DUSE_LIBUV=ON)
endif()
list(APPEND FEATURE_OPTIONS -DUSE_GLOO=${VCPKG_TARGET_IS_LINUX})
endif()
if(VCPKG_TARGET_IS_ANDROID OR VCPKG_TARGET_IS_IOS)
list(APPEND FEATURE_OPTIONS -DINTERN_BUILD_MOBILE=ON)
else()
list(APPEND FEATURE_OPTIONS -DINTERN_BUILD_MOBILE=OFF)
endif()
string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" USE_STATIC_RUNTIME)
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
DISABLE_PARALLEL_CONFIGURE
OPTIONS
${FEATURE_OPTIONS}
-DProtobuf_PROTOC_EXECUTABLE:FILEPATH=${PROTOC}
-DCAFFE2_CUSTOM_PROTOC_EXECUTABLE:FILEPATH=${PROTOC}
-DPYTHON_EXECUTABLE:FILEPATH=${PYTHON3}
#-DPython3_EXECUTABLE:FILEPATH=${PYTHON3}
-DCAFFE2_STATIC_LINK_CUDA=ON
-DCAFFE2_USE_MSVC_STATIC_RUNTIME=${USE_STATIC_RUNTIME}
-DBUILD_CUSTOM_PROTOBUF=OFF
-DUSE_LITE_PROTO=OFF
-DBUILD_TEST=OFF
-DATEN_NO_TEST=ON
-DUSE_SYSTEM_LIBS=ON
-DUSE_METAL=OFF
-DUSE_PYTORCH_METAL=OFF
-DUSE_PYTORCH_METAL_EXPORT=OFF
-DUSE_GFLAGS=ON
-DUSE_GLOG=ON
-DUSE_LMDB=ON
-DUSE_ITT=OFF
-DUSE_ROCKSDB=ON
-DUSE_OBSERVERS=OFF
-DUSE_PYTORCH_QNNPACK=OFF
-DUSE_KINETO=OFF
-DUSE_ROCM=OFF
-DUSE_NUMA=OFF
-DUSE_SYSTEM_ONNX=ON
-DUSE_SYSTEM_FP16=ON
-DUSE_SYSTEM_EIGEN_INSTALL=ON
-DUSE_SYSTEM_CPUINFO=ON
-DUSE_SYSTEM_PTHREADPOOL=ON
-DUSE_SYSTEM_PYBIND11=ON
-DUSE_SYSTEM_ZSTD=ON
-DUSE_SYSTEM_GLOO=ON
-DUSE_SYSTEM_NCCL=ON
-DUSE_SYSTEM_LIBS=ON
-DUSE_SYSTEM_FXDIV=ON
-DUSE_SYSTEM_SLEEF=ON
-DBUILD_JNI=${VCPKG_TARGET_IS_ANDROID}
-DUSE_NNAPI=${VCPKG_TARGET_IS_ANDROID}
${BLAS_OPTIONS}
# BLAS=MKL not supported in this port
-DUSE_MKLDNN=OFF
-DUSE_MKLDNN_CBLAS=OFF
#-DCAFFE2_USE_MKL=ON
#-DAT_MKL_ENABLED=ON
-DAT_MKLDNN_ENABLED=OFF
-DUSE_OPENCL=ON
-DUSE_NUMPY=ON
-DUSE_KINETO=OFF #
OPTIONS_RELEASE
-DPYTHON_LIBRARY=${CURRENT_INSTALLED_DIR}/lib/python311.lib
OPTIONS_DEBUG
-DPYTHON_LIBRARY=${CURRENT_INSTALLED_DIR}/debug/lib/python311_d.lib
MAYBE_UNUSED_VARIABLES
USE_NUMA
USE_SYSTEM_BIND11
MKLDNN_CPU_RUNTIME
PYTHON_LIBRARY
)
vcpkg_cmake_install()
vcpkg_copy_pdbs()
vcpkg_cmake_config_fixup(PACKAGE_NAME caffe2 CONFIG_PATH "share/cmake/Caffe2" DO_NOT_DELETE_PARENT_CONFIG_PATH)
vcpkg_cmake_config_fixup(PACKAGE_NAME torch CONFIG_PATH "share/cmake/Torch")
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/torch/TorchConfig.cmake" "/../../../" "/../../")
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/caffe2/Caffe2Config.cmake" "/../../../" "/../../")
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/caffe2/Caffe2Config.cmake"
"set(Caffe2_MAIN_LIBS torch_library)"
"set(Caffe2_MAIN_LIBS torch_library)\nfind_dependency(Eigen3)")
# Traverse the folder and remove "some" empty folders
function(cleanup_once folder)
if(NOT IS_DIRECTORY "${folder}")
return()
endif()
file(GLOB paths LIST_DIRECTORIES true "${folder}/*")
list(LENGTH paths count)
# 1. remove if the given folder is empty
if(count EQUAL 0)
file(REMOVE_RECURSE "${folder}")
message(STATUS "Removed ${folder}")
return()
endif()
# 2. repeat the operation for hop 1 sub-directories
foreach(path ${paths})
cleanup_once(${path})
endforeach()
endfunction()
# Some folders may contain empty folders. They will become empty after `cleanup_once`.
# Repeat given times to delete new empty folders.
function(cleanup_repeat folder repeat)
if(NOT IS_DIRECTORY "${folder}")
return()
endif()
while(repeat GREATER_EQUAL 1)
math(EXPR repeat "${repeat} - 1" OUTPUT_FORMAT DECIMAL)
cleanup_once("${folder}")
endwhile()
endfunction()
cleanup_repeat("${CURRENT_PACKAGES_DIR}/include" 5)
cleanup_repeat("${CURRENT_PACKAGES_DIR}/lib/site-packages" 13)
file(REMOVE_RECURSE
"${CURRENT_PACKAGES_DIR}/debug/include"
"${CURRENT_PACKAGES_DIR}/debug/share"
)
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
# Cannot build python bindings yet
#if("python" IN_LIST FEATURES)
# set(ENV{USE_SYSTEM_LIBS} 1)
# vcpkg_replace_string("${SOURCE_PATH}/setup.py" "@TARGET_TRIPLET@" "${TARGET_TRIPLET}-rel")
# vcpkg_replace_string("${SOURCE_PATH}/tools/setup_helpers/env.py" "@TARGET_TRIPLET@" "${TARGET_TRIPLET}-rel")
# vcpkg_replace_string("${SOURCE_PATH}/torch/utils/cpp_extension.py" "@TARGET_TRIPLET@" "${TARGET_TRIPLET}-rel")
# vcpkg_python_build_and_install_wheel(SOURCE_PATH "${SOURCE_PATH}" OPTIONS -x)
#endif()
set(VCPKG_POLICY_DLLS_WITHOUT_EXPORTS enabled) # torch_global_deps.dll is empty.c and just for linking deps
set(config "${CURRENT_PACKAGES_DIR}/share/torch/TorchConfig.cmake")
file(READ "${config}" contents)
string(REGEX REPLACE "set\\\(NVTOOLEXT_HOME[^)]+" "set(NVTOOLEXT_HOME \"\$ENV{CUDA_PATH}\"" contents "${contents}")
#string(REGEX REPLACE "set\\\(NVTOOLEXT_HOME[^)]+" "set(NVTOOLEXT_HOME \"\${CMAKE_CURRENT_LIST_DIR}/../../tools/cuda/\"" contents "${contents}")
string(REGEX REPLACE "\\\${NVTOOLEXT_HOME}/lib/x64/nvToolsExt64_1.lib" "" contents "${contents}")
file(WRITE "${config}" "${contents}")
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/torch/csrc/autograd/custom_function.h" "struct TORCH_API Function" "struct Function")
vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO pytorch/pytorch
REF "v${VERSION}"
SHA512 a9fc2252af9031c2cd46dde558c491aea8bc322fb80157a7760f300a44b759d4bfe866f030fbb974b80493057cfff4dd512498f99a100ed6d05bf620258ed37e
HEAD_REF master
PATCHES
fix-cmake.patch
fix-osx.patch
fix-vulkan.patch
fix-glog.patch
fix-pytorch-pr-156630.patch # https://github.com/pytorch/pytorch/pull/156630
fix-dist-cuda.patch
)
file(REMOVE_RECURSE "${SOURCE_PATH}/caffe2/core/macros.h") # We must use generated header files
vcpkg_from_github(
OUT_SOURCE_PATH src_kineto
REPO pytorch/kineto
REF d9753139d181b9ff42872465aac0e5d3018be415
SHA512 f037fac78e566c40108acf9eace55a8f67a2c5b71f298fd3cd17bf22cf05240c260fd89f017fa411656a7505ec9073a06a3048e191251d5cfc4b52c237b37d0b
HEAD_REF main
PATCHES
kineto.patch
)
file(COPY "${src_kineto}/" DESTINATION "${SOURCE_PATH}/third_party/kineto")
vcpkg_from_github(
OUT_SOURCE_PATH src_cudnn
REPO NVIDIA/cudnn-frontend # new port ?
REF 2533f5e5c1877fd76266133c1479ef1643ce3a8b # 1.6.1
SHA512 8caacdf9f7dbd6ce55507f5f7165db8640b681e2a7dfd6a841de8eaa3489cff5ba41d11758cc464320b2ff9a491f8234e1749580cf43cac702f07cf82611e084
HEAD_REF main
)
file(COPY "${src_cudnn}/" DESTINATION "${SOURCE_PATH}/third_party/cudnn_frontend")
file(REMOVE
"${SOURCE_PATH}/cmake/Modules/FindBLAS.cmake"
"${SOURCE_PATH}/cmake/Modules/FindLAPACK.cmake"
"${SOURCE_PATH}/cmake/Modules/FindCUDA.cmake"
"${SOURCE_PATH}/cmake/Modules/FindCUDAToolkit.cmake"
"${SOURCE_PATH}/cmake/Modules/Findpybind11.cmake"
)
find_program(FLATC NAMES flatc PATHS "${CURRENT_HOST_INSTALLED_DIR}/tools/flatbuffers" REQUIRED NO_DEFAULT_PATH NO_CMAKE_PATH)
message(STATUS "Using flatc: ${FLATC}")
vcpkg_execute_required_process(
COMMAND ${FLATC} --cpp --no-prefix --scoped-enums --gen-mutable mobile_bytecode.fbs
LOGNAME codegen-flatc-mobile_bytecode
WORKING_DIRECTORY "${SOURCE_PATH}/torch/csrc/jit/serialization"
)
find_program(PROTOC NAMES protoc PATHS "${CURRENT_HOST_INSTALLED_DIR}/tools/protobuf" REQUIRED NO_DEFAULT_PATH NO_CMAKE_PATH)
message(STATUS "Using protoc: ${PROTOC}")
x_vcpkg_get_python_packages(
PYTHON_VERSION 3
PACKAGES typing-extensions pyyaml
# numpy
OUT_PYTHON_VAR PYTHON3
)
message(STATUS "Using Python3: ${PYTHON3}")
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
dist USE_DISTRIBUTED # MPI, Gloo, TensorPipe
zstd USE_ZSTD
fbgemm USE_FBGEMM
opencv USE_OPENCV
opencl USE_OPENCL
mkldnn USE_MKLDNN
cuda USE_CUDA
cuda USE_CUDNN
cuda USE_NCCL
cuda USE_SYSTEM_NCCL
cuda USE_NVRTC
cuda AT_CUDA_ENABLED
cuda AT_CUDNN_ENABLED
cuda USE_MAGMA
vulkan USE_VULKAN
vulkan USE_VULKAN_RELAXED_PRECISION
rocm USE_ROCM # This is an alternative to cuda not a feature! (Not in vcpkg.json!) -> disabled
llvm USE_LLVM
mpi USE_MPI
nnpack USE_NNPACK # todo: check use of `DISABLE_NNPACK_AND_FAMILY`
# No feature in vcpkg yet so disabled. -> Requires numpy build by vcpkg itself
python BUILD_PYTHON
python USE_NUMPY
glog USE_GLOG
gflags USE_GFLAGS
)
if("dist" IN_LIST FEATURES)
if(VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_OSX)
list(APPEND FEATURE_OPTIONS -DUSE_TENSORPIPE=ON)
endif()
if(VCPKG_TARGET_IS_OSX)
list(APPEND FEATURE_OPTIONS -DUSE_LIBUV=ON)
endif()
list(APPEND FEATURE_OPTIONS -DUSE_GLOO=${VCPKG_TARGET_IS_LINUX})
endif()
if("cuda" IN_LIST FEATURES)
vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT cuda_toolkit_root)
list(APPEND FEATURE_OPTIONS
"-DCMAKE_CUDA_COMPILER=${NVCC}"
"-DCUDAToolkit_ROOT=${cuda_toolkit_root}"
)
endif()
if("vulkan" IN_LIST FEATURES) # Vulkan::glslc in FindVulkan.cmake
find_program(GLSLC NAMES glslc PATHS "${CURRENT_HOST_INSTALLED_DIR}/tools/shaderc" REQUIRED)
message(STATUS "Using glslc: ${GLSLC}")
list(APPEND FEATURE_OPTIONS "-DVulkan_GLSLC_EXECUTABLE:FILEPATH=${GLSLC}")
endif()
set(TARGET_IS_MOBILE OFF)
if(VCPKG_TARGET_IS_ANDROID OR VCPKG_TARGET_IS_IOS)
set(TARGET_IS_MOBILE ON)
endif()
set(TARGET_IS_APPLE OFF)
if(VCPKG_TARGET_IS_IOS OR VCPKG_TARGET_IS_OSX)
set(TARGET_IS_APPLE ON)
endif()
string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" USE_STATIC_RUNTIME)
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
DISABLE_PARALLEL_CONFIGURE
OPTIONS
${FEATURE_OPTIONS}
-DProtobuf_PROTOC_EXECUTABLE:FILEPATH=${PROTOC}
-DCAFFE2_CUSTOM_PROTOC_EXECUTABLE:FILEPATH=${PROTOC}
-DPython_EXECUTABLE:FILEPATH=${PYTHON3}
-DPython3_EXECUTABLE:FILEPATH=${PYTHON3}
-DBUILD_PYTHON=OFF
-DUSE_NUMPY=OFF
-DCAFFE2_STATIC_LINK_CUDA=ON
-DCAFFE2_USE_MSVC_STATIC_RUNTIME=${USE_STATIC_RUNTIME}
-DBUILD_CUSTOM_PROTOBUF=OFF
-DBUILD_PYTHON=OFF
-DUSE_LITE_PROTO=OFF
-DBUILD_TEST=OFF
-DATEN_NO_TEST=ON
-DUSE_SYSTEM_LIBS=ON
-DUSE_METAL=OFF
-DUSE_FLASH_ATTENTION=OFF
-DUSE_PYTORCH_METAL=OFF
-DUSE_PYTORCH_METAL_EXPORT=OFF
-DUSE_PYTORCH_QNNPACK:BOOL=OFF
-DUSE_ITT=OFF
-DUSE_ROCKSDB=ON
-DUSE_OBSERVERS=OFF
-DUSE_KINETO=OFF
-DUSE_ROCM=OFF
-DUSE_NUMA=OFF
-DUSE_SYSTEM_LIBS=ON
-DBUILD_JNI=${VCPKG_TARGET_IS_ANDROID}
-DUSE_NNAPI=${VCPKG_TARGET_IS_ANDROID}
${BLAS_OPTIONS}
# BLAS=MKL not supported in this port
-DUSE_MKLDNN=OFF
-DUSE_MKLDNN_CBLAS=OFF
#-DCAFFE2_USE_MKL=ON
#-DAT_MKL_ENABLED=ON
-DAT_MKLDNN_ENABLED=OFF
-DUSE_OPENCL=ON
-DUSE_KINETO=OFF #
# Should be enabled in-future along with the "python" feature (currently disabled)
# OPTIONS_RELEASE
# -DPYTHON_LIBRARY=${CURRENT_INSTALLED_DIR}/lib/python311.lib
# OPTIONS_DEBUG
# -DPYTHON_LIBRARY=${CURRENT_INSTALLED_DIR}/debug/lib/python311_d.lib
MAYBE_UNUSED_VARIABLES
USE_NUMA
USE_SYSTEM_BIND11
MKLDNN_CPU_RUNTIME
PYTHON_LIBRARY
)
vcpkg_cmake_install()
vcpkg_copy_pdbs()
vcpkg_cmake_config_fixup(PACKAGE_NAME Caffe2 CONFIG_PATH "share/cmake/Caffe2" DO_NOT_DELETE_PARENT_CONFIG_PATH)
vcpkg_cmake_config_fixup(PACKAGE_NAME torch CONFIG_PATH "share/cmake/Torch" DO_NOT_DELETE_PARENT_CONFIG_PATH)
vcpkg_cmake_config_fixup(PACKAGE_NAME ATen CONFIG_PATH "share/cmake/ATen" )
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/torch/TorchConfig.cmake" "/../../../" "/../../")
# Traverse the folder and remove "some" empty folders
function(cleanup_once folder)
if(NOT IS_DIRECTORY "${folder}")
return()
endif()
file(GLOB paths LIST_DIRECTORIES true "${folder}/*")
list(LENGTH paths count)
# 1. remove if the given folder is empty
if(count EQUAL 0)
file(REMOVE_RECURSE "${folder}")
message(STATUS "Removed ${folder}")
return()
endif()
# 2. repeat the operation for hop 1 sub-directories
foreach(path ${paths})
cleanup_once(${path})
endforeach()
endfunction()
# Some folders may contain empty folders. They will become empty after `cleanup_once`.
# Repeat given times to delete new empty folders.
function(cleanup_repeat folder repeat)
if(NOT IS_DIRECTORY "${folder}")
return()
endif()
while(repeat GREATER_EQUAL 1)
math(EXPR repeat "${repeat} - 1" OUTPUT_FORMAT DECIMAL)
cleanup_once("${folder}")
endwhile()
endfunction()
cleanup_repeat("${CURRENT_PACKAGES_DIR}/include" 5)
cleanup_repeat("${CURRENT_PACKAGES_DIR}/lib/site-packages" 13)
file(REMOVE_RECURSE
"${CURRENT_PACKAGES_DIR}/debug/include"
"${CURRENT_PACKAGES_DIR}/debug/share"
)
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
set(VCPKG_POLICY_DLLS_WITHOUT_EXPORTS enabled) # torch_global_deps.dll is empty.c and just for linking deps

View File

@ -1,13 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fa6da328b..80bbfc6bb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -686,7 +686,7 @@ if(NOT CMAKE_BUILD_TYPE)
endif()
# The below means we are cross compiling for arm64 or x86_64 on MacOSX
-if(NOT IOS AND CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_OSX_ARCHITECTURES MATCHES "^(x86_64|arm64)$")
+if(0)
set(CROSS_COMPILING_MACOSX TRUE)
# We need to compile a universal protoc to not fail protobuf build
# We set CMAKE_TRY_COMPILE_TARGET_TYPE to STATIC_LIBRARY (vs executable) to succeed the cmake compiler check for cross-compiling

View File

@ -1,16 +1,19 @@
{
"name": "libtorch",
"version": "2.1.2",
"port-version": 12,
"version": "2.7.1",
"description": "Tensors and Dynamic neural networks in Python with strong GPU acceleration",
"homepage": "https://pytorch.org/",
"license": null,
"supports": "(windows & !static) | osx | linux",
"dependencies": [
"blas",
"cpp-httplib",
"cpuinfo",
"eigen3",
"fftw3",
{
"name": "fbgemm",
"platform": "x64"
},
"flatbuffers",
{
"name": "flatbuffers",
@ -18,14 +21,12 @@
},
"fmt",
"foxi",
"foxi",
"fp16",
"gemmlowp",
"gflags",
"glog",
"lapack",
"lmdb",
"mimalloc",
"nlohmann-json",
"onnx",
"onnx-optimizer",
"opencl",
@ -36,6 +37,7 @@
"host": true
},
"pthreadpool",
"pybind11",
"sleef",
{
"name": "vcpkg-cmake",
@ -52,21 +54,43 @@
"xnnpack"
],
"default-features": [
"gflags",
"glog",
"opencv",
"zstd"
],
"features": {
"cuda": {
"description": "Build with CUDA GPU backend",
"supports": "(windows & x64 & !staticcrt) | (linux & x64)",
"dependencies": [
"cuda",
"cudnn",
{
"name": "gloo",
"features": [
"cuda"
],
"platform": "linux"
},
"magma",
"nvidia-cutlass"
{
"name": "nccl",
"platform": "linux"
},
"nvidia-cutlass",
{
"name": "tensorpipe",
"features": [
"cuda"
],
"platform": "linux"
}
]
},
"dist": {
"description": "Use distributed with MPI, Gloo, libuv, TensorPipe",
"supports": "linux | windows",
"dependencies": [
{
"name": "gloo",
@ -86,15 +110,20 @@
},
{
"name": "tensorpipe",
"platform": "linux | osx"
"platform": "linux"
}
]
},
"leveldb": {
"description": "Build with LevelDB",
"gflags": {
"description": "Build with gflags",
"dependencies": [
"leveldb",
"snappy"
"gflags"
]
},
"glog": {
"description": "Build with glog",
"dependencies": [
"glog"
]
},
"llvm": {
@ -125,6 +154,10 @@
"vulkan": {
"description": "Build with Vulkan GPU backend",
"dependencies": [
{
"name": "shaderc",
"host": true
},
"vulkan",
"vulkan-loader",
"vulkan-memory-allocator"

View File

@ -1,5 +1,5 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a5ddc49..05e1279 100644
index 932f9e7..187be72 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -13,8 +13,6 @@ PROJECT(QNNPACK C CXX ASM)
@ -11,12 +11,7 @@ index a5ddc49..05e1279 100644
OPTION(QNNPACK_BUILD_TESTS "Build QNNPACK unit tests" ON)
OPTION(QNNPACK_BUILD_BENCHMARKS "Build QNNPACK benchmarks" ON)
@@ -53,11 +51,11 @@ SET(CONFU_DEPENDENCIES_SOURCE_DIR "${CMAKE_SOURCE_DIR}/deps"
SET(CONFU_DEPENDENCIES_BINARY_DIR "${CMAKE_BINARY_DIR}/deps"
CACHE PATH "Confu-style dependencies binary directory")
-IF(NOT DEFINED CLOG_SOURCE_DIR)
+IF(FALSE)
@@ -60,7 +58,7 @@ IF(NOT DEFINED CLOG_SOURCE_DIR)
SET(CLOG_SOURCE_DIR "${PROJECT_SOURCE_DIR}/deps/clog")
ENDIF()
@ -25,7 +20,7 @@ index a5ddc49..05e1279 100644
MESSAGE(STATUS "Downloading cpuinfo to ${CONFU_DEPENDENCIES_SOURCE_DIR}/cpuinfo (define CPUINFO_SOURCE_DIR to avoid it)")
CONFIGURE_FILE(cmake/DownloadCpuinfo.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/cpuinfo-download/CMakeLists.txt")
EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
@@ -67,7 +65,7 @@ IF(NOT DEFINED CPUINFO_SOURCE_DIR)
@@ -70,7 +68,7 @@ IF(NOT DEFINED CPUINFO_SOURCE_DIR)
SET(CPUINFO_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/cpuinfo" CACHE STRING "cpuinfo source directory")
ENDIF()
@ -34,7 +29,7 @@ index a5ddc49..05e1279 100644
MESSAGE(STATUS "Downloading FP16 to ${CONFU_DEPENDENCIES_SOURCE_DIR}/fp16 (define FP16_SOURCE_DIR to avoid it)")
CONFIGURE_FILE(cmake/DownloadFP16.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/fp16-download/CMakeLists.txt")
EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
@@ -77,7 +75,7 @@ IF(NOT DEFINED FP16_SOURCE_DIR)
@@ -80,7 +78,7 @@ IF(NOT DEFINED FP16_SOURCE_DIR)
SET(FP16_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/fp16" CACHE STRING "FP16 source directory")
ENDIF()
@ -43,7 +38,7 @@ index a5ddc49..05e1279 100644
MESSAGE(STATUS "Downloading FXdiv to ${CONFU_DEPENDENCIES_SOURCE_DIR}/fxdiv (define FXDIV_SOURCE_DIR to avoid it)")
CONFIGURE_FILE(cmake/DownloadFXdiv.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/fxdiv-download/CMakeLists.txt")
EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
@@ -87,7 +85,7 @@ IF(NOT DEFINED FXDIV_SOURCE_DIR)
@@ -90,7 +88,7 @@ IF(NOT DEFINED FXDIV_SOURCE_DIR)
SET(FXDIV_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/fxdiv" CACHE STRING "FXdiv source directory")
ENDIF()
@ -52,7 +47,7 @@ index a5ddc49..05e1279 100644
MESSAGE(STATUS "Downloading PSimd to ${CONFU_DEPENDENCIES_SOURCE_DIR}/psimd (define PSIMD_SOURCE_DIR to avoid it)")
CONFIGURE_FILE(cmake/DownloadPSimd.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/psimd-download/CMakeLists.txt")
EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
@@ -97,7 +95,7 @@ IF(NOT DEFINED PSIMD_SOURCE_DIR)
@@ -100,7 +98,7 @@ IF(NOT DEFINED PSIMD_SOURCE_DIR)
SET(PSIMD_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/psimd" CACHE STRING "PSimd source directory")
ENDIF()
@ -61,7 +56,7 @@ index a5ddc49..05e1279 100644
MESSAGE(STATUS "Downloading pthreadpool to ${CONFU_DEPENDENCIES_SOURCE_DIR}/pthreadpool (define PTHREADPOOL_SOURCE_DIR to avoid it)")
CONFIGURE_FILE(cmake/DownloadPThreadPool.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/pthreadpool-download/CMakeLists.txt")
EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
@@ -107,7 +105,7 @@ IF(NOT DEFINED PTHREADPOOL_SOURCE_DIR)
@@ -110,7 +108,7 @@ IF(NOT DEFINED PTHREADPOOL_SOURCE_DIR)
SET(PTHREADPOOL_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/pthreadpool" CACHE STRING "pthreadpool source directory")
ENDIF()
@ -70,7 +65,7 @@ index a5ddc49..05e1279 100644
MESSAGE(STATUS "Downloading Google Test to ${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest (define GOOGLETEST_SOURCE_DIR to avoid it)")
CONFIGURE_FILE(cmake/DownloadGoogleTest.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download/CMakeLists.txt")
EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
@@ -117,7 +115,7 @@ IF(QNNPACK_BUILD_TESTS AND NOT DEFINED GOOGLETEST_SOURCE_DIR)
@@ -120,7 +118,7 @@ IF(QNNPACK_BUILD_TESTS AND NOT DEFINED GOOGLETEST_SOURCE_DIR)
SET(GOOGLETEST_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest" CACHE STRING "Google Test source directory")
ENDIF()
@ -79,7 +74,7 @@ index a5ddc49..05e1279 100644
MESSAGE(STATUS "Downloading Google Benchmark to ${CONFU_DEPENDENCIES_SOURCE_DIR}/googlebenchmark (define GOOGLEBENCHMARK_SOURCE_DIR to avoid it)")
CONFIGURE_FILE(cmake/DownloadGoogleBenchmark.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/googlebenchmark-download/CMakeLists.txt")
EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
@@ -229,15 +227,7 @@ IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^(i[3-6]86|x86_64)$" OR IOS_ARCH MATCHES "^(i
@@ -232,15 +230,7 @@ IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^(i[3-6]86|x86_64)$" OR IOS_ARCH MATCHES "^(i
LIST(APPEND QNNPACK_UKERNELS ${QNNPACK_X86_SSE2_UKERNELS})
ENDIF()
@ -96,89 +91,55 @@ index a5ddc49..05e1279 100644
SET_TARGET_PROPERTIES(qnnpack PROPERTIES
C_STANDARD 99
C_EXTENSIONS YES)
@@ -272,7 +262,7 @@ TARGET_INCLUDE_DIRECTORIES(qnnpack PRIVATE src)
@@ -274,6 +264,10 @@ TARGET_INCLUDE_DIRECTORIES(qnnpack PUBLIC include)
TARGET_INCLUDE_DIRECTORIES(qnnpack PRIVATE src)
SET_TARGET_PROPERTIES(qnnpack PROPERTIES PUBLIC_HEADER include/qnnpack.h)
# ---[ Configure clog
-IF(NOT TARGET clog)
+IF(FALSE)
SET(CLOG_BUILD_TESTS OFF CACHE BOOL "")
SET(CLOG_RUNTIME_TYPE "${CPUINFO_RUNTIME_TYPE}" CACHE STRING "")
ADD_SUBDIRECTORY(
@@ -281,10 +271,9 @@ IF(NOT TARGET clog)
# We build static version of clog but a dynamic library may indirectly depend on it
SET_PROPERTY(TARGET clog PROPERTY POSITION_INDEPENDENT_CODE ON)
ENDIF()
-TARGET_LINK_LIBRARIES(qnnpack PRIVATE clog)
# ---[ Configure cpuinfo
-IF(NOT TARGET cpuinfo)
+IF(FALSE)
SET(CPUINFO_BUILD_TOOLS OFF CACHE BOOL "")
SET(CPUINFO_BUILD_UNIT_TESTS OFF CACHE BOOL "")
SET(CPUINFO_BUILD_MOCK_TESTS OFF CACHE BOOL "")
@@ -293,17 +282,19 @@ IF(NOT TARGET cpuinfo)
"${CPUINFO_SOURCE_DIR}"
"${CONFU_DEPENDENCIES_BINARY_DIR}/cpuinfo")
ENDIF()
-TARGET_LINK_LIBRARIES(qnnpack PRIVATE cpuinfo)
+
+find_package(cpuinfo CONFIG REQUIRED)
+target_link_libraries(qnnpack PUBLIC cpuinfo::clog cpuinfo::cpuinfo)
+add_library(cpuinfo ALIAS cpuinfo::cpuinfo)
+add_library(clog ALIAS cpuinfo::clog)
+
# ---[ Configure clog
IF(NOT TARGET clog)
SET(CLOG_BUILD_TESTS OFF CACHE BOOL "")
@@ -299,6 +293,8 @@ ENDIF()
TARGET_LINK_LIBRARIES(qnnpack PRIVATE cpuinfo)
# ---[ Configure pthreadpool
-IF(NOT TARGET pthreadpool)
+IF(FALSE)
+find_package(unofficial-pthreadpool CONFIG REQUIRED)
+add_library(pthreadpool ALIAS unofficial::pthreadpool)
IF(NOT TARGET pthreadpool)
SET(PTHREADPOOL_BUILD_TESTS OFF CACHE BOOL "")
SET(PTHREADPOOL_BUILD_BENCHMARKS OFF CACHE BOOL "")
ADD_SUBDIRECTORY(
"${PTHREADPOOL_SOURCE_DIR}"
"${CONFU_DEPENDENCIES_BINARY_DIR}/pthreadpool")
ENDIF()
-IF(QNNPACK_CUSTOM_THREADPOOL)
+IF(FALSE)
# Depend on pthreadpool interface, but not on implementation.
# This is used when QNNPACK user (e.g. Caffe2) provides its own threadpool implementation.
TARGET_LINK_LIBRARIES(qnnpack PUBLIC pthreadpool_interface)
@@ -312,34 +303,38 @@ ELSE()
@@ -315,6 +311,8 @@ ELSE()
ENDIF()
# ---[ Configure FXdiv
-IF(NOT TARGET fxdiv)
+IF(FALSE)
+find_package(unofficial-fxdiv CONFIG REQUIRED)
+add_library(fxdiv ALIAS unofficial::fxdiv::fxdiv)
IF(NOT TARGET fxdiv)
SET(FXDIV_BUILD_TESTS OFF CACHE BOOL "")
SET(FXDIV_BUILD_BENCHMARKS OFF CACHE BOOL "")
ADD_SUBDIRECTORY(
"${FXDIV_SOURCE_DIR}"
"${CONFU_DEPENDENCIES_BINARY_DIR}/fxdiv")
ENDIF()
-TARGET_LINK_LIBRARIES(qnnpack PRIVATE fxdiv)
+find_path(FXDIV_INCLUDE_DIRS "fxdiv.h")
+target_include_directories(qnnpack PRIVATE ${FXDIV_INCLUDE_DIRS})
@@ -325,6 +323,8 @@ ENDIF()
TARGET_LINK_LIBRARIES(qnnpack PRIVATE fxdiv)
# ---[ Configure psimd
-IF(NOT TARGET psimd)
+IF(FALSE)
+find_package(unofficial-psimd CONFIG REQUIRED)
+add_library(psimd ALIAS unofficial::psimd::psimd)
IF(NOT TARGET psimd)
ADD_SUBDIRECTORY(
"${PSIMD_SOURCE_DIR}"
"${CONFU_DEPENDENCIES_BINARY_DIR}/psimd")
ENDIF()
-TARGET_LINK_LIBRARIES(qnnpack PRIVATE psimd)
+find_path(PSIMD_INCLUDE_DIRS "psimd.h")
+target_include_directories(qnnpack PRIVATE ${PSIMD_INCLUDE_DIRS})
@@ -333,6 +333,8 @@ ENDIF()
TARGET_LINK_LIBRARIES(qnnpack PRIVATE psimd)
# ---[ Configure FP16
-IF(NOT TARGET fp16)
+IF(FALSE)
+find_package(unofficial-fp16 CONFIG REQUIRED)
+add_library(fp16 ALIAS unofficial::fp16::fp16)
IF(NOT TARGET fp16)
SET(FP16_BUILD_TESTS OFF CACHE BOOL "")
SET(FP16_BUILD_BENCHMARKS OFF CACHE BOOL "")
ADD_SUBDIRECTORY(
"${FP16_SOURCE_DIR}"
"${CONFU_DEPENDENCIES_BINARY_DIR}/fp16")
ENDIF()
-TARGET_LINK_LIBRARIES(qnnpack PRIVATE fp16)
+find_path(FP16_INCLUDE_DIRS "fp16.h")
+target_include_directories(qnnpack PRIVATE ${FP16_INCLUDE_DIRS})
@@ -343,6 +345,7 @@ ENDIF()
TARGET_LINK_LIBRARIES(qnnpack PRIVATE fp16)
INSTALL(TARGETS qnnpack
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}

View File

@ -1,13 +1,18 @@
{
"name": "qnnpack",
"version-date": "2021-02-26",
"port-version": 3,
"port-version": 5,
"description": "Quantized Neural Network PACKage - mobile-optimized implementation of quantized neural network operators",
"homepage": "https://github.com/pytorch/QNNPACK",
"license": "BSD-3-Clause",
"supports": "!windows",
"dependencies": [
"cpuinfo",
{
"name": "cpuinfo",
"features": [
"clog"
]
},
"fp16",
"fxdiv",
"psimd",

View File

@ -1,94 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 95df99eae0..7e969cfbb8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -704,7 +704,7 @@ IF(MSVC)
TARGET_COMPILE_DEFINITIONS(operator-utils PRIVATE "restrict=")
TARGET_COMPILE_DEFINITIONS(XNNPACK PRIVATE "restrict=")
ENDIF()
-
+ if(0)
TARGET_COMPILE_OPTIONS(microkernels-all PRIVATE "$<$<NOT:$<CONFIG:Debug>>:/O2>")
TARGET_COMPILE_OPTIONS(microkernels-prod PRIVATE "$<$<NOT:$<CONFIG:Debug>>:/O2>")
TARGET_COMPILE_OPTIONS(hardware-config PRIVATE "$<$<NOT:$<CONFIG:Debug>>:/O2>")
@@ -723,6 +723,7 @@ IF(MSVC)
TARGET_COMPILE_OPTIONS(operators PRIVATE "$<$<NOT:$<CONFIG:Debug>>:/O1>")
TARGET_COMPILE_OPTIONS(XNNPACK PRIVATE "$<$<NOT:$<CONFIG:Debug>>:/O1>")
ENDIF()
+ endif()
ELSE()
TARGET_COMPILE_OPTIONS(microkernels-all PRIVATE "$<$<NOT:$<CONFIG:Debug>>:-O2>")
TARGET_COMPILE_OPTIONS(microkernels-prod PRIVATE "$<$<NOT:$<CONFIG:Debug>>:-O2>")
@@ -797,8 +798,8 @@ IF(NOT TARGET clog)
# We build static version of clog but a dynamic library may indirectly depend on it
SET_PROPERTY(TARGET clog PROPERTY POSITION_INDEPENDENT_CODE ON)
ELSE()
- ADD_LIBRARY(clog STATIC IMPORTED)
- FIND_LIBRARY(CLOG_LIBRARY clog)
+ ADD_LIBRARY(clog UNKNOWN IMPORTED)
+ FIND_LIBRARY(CLOG_LIBRARY NAMES clog REQUIRED)
IF(NOT CLOG_LIBRARY)
MESSAGE(FATAL_ERROR "Cannot find clog")
ENDIF()
@@ -817,8 +818,8 @@ IF(NOT TARGET cpuinfo)
"${CPUINFO_SOURCE_DIR}"
"${CMAKE_BINARY_DIR}/cpuinfo")
ELSE()
- ADD_LIBRARY(cpuinfo SHARED IMPORTED)
- FIND_LIBRARY(CPUINFO_LIBRARY cpuinfo)
+ ADD_LIBRARY(cpuinfo UNKNOWN IMPORTED)
+ FIND_LIBRARY(CPUINFO_LIBRARY NAMES cpuinfo REQUIRED)
IF(NOT CPUINFO_LIBRARY)
MESSAGE(FATAL_ERROR "Cannot find cpuinfo")
ENDIF()
@@ -841,13 +842,15 @@ IF(NOT TARGET pthreadpool)
"${PTHREADPOOL_SOURCE_DIR}"
"${CMAKE_BINARY_DIR}/pthreadpool")
ELSE()
- ADD_LIBRARY(pthreadpool SHARED IMPORTED)
- FIND_LIBRARY(PTHREADPOOL_LIBRARY pthreadpool)
+ ADD_LIBRARY(pthreadpool UNKNOWN IMPORTED)
+ FIND_LIBRARY(PTHREADPOOL_LIBRARY NAMES pthreadpool REQUIRED)
+ find_path(PTHREADPOOL_INCLUDE NAMES pthreadpool.h REQUIRED PATH_SUFFIXES include)
+ target_include_directories(pthreadpool INTERFACE "${PTHREADPOOL_INCLUDE}")
IF(NOT PTHREADPOOL_LIBRARY)
MESSAGE(FATAL_ERROR "Cannot find pthreadpool")
ENDIF()
SET_PROPERTY(TARGET pthreadpool PROPERTY IMPORTED_LOCATION "${PTHREADPOOL_LIBRARY}")
- SET_PROPERTY(TARGET pthreadpool PROPERTY IMPORTED_IMPLIB "${PTHREADPOOL_LIBRARY}")
+ #SET_PROPERTY(TARGET pthreadpool PROPERTY IMPORTED_IMPLIB "${PTHREADPOOL_LIBRARY}")
ENDIF()
ENDIF()
TARGET_LINK_LIBRARIES(microkernels-all PRIVATE pthreadpool)
@@ -881,12 +884,12 @@ IF(NOT TARGET fxdiv)
"${FXDIV_SOURCE_DIR}"
"${CMAKE_BINARY_DIR}/FXdiv")
ELSE()
- FIND_FILE(FXDIV_HDR fxdiv.h PATH_SUFFIXES include)
+ FIND_PATH(FXDIV_HDR fxdiv.h PATH_SUFFIXES include)
IF(NOT FXDIV_HDR)
MESSAGE(FATAL_ERROR "Cannot find fxdiv")
ENDIF()
- ADD_LIBRARY(fxdiv STATIC "${FXDIV_HDR}")
- SET_PROPERTY(TARGET fxdiv PROPERTY LINKER_LANGUAGE C)
+ ADD_LIBRARY(fxdiv INTERFACE IMPORTED)
+ target_include_directories(fxdiv INTERFACE "${FXDIV_HDR}")
ENDIF()
ENDIF()
TARGET_LINK_LIBRARIES(microkernels-all PRIVATE fxdiv)
@@ -905,12 +908,12 @@ IF(NOT TARGET fp16)
"${FP16_SOURCE_DIR}"
"${CMAKE_BINARY_DIR}/FP16")
ELSE()
- FIND_FILE(FP16_HDR fp16.h PATH_SUFFIXES include)
+ FIND_PATH(FP16_HDR fp16.h PATH_SUFFIXES include REQUIRED)
IF(NOT FP16_HDR)
MESSAGE(FATAL_ERROR "Cannot find fp16")
ENDIF()
- ADD_LIBRARY(fp16 STATIC "${FP16_HDR}")
- SET_PROPERTY(TARGET fp16 PROPERTY LINKER_LANGUAGE C)
+ ADD_LIBRARY(fp16 INTERFACE IMPORTED)
+ target_include_directories(fp16 INTERFACE "${FP16_HDR}")
ENDIF()
ENDIF()
TARGET_LINK_LIBRARIES(microkernels-all PRIVATE fp16)

View File

@ -0,0 +1,94 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 856a47d..06f5ea9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1040,14 +1040,14 @@ IF(XNNPACK_BUILD_ALL_MICROKERNELS)
ENDIF()
TARGET_INCLUDE_DIRECTORIES(datatype PRIVATE include src)
TARGET_INCLUDE_DIRECTORIES(microkernels-prod PRIVATE include src)
-TARGET_INCLUDE_DIRECTORIES(hardware-config PRIVATE include src ${CPUINFO_SOURCE_DIR}/include)
+TARGET_INCLUDE_DIRECTORIES(hardware-config PRIVATE include src)
TARGET_INCLUDE_DIRECTORIES(indirection PRIVATE include src)
TARGET_INCLUDE_DIRECTORIES(microparams-init PRIVATE include src)
TARGET_INCLUDE_DIRECTORIES(normalization PRIVATE include src)
TARGET_INCLUDE_DIRECTORIES(packing PRIVATE include src)
TARGET_INCLUDE_DIRECTORIES(logging PRIVATE include src)
IF(XNNPACK_BUILD_LIBRARY)
- TARGET_INCLUDE_DIRECTORIES(XNNPACK PUBLIC include)
+ TARGET_INCLUDE_DIRECTORIES(XNNPACK PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include>)
TARGET_INCLUDE_DIRECTORIES(XNNPACK PRIVATE src)
TARGET_INCLUDE_DIRECTORIES(allocator PRIVATE include src)
TARGET_INCLUDE_DIRECTORIES(cache PRIVATE include src)
@@ -1085,6 +1085,8 @@ IF(XNNPACK_BUILD_WITH_LIBM)
ENDIF()
# ---[ Configure cpuinfo
+find_package(cpuinfo CONFIG REQUIRED)
+add_library(cpuinfo ALIAS cpuinfo::cpuinfo)
IF(NOT TARGET cpuinfo)
IF(NOT XNNPACK_USE_SYSTEM_LIBS)
SET(CPUINFO_BUILD_TOOLS OFF CACHE BOOL "")
@@ -1111,6 +1113,8 @@ IF(XNNPACK_BUILD_LIBRARY)
ENDIF()
# ---[ Configure pthreadpool
+find_package(unofficial-pthreadpool CONFIG REQUIRED)
+add_library(pthreadpool ALIAS unofficial::pthreadpool)
IF(NOT TARGET pthreadpool)
IF(NOT XNNPACK_USE_SYSTEM_LIBS)
SET(PTHREADPOOL_BUILD_TESTS OFF CACHE BOOL "")
@@ -1135,6 +1139,8 @@ ENDIF()
TARGET_LINK_LIBRARIES(xnnpack-base INTERFACE pthreadpool)
# ---[ Configure FXdiv
+find_package(unofficial-fxdiv CONFIG REQUIRED)
+add_library(fxdiv ALIAS unofficial::fxdiv::fxdiv)
IF(NOT TARGET fxdiv)
IF(NOT XNNPACK_USE_SYSTEM_LIBS)
SET(FXDIV_BUILD_TESTS OFF CACHE BOOL "")
@@ -1162,14 +1168,27 @@ IF(XNNPACK_BUILD_LIBRARY)
ENDIF()
IF(XNNPACK_BUILD_LIBRARY)
- INSTALL(TARGETS XNNPACK microkernels-prod
+ INSTALL(TARGETS XNNPACK microkernels-prod xnnpack-base allocator cache hardware-config indirection memory microkernel-utils microparams-init mutex normalization operators operator-run operator-utils packing subgraph datatype reference-ukernels logging
+ EXPORT unofficial-xnnpack-config-targets
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+ INSTALL(EXPORT unofficial-xnnpack-config-targets NAMESPACE unofficial::xnnpack::
+ FILE unofficial-xnnpack-config-targets.cmake
+ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/unofficial-xnnpack) # share/xnnpack
+
+include(CMakePackageConfigHelpers)
+configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/unofficial-xnnpack-config.cmake" INSTALL_DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/unofficial-xnnpack)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unofficial-xnnpack-config.cmake DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/unofficial-xnnpack)
+
+
ENDIF()
# ---[ Configure KleidiAI
IF(XNNPACK_ENABLE_KLEIDIAI)
+ find_package(KleidiAI CONFIG REQUIRED)
+ add_library(kleidiai ALIAS KleidiAI::kleidiai)
IF(NOT TARGET kleidiai)
IF(NOT XNNPACK_USE_SYSTEM_LIBS)
SET(KLEIDIAI_BUILD_TESTS OFF CACHE BOOL "")
diff --git a/Config.cmake.in b/Config.cmake.in
new file mode 100644
index 0000000..8dc60b4
--- /dev/null
+++ b/Config.cmake.in
@@ -0,0 +1,11 @@
+@PACKAGE_INIT@
+
+include(CMakeFindDependencyMacro)
+find_dependency(unofficial-fxdiv)
+find_dependency(cpuinfo)
+find_dependency(unofficial-pthreadpool)
+if(@XNNPACK_ENABLE_KLEIDIAI@)
+ find_dependency(KleidiAI)
+endif()
+
+include ( "${CMAKE_CURRENT_LIST_DIR}/unofficial-xnnpack-config-targets.cmake" )

View File

@ -5,16 +5,18 @@ endif()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO google/XNNPACK
REF 51a987591a6fc9f0fc0707077f53d763ac132cbf # 2022-12-22
SHA512 1742ad4de3aa1a67cd5a3cbf15d82afc2cc8569a2abac92542f748a440ef37fef4e9d9c302b7b2813e3176934b637c761c1c0956d20ab1ba28b280d9b121d91b
REF 51a0103656eff6fc9bfd39a4597923c4b542c883 # 2024-12-03
SHA512 ecb859935996416ce51b2b9ffd5a8c3cc5e933dfab96b7b68c8a52e05227ce3416ffa81e8a3fcef8349aa85147aa1c6a07138c7fc8e87a02ad577e1da9126827
HEAD_REF master
PATCHES
fix-build.patch
fix-cmake.patch
)
vcpkg_find_acquire_program(PYTHON3)
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
"-DPython_EXECUTABLE=${PYTHON3}"
-DXNNPACK_USE_SYSTEM_LIBS=ON
-DXNNPACK_ENABLE_ASSEMBLY=ON
-DXNNPACK_ENABLE_MEMOPT=ON
@ -24,9 +26,7 @@ vcpkg_cmake_configure(
)
vcpkg_cmake_install()
vcpkg_copy_pdbs()
vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT})
file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include"
"${CURRENT_PACKAGES_DIR}/debug/bin"
"${CURRENT_PACKAGES_DIR}/debug/share"
)
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")

View File

@ -1,18 +1,31 @@
{
"name": "xnnpack",
"version-date": "2022-12-22",
"version-date": "2024-08-20",
"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 & !arm32",
"dependencies": [
"cpuinfo",
{
"name": "cpuinfo",
"features": [
"clog"
]
},
"fp16",
"fxdiv",
{
"name": "kleidiai",
"platform": "arm64"
},
"pthreadpool",
{
"name": "vcpkg-cmake",
"host": true
},
{
"name": "vcpkg-cmake-config",
"host": true
}
]
}

View File

@ -1333,8 +1333,7 @@ librsvg:x64-uwp = cascade
libsm:arm64-uwp = cascade
libsm:x64-uwp = cascade
libtorch:x86-windows = cascade
libtorch[vulkan] = cascade # no vulkan sdk installed
libtorch(uwp | (arm & windows) | (arm64 & osx)) = cascade
libtorch(uwp | (arm & windows)) = cascade
libwebp[all,vwebp](uwp) = cascade
libwebp[vwebp](android) = cascade
libwebp[vwebp-sdl](android | osx | uwp | (windows & static)) = cascade

View File

@ -2133,8 +2133,8 @@
"port-version": 0
},
"cpuinfo": {
"baseline": "2022-07-19",
"port-version": 3
"baseline": "2025-07-25",
"port-version": 0
},
"cr": {
"baseline": "2020-04-26",
@ -2866,7 +2866,7 @@
},
"fbgemm": {
"baseline": "1.0.0",
"port-version": 0
"port-version": 1
},
"fbthrift": {
"baseline": "2025.05.19.00",
@ -5509,8 +5509,8 @@
"port-version": 2
},
"libtorch": {
"baseline": "2.1.2",
"port-version": 12
"baseline": "2.7.1",
"port-version": 0
},
"libtorrent": {
"baseline": "2.0.11",
@ -7754,7 +7754,7 @@
},
"qnnpack": {
"baseline": "2021-02-26",
"port-version": 3
"port-version": 5
},
"qoi": {
"baseline": "2023-08-10",
@ -10521,7 +10521,7 @@
"port-version": 1
},
"xnnpack": {
"baseline": "2022-12-22",
"baseline": "2024-08-20",
"port-version": 0
},
"xorg-macros": {

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "1a3c239a30cc457f10b8d6cca995bc2c7db9b150",
"version-date": "2025-07-25",
"port-version": 0
},
{
"git-tree": "f1b7e10e1de1dcd09118adc19c5bc831417dcc8c",
"version-date": "2022-07-19",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "86dc5f7bb07a7e785aef6627e4af57f51c9c87d0",
"version": "1.0.0",
"port-version": 1
},
{
"git-tree": "e055c95b9158e871ada9e49d4dfc92c618f995f2",
"version": "1.0.0",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "b79f7f4e0fc9c9dbfe7528a0c7c96ee8f811f753",
"version": "2.7.1",
"port-version": 0
},
{
"git-tree": "42cff2032d0a7670edde067c822897cc6be1cf85",
"version": "2.1.2",

View File

@ -1,5 +1,15 @@
{
"versions": [
{
"git-tree": "3066be09481d88681b8a20480053585f173c9821",
"version-date": "2021-02-26",
"port-version": 5
},
{
"git-tree": "6cfef60767e1bc650df581901e4d14e132d5fdea",
"version-date": "2021-02-26",
"port-version": 4
},
{
"git-tree": "cee68bf91e46cc783fe3f03d4525e02c0793389c",
"version-date": "2021-02-26",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "8f49750bf854bc25fa46d069eca34aece7a5867f",
"version-date": "2024-08-20",
"port-version": 0
},
{
"git-tree": "7a84132ceac551e5ba3da8117fdc23f4f1571fd2",
"version-date": "2022-12-22",