vcpkg/ports/libtorch/fix-build.patch
Alexander Neumann 20584b9d44
[libtorch] update to 2.1.2 (#36246)
* [libtorch] update to 2.1.2

* adjust features and deps

* remove dep

* fix onnx case

* use system fxdiv

* update xnnpack

* fxdiv fix in libtorch

* add newline

* xnnpack does not install configs

* more patching

* fix patch

* more fixes

* use full lib for sleef.

* fix glog symbol on osx

* try fixing msvc ice

* ok renaming did nothing

* v db

* remove comments

* v db

* cuda is only for x64

* v db

* fix usage since cuda is still external to vcpkg

* v db

---------

Co-authored-by: Jim wang (BEYONDSOFT CONSULTING INC) <v-wangjim@microsoft.com>
2024-01-30 14:15:33 -08:00

185 lines
6.8 KiB
Diff

diff --git a/c10/cuda/CMakeLists.txt b/c10/cuda/CMakeLists.txt
index c0628d0c96..5dfb7f2abb 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 ecbc7c1345..2dd1001c9e 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/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
index 2c5c5b95d8..8c1742591f 100644
--- a/cmake/Dependencies.cmake
+++ b/cmake/Dependencies.cmake
@@ -1581,19 +1581,10 @@ 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 UNKNOWN IMPORTED)
- find_library(ONNX_LIBRARY NAMES onnx REQUIRED)
- if(NOT ONNX_LIBRARY)
- message(FATAL_ERROR "Cannot find onnx")
- endif()
- set_property(TARGET onnx PROPERTY IMPORTED_LOCATION ${ONNX_LIBRARY})
- add_library(onnx_proto UNKNOWN IMPORTED)
- find_library(ONNX_PROTO_LIBRARY NAMES onnx_proto REQUIRED)
- 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}")
+ find_package(onnx REQUIRED)
+ set(ONNX_LIBRARY onnx)
+ set(ONNX_PROTO_LIBRARY onnx_proto)
+ message("-- Found onnx")
list(APPEND Caffe2_DEPENDENCY_LIBS onnx_proto onnx)
endif()
include_directories(${FOXI_INCLUDE_DIRS})
diff --git a/pyproject.toml b/pyproject.toml
index eb764cb895..c70f317c2f 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 17bf16b89a..b90ebbc9eb 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 cd57825a24..75e81e9fac 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 d87e97a2bb..e1bc42e87c 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 20158a9a25..7d3c475a9b 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 df2a106493..b86e0b6872 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 6600eb3cb5..1d5e451c14 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 ()