[arch-commits] Commit in python-pytorch/repos (8 files)
Sven-Hendrik Haase
svenstaro at archlinux.org
Tue Jan 5 09:17:04 UTC 2021
Date: Tuesday, January 5, 2021 @ 09:17:04
Author: svenstaro
Revision: 808535
archrelease: copy trunk to community-staging-x86_64
Added:
python-pytorch/repos/community-staging-x86_64/
python-pytorch/repos/community-staging-x86_64/PKGBUILD
(from rev 808533, python-pytorch/trunk/PKGBUILD)
python-pytorch/repos/community-staging-x86_64/disable_non_x86_64.patch
(from rev 808533, python-pytorch/trunk/disable_non_x86_64.patch)
python-pytorch/repos/community-staging-x86_64/fix_include_system.patch
(from rev 808533, python-pytorch/trunk/fix_include_system.patch)
python-pytorch/repos/community-staging-x86_64/nccl_version.patch
(from rev 808533, python-pytorch/trunk/nccl_version.patch)
python-pytorch/repos/community-staging-x86_64/test.py
(from rev 808533, python-pytorch/trunk/test.py)
python-pytorch/repos/community-staging-x86_64/use-system-libuv.patch
(from rev 808533, python-pytorch/trunk/use-system-libuv.patch)
python-pytorch/repos/community-staging-x86_64/use-system-libuv2.patch
(from rev 808533, python-pytorch/trunk/use-system-libuv2.patch)
--------------------------+
PKGBUILD | 184 +++++++++++++++++++++++++++++++++++++++++++++
disable_non_x86_64.patch | 15 +++
fix_include_system.patch | 13 +++
nccl_version.patch | 25 ++++++
test.py | 5 +
use-system-libuv.patch | 13 +++
use-system-libuv2.patch | 13 +++
7 files changed, 268 insertions(+)
Copied: python-pytorch/repos/community-staging-x86_64/PKGBUILD (from rev 808533, python-pytorch/trunk/PKGBUILD)
===================================================================
--- community-staging-x86_64/PKGBUILD (rev 0)
+++ community-staging-x86_64/PKGBUILD 2021-01-05 09:17:04 UTC (rev 808535)
@@ -0,0 +1,184 @@
+# Maintainer: Sven-Hendrik Haase <svenstaro at gmail.com>
+# Contributor: Stephen Zhang <zsrkmyn at gmail dot com>
+
+pkgbase=python-pytorch
+pkgname=("python-pytorch" "python-pytorch-opt" "python-pytorch-cuda" "python-pytorch-opt-cuda")
+_pkgname="pytorch"
+pkgver=1.7.1
+_pkgver=1.7.1
+pkgrel=3
+pkgdesc="Tensors and Dynamic neural networks in Python with strong GPU acceleration"
+arch=('x86_64')
+url="https://pytorch.org"
+license=('BSD')
+depends=('google-glog' 'gflags' 'opencv' 'openmp' 'nccl' 'pybind11' 'python' 'python-yaml' 'libuv'
+ 'python-numpy' 'protobuf' 'ffmpeg' 'python-future' 'qt5-base' 'onednn' 'intel-mkl')
+makedepends=('python' 'python-setuptools' 'python-yaml' 'python-numpy' 'cmake' 'cuda'
+ 'cudnn' 'git' 'magma' 'ninja' 'pkgconfig' 'doxygen')
+source=("${_pkgname}-${pkgver}::git+https://github.com/pytorch/pytorch.git#tag=v$_pkgver"
+ fix_include_system.patch
+ use-system-libuv.patch
+ use-system-libuv2.patch
+ nccl_version.patch
+ disable_non_x86_64.patch)
+sha256sums=('SKIP'
+ '83c81ec6a461110da6ae6182529f58100986b068c5182ca62cd53c648b4e4fb0'
+ '26b1dd596f1e21a011ee18cab939924483d6c6d4d98e543bf76f5a9312d54d67'
+ '7b65c3b209fc39f92ba58a58be6d3da40799f1922910b1171ccd9209eda1f9eb'
+ 'e4a96887b41cbdfd4204ce5f16fcb16a23558d23126331794ab6aa30a66f2e0d'
+ 'd3ef8491718ed7e814fe63e81df2f49862fffbea891d2babbcb464796a1bd680')
+
+prepare() {
+ cd "${_pkgname}-${pkgver}"
+
+ # This is the lazy way since pytorch has sooo many submodules and they keep
+ # changing them around but we've run into more problems so far doing it the
+ # manual than the lazy way. This lazy way (not explicitly specifying all
+ # submodules) will make building inefficient but for now I'll take it.
+ # It will result in the same package, don't worry.
+ git submodule update --init --recursive
+
+ # https://bugs.archlinux.org/task/64981
+ patch -N torch/utils/cpp_extension.py "${srcdir}"/fix_include_system.patch
+
+ # Use system libuv
+ patch -Np1 -i "${srcdir}"/use-system-libuv.patch
+
+ # FindNCCL patch to export correct nccl version
+ # patch -Np1 -i "${srcdir}"/nccl_version.patch
+
+ # remove local nccl
+ rm -rf third_party/nccl/nccl
+
+ cd ..
+
+ cp -a "${_pkgname}-${pkgver}" "${_pkgname}-${pkgver}-opt"
+ cp -a "${_pkgname}-${pkgver}" "${_pkgname}-${pkgver}-cuda"
+ cp -a "${_pkgname}-${pkgver}" "${_pkgname}-${pkgver}-opt-cuda"
+
+ export VERBOSE=1
+ export PYTORCH_BUILD_VERSION="${pkgver}"
+ export PYTORCH_BUILD_NUMBER=1
+
+ # Check tools/setup_helpers/cmake.py, setup.py and CMakeLists.txt for a list of flags that can be set via env vars.
+ export USE_MKLDNN=ON
+ export BUILD_CUSTOM_PROTOBUF=OFF
+ # export BUILD_SHARED_LIBS=OFF
+ export USE_FFMPEG=ON
+ export USE_GFLAGS=ON
+ export USE_GLOG=ON
+ export BUILD_BINARY=ON
+ export USE_OPENCV=ON
+ export USE_SYSTEM_NCCL=ON
+ # export USE_SYSTEM_LIBS=ON
+ export NCCL_VERSION=$(pkg-config nccl --modversion)
+ export NCCL_VER_CODE=$(sed -n 's/^#define NCCL_VERSION_CODE\s*\(.*\).*/\1/p' /usr/include/nccl.h)
+ export CUDAHOSTCXX=g++
+ export CUDA_HOME=/opt/cuda
+ export CUDNN_LIB_DIR=/usr/lib
+ export CUDNN_INCLUDE_DIR=/usr/include
+ # export TORCH_NVCC_FLAGS="-Xfatbin -compress-all"
+ export TORCH_CUDA_ARCH_LIST="5.2;5.3;6.0;6.1;6.2;7.0;7.0+PTX;7.2;7.2+PTX;7.5;7.5+PTX;8.0;8.0+PTX;8.6;8.6+PTX"
+}
+
+build() {
+ echo "Building without cuda and without non-x86-64 optimizations"
+ export USE_CUDA=0
+ export USE_CUDNN=0
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+ echo "add_definitions(-march=x86-64)" >> cmake/MiscCheck.cmake
+ patch -Np1 -i "${srcdir}/disable_non_x86_64.patch"
+ python setup.py build
+
+
+ echo "Building without cuda and with non-x86-64 optimizations"
+ export USE_CUDA=0
+ export USE_CUDNN=0
+ cd "${srcdir}/${_pkgname}-${pkgver}-opt"
+ echo "add_definitions(-march=haswell)" >> cmake/MiscCheck.cmake
+ python setup.py build
+
+
+ echo "Building with cuda and without non-x86-64 optimizations"
+ export USE_CUDA=1
+ export USE_CUDNN=1
+ cd "${srcdir}/${_pkgname}-${pkgver}-cuda"
+ patch -Np1 -i "${srcdir}/disable_non_x86_64.patch"
+ echo "add_definitions(-march=x86-64)" >> cmake/MiscCheck.cmake
+ python setup.py build
+
+
+ echo "Building with cuda and with non-x86-64 optimizations"
+ export USE_CUDA=1
+ export USE_CUDNN=1
+ cd "${srcdir}/${_pkgname}-${pkgver}-opt-cuda"
+ echo "add_definitions(-march=haswell)" >> cmake/MiscCheck.cmake
+ python setup.py build
+}
+
+_package() {
+ # Prevent setup.py from re-running CMake and rebuilding
+ sed -e 's/RUN_BUILD_DEPS = True/RUN_BUILD_DEPS = False/g' -i setup.py
+
+ python setup.py install --root="${pkgdir}"/ --optimize=1 --skip-build
+
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+
+ pytorchpath="usr/lib/python3.9/site-packages/torch"
+ install -d "${pkgdir}/usr/lib"
+
+ # put CMake files in correct place
+ mv "${pkgdir}/${pytorchpath}/share/cmake" "${pkgdir}/usr/lib/cmake"
+
+ # put C++ API in correct place
+ mv "${pkgdir}/${pytorchpath}/include" "${pkgdir}/usr/include"
+ mv "${pkgdir}/${pytorchpath}/lib"/*.so* "${pkgdir}/usr/lib/"
+
+ # clean up duplicates
+ # TODO: move towards direct shared library dependecy of:
+ # c10, caffe2, libcpuinfo, CUDA RT, gloo, GTest, Intel MKL,
+ # NVRTC, ONNX, protobuf, libthreadpool, QNNPACK
+ rm -rf "${pkgdir}/usr/include/pybind11"
+
+ # python module is hardcoded to look there at runtime
+ ln -s /usr/include "${pkgdir}/${pytorchpath}/include"
+ find "${pkgdir}"/usr/lib -type f -name "*.so*" -print0 | while read -rd $'\0' _lib; do
+ ln -s ${_lib#"$pkgdir"} "${pkgdir}/${pytorchpath}/lib/"
+ done
+}
+
+package_python-pytorch() {
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+ _package
+}
+
+package_python-pytorch-opt() {
+ pkgdesc="Tensors and Dynamic neural networks in Python with strong GPU acceleration (with AVX2 CPU optimizations)"
+ conflicts=(python-pytorch)
+ provides=(python-pytorch)
+
+ cd "${srcdir}/${_pkgname}-${pkgver}-opt"
+ _package
+}
+
+package_python-pytorch-cuda() {
+ pkgdesc="Tensors and Dynamic neural networks in Python with strong GPU acceleration (with CUDA)"
+ depends+=(cuda cudnn magma)
+ conflicts=(python-pytorch)
+ provides=(python-pytorch)
+
+ cd "${srcdir}/${_pkgname}-${pkgver}-cuda"
+ _package
+}
+
+package_python-pytorch-opt-cuda() {
+ pkgdesc="Tensors and Dynamic neural networks in Python with strong GPU acceleration (with CUDA and AVX2 CPU optimizations)"
+ depends+=(cuda cudnn magma)
+ conflicts=(python-pytorch)
+ provides=(python-pytorch python-pytorch-cuda)
+
+ cd "${srcdir}/${_pkgname}-${pkgver}-opt-cuda"
+ _package
+}
+
+# vim:set ts=2 sw=2 et:
Copied: python-pytorch/repos/community-staging-x86_64/disable_non_x86_64.patch (from rev 808533, python-pytorch/trunk/disable_non_x86_64.patch)
===================================================================
--- community-staging-x86_64/disable_non_x86_64.patch (rev 0)
+++ community-staging-x86_64/disable_non_x86_64.patch 2021-01-05 09:17:04 UTC (rev 808535)
@@ -0,0 +1,15 @@
+diff --git a/tools/setup_helpers/cmake.py b/tools/setup_helpers/cmake.py
+index d5db749d15..fd54cca6b8 100644
+--- a/tools/setup_helpers/cmake.py
++++ b/tools/setup_helpers/cmake.py
+@@ -295,6 +295,10 @@ class CMake:
+ build_options.update(cmake__options)
+
+ CMake.defines(args,
++ DISABLE_AVX2=1,
++ DISABLE_AVX512F=1,
++ DISABLE_FMA4=1,
++ DISABLE_SSE4=1,
+ PYTHON_EXECUTABLE=sys.executable,
+ PYTHON_LIBRARY=cmake_python_library,
+ PYTHON_INCLUDE_DIR=distutils.sysconfig.get_python_inc(),
Copied: python-pytorch/repos/community-staging-x86_64/fix_include_system.patch (from rev 808533, python-pytorch/trunk/fix_include_system.patch)
===================================================================
--- community-staging-x86_64/fix_include_system.patch (rev 0)
+++ community-staging-x86_64/fix_include_system.patch 2021-01-05 09:17:04 UTC (rev 808535)
@@ -0,0 +1,13 @@
+diff --git a/torch/utils/cpp_extension.py b/torch/utils/cpp_extension.py
+index 7692cad5cd..d6e4a82221 100644
+--- a/torch/utils/cpp_extension.py
++++ b/torch/utils/cpp_extension.py
+@@ -1614,7 +1614,7 @@ def _write_ninja_file_to_build_library(path,
+ common_cflags.append(f'-DPYBIND11_{pname}=\\"{pval}\\"')
+
+ common_cflags += [f'-I{include}' for include in user_includes]
+- common_cflags += [f'-isystem {include}' for include in system_includes]
++ common_cflags += [f'-I{include}' for include in system_includes]
+ common_cflags += ['-D_GLIBCXX_USE_CXX11_ABI=' + str(int(torch._C._GLIBCXX_USE_CXX11_ABI))]
+
+ if IS_WINDOWS:
Copied: python-pytorch/repos/community-staging-x86_64/nccl_version.patch (from rev 808533, python-pytorch/trunk/nccl_version.patch)
===================================================================
--- community-staging-x86_64/nccl_version.patch (rev 0)
+++ community-staging-x86_64/nccl_version.patch 2021-01-05 09:17:04 UTC (rev 808535)
@@ -0,0 +1,25 @@
+diff --git a/cmake/Modules/FindNCCL.cmake b/cmake/Modules/FindNCCL.cmake
+index a16c9aca67..51eb54f14c 100644
+--- a/cmake/Modules/FindNCCL.cmake
++++ b/cmake/Modules/FindNCCL.cmake
+@@ -55,9 +55,10 @@ if(NCCL_FOUND) # obtaining NCCL version and some sanity checks
+ set (OLD_CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES})
+ list (APPEND CMAKE_REQUIRED_INCLUDES ${NCCL_INCLUDE_DIRS})
+ include(CheckCXXSymbolExists)
+- check_cxx_symbol_exists(NCCL_VERSION_CODE nccl.h NCCL_VERSION_DEFINED)
++ set(NCCL_VERSION_CODE $ENV{NCCL_VER_CODE})
++ set(NCCL_VERSION_DEFINED $ENV{NCCL_VER_CODE})
+
+- if (NCCL_VERSION_DEFINED)
++ if (DEFINED NCCL_VERSION_DEFINED)
+ set(file "${PROJECT_BINARY_DIR}/detect_nccl_version.cc")
+ file(WRITE ${file} "
+ #include <iostream>
+@@ -72,6 +73,7 @@ if(NCCL_FOUND) # obtaining NCCL version and some sanity checks
+ }
+ ")
+ try_run(NCCL_VERSION_MATCHED compile_result ${PROJECT_BINARY_DIR} ${file}
++ CMAKE_FLAGS -DINCLUDE_DIRECTORIES=/opt/cuda/include
+ RUN_OUTPUT_VARIABLE NCCL_VERSION_FROM_HEADER
+ CMAKE_FLAGS "-DINCLUDE_DIRECTORIES=${NCCL_INCLUDE_DIRS}"
+ LINK_LIBRARIES ${NCCL_LIBRARIES})
Copied: python-pytorch/repos/community-staging-x86_64/test.py (from rev 808533, python-pytorch/trunk/test.py)
===================================================================
--- community-staging-x86_64/test.py (rev 0)
+++ community-staging-x86_64/test.py 2021-01-05 09:17:04 UTC (rev 808535)
@@ -0,0 +1,5 @@
+import torch
+
+d = torch.device('cuda')
+a = torch.rand(1, 2).to(d)
+print(a + 0)
Copied: python-pytorch/repos/community-staging-x86_64/use-system-libuv.patch (from rev 808533, python-pytorch/trunk/use-system-libuv.patch)
===================================================================
--- community-staging-x86_64/use-system-libuv.patch (rev 0)
+++ community-staging-x86_64/use-system-libuv.patch 2021-01-05 09:17:04 UTC (rev 808535)
@@ -0,0 +1,13 @@
+diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
+index 023bbe9e8d..e25aa0aa7f 100644
+--- a/cmake/Dependencies.cmake
++++ b/cmake/Dependencies.cmake
+@@ -1308,7 +1308,7 @@ if(USE_DISTRIBUTED AND USE_TENSORPIPE)
+ if(MSVC)
+ message(WARNING "Tensorpipe cannot be used on Windows.")
+ else()
+- set(TP_BUILD_LIBUV ON CACHE BOOL "" FORCE)
++ set(TP_BUILD_LIBUV OFF CACHE BOOL "" FORCE)
+ set(TP_ENABLE_SHM OFF CACHE BOOL "" FORCE)
+ set(TP_ENABLE_CMA OFF CACHE BOOL "" FORCE)
+ set(TP_STATIC_OR_SHARED STATIC CACHE STRING "" FORCE)
Copied: python-pytorch/repos/community-staging-x86_64/use-system-libuv2.patch (from rev 808533, python-pytorch/trunk/use-system-libuv2.patch)
===================================================================
--- community-staging-x86_64/use-system-libuv2.patch (rev 0)
+++ community-staging-x86_64/use-system-libuv2.patch 2021-01-05 09:17:04 UTC (rev 808535)
@@ -0,0 +1,13 @@
+diff --git a/cmake/pytorch.cmake b/cmake/pytorch.cmake
+index e4d6b9c..48e0669 100644
+--- a/cmake/pytorch.cmake
++++ b/cmake/pytorch.cmake
+@@ -138,7 +138,7 @@ endif()
+
+ add_library(tensorpipe ${TENSORPIPE_SRC})
+
+-set(TP_BUILD_LIBUV ON)
++set(TP_BUILD_LIBUV OFF)
+ find_package(uv REQUIRED)
+ target_link_libraries(tensorpipe PRIVATE uv::uv)
+
More information about the arch-commits
mailing list