summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludovic.courtes@inria.fr>2022-07-05 16:51:38 +0200
committerLudovic Courtès <ludo@gnu.org>2022-07-05 16:56:04 +0200
commit20f55375dc3ec969c24d39e9d97830d84be345a8 (patch)
tree8bb7bfb811dbaa6f5a6e2185a16fde36673d53c8
parentb211824f0a43f6ef5cc76c6b9a7486d647a0a663 (diff)
downloadguix-20f55375dc3ec969c24d39e9d97830d84be345a8.tar.gz
guix-20f55375dc3ec969c24d39e9d97830d84be345a8.tar.xz
gnu: python-pytorch: Update to 1.11.0.
* gnu/packages/machine-learning.scm (python-pytorch): Update to 1.11.0. [source](snippet): Remove now unnecessary "caffe2/onnx/backend.cc" substitution. [arguments]: Add 'remove-caffe2-onnx-scripts' phase. * gnu/packages/patches/python-pytorch-runpath.patch, gnu/packages/patches/python-pytorch-system-libraries.patch: Update.
-rw-r--r--gnu/packages/machine-learning.scm31
-rw-r--r--gnu/packages/patches/python-pytorch-runpath.patch25
-rw-r--r--gnu/packages/patches/python-pytorch-system-libraries.patch32
3 files changed, 52 insertions, 36 deletions
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 4015d77726..9e8792e9cf 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -2869,7 +2869,7 @@ TensorFlow.js, PyTorch, and MediaPipe.")
(define-public python-pytorch
(package
(name "python-pytorch")
- (version "1.10.2")
+ (version "1.11.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2879,7 +2879,7 @@ TensorFlow.js, PyTorch, and MediaPipe.")
(file-name (git-file-name name version))
(sha256
(base32
- "15fi3nr7fx2zc9j2xf0jq627zfmnvs8hijyifg9769arm8kfijs1"))
+ "1zbk7y74r0ycsfa7x59jnhwhs1gj5rs3n89p15y0212iszgbljq8"))
(patches (search-patches "python-pytorch-system-libraries.patch"
"python-pytorch-runpath.patch"))
(modules '((guix build utils)))
@@ -2899,12 +2899,7 @@ TensorFlow.js, PyTorch, and MediaPipe.")
"gloo" "googletest" "ios-cmake" "NNPACK"
"onnx" "protobuf" "pthreadpool"
"pybind11" "python-enum" "python-peachpy"
- "python-six" "tbb" "XNNPACK" "zstd"))
-
- ;; Adjust references to the onnx-optimizer headers.
- (substitute* "caffe2/onnx/backend.cc"
- (("onnx/optimizer/")
- "onnxoptimizer/"))))))
+ "python-six" "tbb" "XNNPACK" "zstd"))))))
(build-system python-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
@@ -2942,7 +2937,23 @@ TensorFlow.js, PyTorch, and MediaPipe.")
(let ((python-site (site-packages inputs outputs)))
(for-each delete-file
(find-files python-site
- "(^test_cpp_rpc|_test)$"))))))
+ "(^test_cpp_rpc|_test)$")))))
+ (add-after 'install 'remove-caffe2-onnx-scripts
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ ;; Remove 'convert-caffe2-to-onnx' and
+ ;; 'convert-onnx-to-caffe2': they seem to be
+ ;; deprecated and they cause a failure of the
+ ;; 'sanity-check' phase:
+ ;;
+ ;; ImportError: cannot import name 'metanet_pb2' from partially initialized module 'caffe2.proto' (most likely due to a circular import)
+ (for-each delete-file
+ (find-files bin "^convert-.*caffe2"))
+
+ (substitute* (find-files out "^entry_points\\.txt$")
+ (("^convert-.*" all)
+ (string-append "# " all "\n")))))))
;; XXX: Tests attempt to download data such as
;; <https://raw.githubusercontent.com/pytorch/test-infra/master/stats/slow-tests.json>.
@@ -2977,7 +2988,7 @@ TensorFlow.js, PyTorch, and MediaPipe.")
python-future
python-six
python-requests
- onnx ;propagated for its Python modules
+ onnx ;propagated for its Python modules
onnx-optimizer
cpuinfo))
(home-page "https://pytorch.org/")
diff --git a/gnu/packages/patches/python-pytorch-runpath.patch b/gnu/packages/patches/python-pytorch-runpath.patch
index 6f270ef9b1..7f95b88a2b 100644
--- a/gnu/packages/patches/python-pytorch-runpath.patch
+++ b/gnu/packages/patches/python-pytorch-runpath.patch
@@ -2,6 +2,21 @@ Libraries (such as 'libtorch_cpu.so') and executables (such as 'torch_shm_manage
get installed, quite surprisingly, to 'lib/python3.8/site-packages/{bin,lib}'.
Make sure RUNPATH matches that.
+diff --git a/caffe2/CMakeLists.txt b/caffe2/CMakeLists.txt
+index 5b5622f0..30d27e57 100644
+--- a/caffe2/CMakeLists.txt
++++ b/caffe2/CMakeLists.txt
+@@ -1909,7 +1909,7 @@ if(BUILD_PYTHON)
+ if(${BUILDING_WITH_TORCH_LIBS})
+ # site-packages/caffe2/python/caffe2_pybind11_state
+ # site-packages/torch/lib
+- set(caffe2_pybind11_rpath "${_rpath_portable_origin}/../../torch/lib")
++ set(caffe2_pybind11_rpath $ORIGIN/../../torch/lib)
+ endif(${BUILDING_WITH_TORCH_LIBS})
+
+ # Must also include `CMAKE_SHARED_LINKER_FLAGS` in linker flags for
+diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
+index ee9cf410..f190e69b 100644
--- a/cmake/Dependencies.cmake
+++ b/cmake/Dependencies.cmake
@@ -4,7 +4,7 @@ if(APPLE)
@@ -13,13 +28,3 @@ Make sure RUNPATH matches that.
endif(APPLE)
# Use separate rpaths during build and install phases
set(CMAKE_SKIP_BUILD_RPATH FALSE)
-
---- a/caffe2/CMakeLists.txt
-+++ b/caffe2/CMakeLists.txt
-@@ -1797,5 +1797,5 @@ if(BUILD_PYTHON)
- if(${BUILDING_WITH_TORCH_LIBS})
- # site-packages/caffe2/python/caffe2_pybind11_state
- # site-packages/torch/lib
-- set(caffe2_pybind11_rpath "${_rpath_portable_origin}/../../torch/lib")
-+ set(caffe2_pybind11_rpath $ORIGIN/../../torch/lib)
- endif(${BUILDING_WITH_TORCH_LIBS})
diff --git a/gnu/packages/patches/python-pytorch-system-libraries.patch b/gnu/packages/patches/python-pytorch-system-libraries.patch
index ae872cfd84..fd849fd9e2 100644
--- a/gnu/packages/patches/python-pytorch-system-libraries.patch
+++ b/gnu/packages/patches/python-pytorch-system-libraries.patch
@@ -2,10 +2,10 @@ Use our own googletest rather than the bundled one.
Get NNPACK to use our own PeachPy rather than the bundled one.
diff --git a/caffe2/CMakeLists.txt b/caffe2/CMakeLists.txt
-index 26210cb5..18b6df27 100644
+index d57d7ebb..5b5622f0 100644
--- a/caffe2/CMakeLists.txt
+++ b/caffe2/CMakeLists.txt
-@@ -1723,7 +1723,7 @@ if(BUILD_TEST)
+@@ -1736,7 +1736,7 @@ if(BUILD_TEST)
if(NOT MSVC)
add_executable(${test_name}_${CPU_CAPABILITY} "${test_src}" ../aten/src/ATen/native/quantized/affine_quantizer_base.cpp)
# TODO: Get rid of c10 dependency (which is only needed for the implementation of AT_ERROR)
@@ -14,7 +14,7 @@ index 26210cb5..18b6df27 100644
if(USE_FBGEMM)
target_link_libraries(${test_name}_${CPU_CAPABILITY} fbgemm)
endif()
-@@ -1746,7 +1746,7 @@ if(BUILD_TEST)
+@@ -1759,7 +1759,7 @@ if(BUILD_TEST)
foreach(test_src ${Caffe2_CPU_TEST_SRCS})
get_filename_component(test_name ${test_src} NAME_WE)
add_executable(${test_name} "${test_src}")
@@ -23,16 +23,16 @@ index 26210cb5..18b6df27 100644
if(USE_OPENMP)
# -fopenmp is a compile time flag and as result not guaranteed
# to link executable against OpenMP runtime library
-@@ -1769,7 +1769,7 @@ if(BUILD_TEST)
+@@ -1785,7 +1785,7 @@ if(BUILD_TEST)
foreach(test_src ${Caffe2_GPU_TEST_SRCS})
get_filename_component(test_name ${test_src} NAME_WE)
- cuda_add_executable(${test_name} "${test_src}")
+ add_executable(${test_name} "${test_src}")
- target_link_libraries(${test_name} torch_library gtest_main)
+ target_link_libraries(${test_name} torch_library gtest_main gtest)
target_include_directories(${test_name} PRIVATE $<INSTALL_INTERFACE:include>)
target_include_directories(${test_name} PRIVATE ${Caffe2_CPU_INCLUDE})
add_test(NAME ${test_name} COMMAND $<TARGET_FILE:${test_name}>)
-@@ -1787,7 +1787,7 @@ if(BUILD_TEST)
+@@ -1803,7 +1803,7 @@ if(BUILD_TEST)
foreach(test_src ${Caffe2_VULKAN_TEST_SRCS})
get_filename_component(test_name ${test_src} NAME_WE)
add_executable(${test_name} "${test_src}")
@@ -41,7 +41,7 @@ index 26210cb5..18b6df27 100644
target_include_directories(${test_name} PRIVATE $<INSTALL_INTERFACE:include>)
target_include_directories(${test_name} PRIVATE ${Caffe2_CPU_INCLUDE})
add_test(NAME ${test_name} COMMAND $<TARGET_FILE:${test_name}>)
-@@ -1805,7 +1805,7 @@ if(BUILD_TEST)
+@@ -1821,7 +1821,7 @@ if(BUILD_TEST)
foreach(test_src ${Caffe2_HIP_TEST_SRCS})
get_filename_component(test_name ${test_src} NAME_WE)
add_executable(${test_name} "${test_src}")
@@ -51,10 +51,10 @@ index 26210cb5..18b6df27 100644
target_include_directories(${test_name} PRIVATE ${Caffe2_CPU_INCLUDE} ${Caffe2_HIP_INCLUDE})
target_compile_options(${test_name} PRIVATE ${HIP_CXX_FLAGS})
diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
-index ca560288..c0696e53 100644
+index 557ab649..ee9cf410 100644
--- a/cmake/Dependencies.cmake
+++ b/cmake/Dependencies.cmake
-@@ -684,11 +684,6 @@ if(BUILD_TEST OR BUILD_MOBILE_BENCHMARK OR BUILD_MOBILE_TEST)
+@@ -732,11 +732,6 @@ if(BUILD_TEST OR BUILD_MOBILE_BENCHMARK OR BUILD_MOBILE_TEST)
# this shouldn't be necessary anymore.
get_property(INC_DIR_temp DIRECTORY PROPERTY INCLUDE_DIRECTORIES)
set_property(DIRECTORY PROPERTY INCLUDE_DIRECTORIES "")
@@ -66,7 +66,7 @@ index ca560288..c0696e53 100644
# We will not need to test benchmark lib itself.
set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "Disable benchmark testing as we don't need it.")
-@@ -1537,7 +1532,7 @@ if(CAFFE2_CMAKE_BUILDING_WITH_MAIN_REPO AND NOT INTERN_DISABLE_ONNX)
+@@ -1543,7 +1538,7 @@ if(CAFFE2_CMAKE_BUILDING_WITH_MAIN_REPO AND NOT INTERN_DISABLE_ONNX)
endif()
set_property(TARGET onnx_proto PROPERTY IMPORTED_LOCATION ${ONNX_PROTO_LIBRARY})
message("-- Found onnx: ${ONNX_LIBRARY} ${ONNX_PROTO_LIBRARY}")
@@ -98,10 +98,10 @@ index a41343cb..6075bdd0 100644
+set(NNPACK_FOUND TRUE)
+set(USE_NNPACK ON)
diff --git a/test/cpp/c10d/CMakeLists.txt b/test/cpp/c10d/CMakeLists.txt
-index 2e48773a..a70506ce 100644
+index bf91460c..ef56948f 100644
--- a/test/cpp/c10d/CMakeLists.txt
+++ b/test/cpp/c10d/CMakeLists.txt
-@@ -17,14 +17,14 @@ function(c10d_add_test test_src)
+@@ -16,14 +16,14 @@ function(c10d_add_test test_src)
add_test(NAME ${test_name} COMMAND $<TARGET_FILE:${test_name}>)
endfunction()
@@ -119,7 +119,7 @@ index 2e48773a..a70506ce 100644
if(INSTALL_TEST)
install(TARGETS HashStoreTest DESTINATION bin)
endif()
-@@ -32,11 +32,11 @@ endif()
+@@ -31,11 +31,11 @@ endif()
if(USE_CUDA)
if(USE_GLOO AND USE_C10D_GLOO)
@@ -133,7 +133,7 @@ index 2e48773a..a70506ce 100644
endif()
if(USE_NCCL AND USE_C10D_NCCL)
# NCCL is a private dependency of libtorch, but the tests include some
-@@ -57,7 +57,7 @@ if(USE_CUDA)
+@@ -56,7 +56,7 @@ if(USE_CUDA)
endif()
else()
if(USE_GLOO AND USE_C10D_GLOO)
@@ -143,10 +143,10 @@ index 2e48773a..a70506ce 100644
endif()
diff --git a/test/cpp/tensorexpr/CMakeLists.txt b/test/cpp/tensorexpr/CMakeLists.txt
-index 213e99bd..ecaae840 100644
+index 8fc5a0a1..643202f6 100644
--- a/test/cpp/tensorexpr/CMakeLists.txt
+++ b/test/cpp/tensorexpr/CMakeLists.txt
-@@ -46,7 +46,7 @@ target_include_directories(tutorial_tensorexpr PRIVATE ${ATen_CPU_INCLUDE})
+@@ -53,7 +53,7 @@ target_include_directories(tutorial_tensorexpr PRIVATE ${ATen_CPU_INCLUDE})
# pthreadpool header. For some build environment we need add the dependency
# explicitly.
if(USE_PTHREADPOOL)