mirror of https://github.com/microsoft/vcpkg.git
[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:
parent
cc3290ef83
commit
29ff5b8131
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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" )
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
@ -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) {
|
||||
|
|
@ -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()
|
||||
|
||||
|
|
@ -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})
|
||||
|
|
@ -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,
|
||||
|
|
@ -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}
|
||||
|
|
@ -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>
|
||||
|
|
@ -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 ()
|
||||
|
|
@ -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
|
||||
|
||||
|
|
@ -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
|
||||
|
|
@ -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)
|
||||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
@ -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)
|
||||
|
|
@ -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
|
||||
|
|
@ -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);
|
||||
|
|
@ -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 {
|
||||
|
|
@ -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"
|
||||
|
|
@ -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()
|
||||
|
||||
|
|
@ -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>
|
||||
|
|
@ -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)
|
||||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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}
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
@ -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" )
|
||||
|
|
@ -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")
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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": {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,10 @@
|
|||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "1a3c239a30cc457f10b8d6cca995bc2c7db9b150",
|
||||
"version-date": "2025-07-25",
|
||||
"port-version": 0
|
||||
},
|
||||
{
|
||||
"git-tree": "f1b7e10e1de1dcd09118adc19c5bc831417dcc8c",
|
||||
"version-date": "2022-07-19",
|
||||
|
|
|
|||
|
|
@ -1,5 +1,10 @@
|
|||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "86dc5f7bb07a7e785aef6627e4af57f51c9c87d0",
|
||||
"version": "1.0.0",
|
||||
"port-version": 1
|
||||
},
|
||||
{
|
||||
"git-tree": "e055c95b9158e871ada9e49d4dfc92c618f995f2",
|
||||
"version": "1.0.0",
|
||||
|
|
|
|||
|
|
@ -1,5 +1,10 @@
|
|||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "b79f7f4e0fc9c9dbfe7528a0c7c96ee8f811f753",
|
||||
"version": "2.7.1",
|
||||
"port-version": 0
|
||||
},
|
||||
{
|
||||
"git-tree": "42cff2032d0a7670edde067c822897cc6be1cf85",
|
||||
"version": "2.1.2",
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -1,5 +1,10 @@
|
|||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "8f49750bf854bc25fa46d069eca34aece7a5867f",
|
||||
"version-date": "2024-08-20",
|
||||
"port-version": 0
|
||||
},
|
||||
{
|
||||
"git-tree": "7a84132ceac551e5ba3da8117fdc23f4f1571fd2",
|
||||
"version-date": "2022-12-22",
|
||||
|
|
|
|||
Loading…
Reference in New Issue