public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/sci:master commit in: sci-libs/pytorch/files/, sci-libs/pytorch/
@ 2020-02-19 14:39 Benda XU
  0 siblings, 0 replies; 3+ messages in thread
From: Benda XU @ 2020-02-19 14:39 UTC (permalink / raw
  To: gentoo-commits

commit:     bb46b0f6b4260c8aca367dc153b10a385d9728eb
Author:     Alexey Chernov <4ernov <AT> gmail <DOT> com>
AuthorDate: Mon Feb 10 18:51:53 2020 +0000
Commit:     Benda XU <heroxbd <AT> gentoo <DOT> org>
CommitDate: Wed Feb 19 14:35:57 2020 +0000
URL:        https://gitweb.gentoo.org/proj/sci.git/commit/?id=bb46b0f6

sci-libs/pytorch: initial commit.

  This is CPU version only. ROCm and CUDA options will be added later.

Reference: https://github.com/aclex/pytorch-ebuild
Bug: https://github.com/gentoo/sci/pull/941
Package-Manager: Portage-2.3.88, Repoman-2.3.18
Signed-off-by: Benda Xu <heroxbd <AT> gentoo.org>

 ...-t-build-libtorch-again-for-PyTorch-1.4.0.patch |  30 +++
 ...path-to-caffe2-build-dir-made-by-libtorch.patch |  46 ++++
 ...rpath-of-Caffe2-library-for-system-wide-i.patch | 104 ++++++++
 ...ibrary-directory-according-to-CMake-build.patch |  31 +++
 ...conversion-ambiguity-in-ternary-operators.patch |  38 +++
 sci-libs/pytorch/files/pytorch-1.2.0-setup.patch   |  24 ++
 sci-libs/pytorch/files/pytorch-1.4.0-eigen.patch   |  13 +
 .../files/pytorch-1.4.0-nccl-nvccflags.patch       |  28 +++
 .../pytorch/files/pytorch-1.4.0-skip-tests.patch   |  28 +++
 sci-libs/pytorch/files/pytorch-1.4.0-sleef.patch   |  15 ++
 sci-libs/pytorch/metadata.xml                      |  35 +++
 sci-libs/pytorch/pytorch-1.4.0_p0.ebuild           | 272 +++++++++++++++++++++
 12 files changed, 664 insertions(+)

diff --git a/sci-libs/pytorch/files/0002-Don-t-build-libtorch-again-for-PyTorch-1.4.0.patch b/sci-libs/pytorch/files/0002-Don-t-build-libtorch-again-for-PyTorch-1.4.0.patch
new file mode 100644
index 000000000..de9fe9a0d
--- /dev/null
+++ b/sci-libs/pytorch/files/0002-Don-t-build-libtorch-again-for-PyTorch-1.4.0.patch
@@ -0,0 +1,30 @@
+From e5003b88ad3a504eb04c0ba66c2f439149de2ee3 Mon Sep 17 00:00:00 2001
+From: Alexey Chernov <4ernov@gmail.com>
+Date: Tue, 5 Nov 2019 00:58:17 +0300
+Subject: [PATCH 2/7] Don't build `libtorch` again for PyTorch
+
+If starting with building of `libtorch` using CMake,
+don't build it again for the sake of running `setup.py`
+to build Python version (PyTorch).
+---
+ setup.py | 7 -------
+ 1 file changed, 7 deletions(-)
+
+Index: pytorch-1.4.0_p0/setup.py
+===================================================================
+--- pytorch-1.4.0_p0.orig/setup.py
++++ pytorch-1.4.0_p0/setup.py
+@@ -303,13 +303,6 @@ def build_deps():
+     check_pydep('yaml', 'pyyaml')
+     check_pydep('typing', 'typing')
+ 
+-    build_caffe2(version=version,
+-                 cmake_python_library=cmake_python_library,
+-                 build_python=True,
+-                 rerun_cmake=RERUN_CMAKE,
+-                 cmake_only=CMAKE_ONLY,
+-                 cmake=cmake)
+-
+     version_path = os.path.join(cwd, 'torch', 'version.py')
+     with open(version_path, 'w') as f:
+         f.write("__version__ = '{}'\n".format(version))

diff --git a/sci-libs/pytorch/files/0003-Change-path-to-caffe2-build-dir-made-by-libtorch.patch b/sci-libs/pytorch/files/0003-Change-path-to-caffe2-build-dir-made-by-libtorch.patch
new file mode 100644
index 000000000..f71ba17bc
--- /dev/null
+++ b/sci-libs/pytorch/files/0003-Change-path-to-caffe2-build-dir-made-by-libtorch.patch
@@ -0,0 +1,46 @@
+From dbb0bac77986016217cdfe779499a2ccd0e10570 Mon Sep 17 00:00:00 2001
+From: Alexey Chernov <4ernov@gmail.com>
+Date: Wed, 6 Nov 2019 00:16:24 +0300
+Subject: [PATCH 3/4] Change path to `caffe2` build dir made by `libtorch`
+
+Setup and use properly `caffe2` build dir made while
+`libtorch` building with CMake, so that it was used
+by the Python installation.
+---
+ setup.py | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index f4bfdc99cd..60502b6add 100644
+--- a/setup.py
++++ b/setup.py
+@@ -236,7 +236,7 @@ else:
+ cwd = os.path.dirname(os.path.abspath(__file__))
+ lib_path = os.path.join(cwd, "torch", "lib")
+ third_party_path = os.path.join(cwd, "third_party")
+-caffe2_build_dir = os.path.join(cwd, "build")
++caffe2_build_dir = os.environ.get("CMAKE_BUILD_DIR", os.path.join(cwd, "build"))
+ # lib/pythonx.x/site-packages
+ rel_site_packages = distutils.sysconfig.get_python_lib(prefix='')
+ # full absolute path to the dir above
+@@ -279,7 +279,7 @@ elif sha != 'Unknown':
+     version += '+' + sha[:7]
+ report("Building wheel {}-{}".format(package_name, version))
+ 
+-cmake = CMake()
++cmake = CMake(caffe2_build_dir)
+ 
+ # all the work we need to do _before_ setup runs
+ def build_deps():
+@@ -445,7 +445,7 @@ class build_ext(setuptools.command.build_ext.build_ext):
+             filename = self.get_ext_filename(fullname)
+             report("\nCopying extension {}".format(ext.name))
+ 
+-            src = os.path.join("torch", rel_site_packages, filename)
++            src = os.path.join(caffe2_build_dir, filename)
+             if not os.path.exists(src):
+                 report("{} does not exist".format(src))
+                 del self.extensions[i]
+-- 
+2.23.0
+

diff --git a/sci-libs/pytorch/files/0004-Don-t-fill-rpath-of-Caffe2-library-for-system-wide-i.patch b/sci-libs/pytorch/files/0004-Don-t-fill-rpath-of-Caffe2-library-for-system-wide-i.patch
new file mode 100644
index 000000000..c8f57d9e6
--- /dev/null
+++ b/sci-libs/pytorch/files/0004-Don-t-fill-rpath-of-Caffe2-library-for-system-wide-i.patch
@@ -0,0 +1,104 @@
+From a0ace7295b6895954d2a0f8d6fe311a34a7c4e85 Mon Sep 17 00:00:00 2001
+From: Alexey Chernov <4ernov@gmail.com>
+Date: Tue, 12 Nov 2019 02:01:36 +0300
+Subject: [PATCH 4/4] Don't fill rpath of Caffe2 library for system-wide
+ install
+
+Don't fill in runtime path of Caffe2 library for the case of
+building for system-wide installation.
+---
+ CMakeLists.txt           |  3 +++
+ caffe2/CMakeLists.txt    | 18 +++++++++++++++---
+ cmake/Dependencies.cmake | 19 +++++++++++--------
+ 3 files changed, 29 insertions(+), 11 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 20923c0544..45a882ae0e 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -193,6 +193,9 @@ option(USE_TBB "Use TBB" OFF)
+ # Used when building Caffe2 through setup.py
+ option(BUILDING_WITH_TORCH_LIBS "Tell cmake if Caffe2 is being built alongside torch libs" ON)
+ 
++# Used when building Caffe2 for further system-wide installation
++option(BUILDING_SYSTEM_WIDE "Tell cmake if Caffe2 is being built for system-wide installation" OFF)
++
+ # /Z7 override option
+ # When generating debug symbols, CMake default to use the flag /Zi.
+ # However, it is not compatible with sccache. So we rewrite it off.
+diff --git a/caffe2/CMakeLists.txt b/caffe2/CMakeLists.txt
+index 1f7d037243..30d5615cdb 100644
+--- a/caffe2/CMakeLists.txt
++++ b/caffe2/CMakeLists.txt
+@@ -1235,7 +1235,11 @@ if (BUILD_PYTHON)
+   if (MSVC AND BUILD_SHARED_LIBS)
+     install(FILES $<TARGET_PDB_FILE:caffe2_pybind11_state> DESTINATION "${PYTHON_LIB_REL_PATH}/caffe2/python" OPTIONAL)
+   endif()
+-  set_target_properties(caffe2_pybind11_state PROPERTIES INSTALL_RPATH "${caffe2_pybind11_rpath}")
++  if (NOT BUILDING_SYSTEM_WIDE)
++    set_target_properties(caffe2_pybind11_state PROPERTIES INSTALL_RPATH "${caffe2_pybind11_rpath}")
++else()
++    set_target_properties(caffe2_pybind11_state PROPERTIES SKIP_BUILD_RPATH ON)
++  endif()
+ 
+   if(USE_CUDA)
+     add_library(caffe2_pybind11_state_gpu MODULE ${Caffe2_GPU_PYTHON_SRCS})
+@@ -1261,7 +1265,11 @@ if (BUILD_PYTHON)
+     if (MSVC AND BUILD_SHARED_LIBS)
+       install(FILES $<TARGET_PDB_FILE:caffe2_pybind11_state_gpu> DESTINATION "${PYTHON_LIB_REL_PATH}/caffe2/python" OPTIONAL)
+     endif()
+-    set_target_properties(caffe2_pybind11_state_gpu PROPERTIES INSTALL_RPATH "${caffe2_pybind11_rpath}")
++    if (NOT BUILDING_SYSTEM_WIDE)
++      set_target_properties(caffe2_pybind11_state_gpu PROPERTIES INSTALL_RPATH "${caffe2_pybind11_rpath}")
++    else()
++      set_target_properties(caffe2_pybind11_state_gpu PROPERTIES SKIP_BUILD_RPATH ON)
++    endif()
+   endif()
+ 
+   if(USE_ROCM)
+@@ -1284,7 +1292,11 @@ if (BUILD_PYTHON)
+         caffe2_pybind11_state_hip PROPERTIES LIBRARY_OUTPUT_DIRECTORY
+         ${CMAKE_BINARY_DIR}/caffe2/python)
+     install(TARGETS caffe2_pybind11_state_hip DESTINATION "${PYTHON_LIB_REL_PATH}/caffe2/python")
+-    set_target_properties(caffe2_pybind11_state_hip PROPERTIES INSTALL_RPATH "${caffe2_pybind11_rpath}")
++    if (NOT BUILDING_SYSTEM_WIDE)
++      set_target_properties(caffe2_pybind11_state_hip PROPERTIES INSTALL_RPATH "${caffe2_pybind11_rpath}")
++  else()
++      set_target_properties(caffe2_pybind11_state_hip PROPERTIES SKIP_BUILD_RPATH ON)
++    endif()
+   endif()
+ 
+   if (MSVC AND CMAKE_GENERATOR MATCHES "Visual Studio")
+diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
+index a8e9769536..6ef9d7b0e2 100644
+--- a/cmake/Dependencies.cmake
++++ b/cmake/Dependencies.cmake
+@@ -6,14 +6,17 @@ if (APPLE)
+ else()
+   set(_rpath_portable_origin $ORIGIN)
+ endif(APPLE)
+-# Use separate rpaths during build and install phases
+-set(CMAKE_SKIP_BUILD_RPATH  FALSE)
+-# Don't use the install-rpath during the build phase
+-set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
+-set(CMAKE_INSTALL_RPATH "${_rpath_portable_origin}")
+-# Automatically add all linked folders that are NOT in the build directory to
+-# the rpath (per library?)
+-set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
++
++if (NOT BUILDING_SYSTEM_WIDE)
++  # Use separate rpaths during build and install phases
++  set(CMAKE_SKIP_BUILD_RPATH  FALSE)
++  # Don't use the install-rpath during the build phase
++  set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
++  set(CMAKE_INSTALL_RPATH "${_rpath_portable_origin}")
++  # Automatically add all linked folders that are NOT in the build directory to
++  # the rpath (per library?)
++  set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
++endif()
+ 
+  # UBSAN triggers when compiling protobuf, so we need to disable it.
+ set(UBSAN_FLAG "-fsanitize=undefined")
+-- 
+2.23.0
+

diff --git a/sci-libs/pytorch/files/0005-Change-library-directory-according-to-CMake-build.patch b/sci-libs/pytorch/files/0005-Change-library-directory-according-to-CMake-build.patch
new file mode 100644
index 000000000..324b8f682
--- /dev/null
+++ b/sci-libs/pytorch/files/0005-Change-library-directory-according-to-CMake-build.patch
@@ -0,0 +1,31 @@
+From 52019a3f395e5fa97b26d424152d91f73b400f8e Mon Sep 17 00:00:00 2001
+From: Alexey Chernov <4ernov@gmail.com>
+Date: Wed, 13 Nov 2019 23:44:12 +0300
+Subject: [PATCH 5/5] Change library directory according to CMake build
+
+Change `lib_path` in favour of out-of-tree CMake build
+directory, so that all the C++ libraries be found.
+---
+ setup.py | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 60502b6add..cbced52192 100644
+--- a/setup.py
++++ b/setup.py
+@@ -234,9 +234,10 @@ else:
+ 
+ # Constant known variables used throughout this file
+ cwd = os.path.dirname(os.path.abspath(__file__))
+-lib_path = os.path.join(cwd, "torch", "lib")
++cmake_build_dir = os.environ.get("CMAKE_BUILD_DIR", os.path.join(cwd, "build"))
++lib_path = os.path.join(cmake_build_dir, "lib")
+ third_party_path = os.path.join(cwd, "third_party")
+-caffe2_build_dir = os.environ.get("CMAKE_BUILD_DIR", os.path.join(cwd, "build"))
++caffe2_build_dir = cmake_build_dir
+ # lib/pythonx.x/site-packages
+ rel_site_packages = distutils.sysconfig.get_python_lib(prefix='')
+ # full absolute path to the dir above
+-- 
+2.23.0
+

diff --git a/sci-libs/pytorch/files/0010-Remove-conversion-ambiguity-in-ternary-operators.patch b/sci-libs/pytorch/files/0010-Remove-conversion-ambiguity-in-ternary-operators.patch
new file mode 100644
index 000000000..49835d201
--- /dev/null
+++ b/sci-libs/pytorch/files/0010-Remove-conversion-ambiguity-in-ternary-operators.patch
@@ -0,0 +1,38 @@
+From 0f3a0d9a948fdd8481a5f7751a255ecd9ed4d37a Mon Sep 17 00:00:00 2001
+From: Alexey Chernov <4ernov@gmail.com>
+Date: Mon, 20 Jan 2020 01:21:22 +0300
+Subject: [PATCH 3/3] Remove conversion ambiguity in ternary operators
+
+It fails to compile with recent versions of Clang
+(namely, version 10 used behind HCC compiler when
+being built with ROCm support) with the
+`conditional expression is ambiguous` error.
+---
+ caffe2/operators/relu_op.cu | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/caffe2/operators/relu_op.cu b/caffe2/operators/relu_op.cu
+index f6edf7105e..ab49540fc9 100644
+--- a/caffe2/operators/relu_op.cu
++++ b/caffe2/operators/relu_op.cu
+@@ -51,7 +51,7 @@ __global__ void ReluCUDAKernel<half2>(const int N, const half2* X, half2* Y) {
+ #else
+     const float2 xx = __half22float2(X[i]);
+     Y[i] =
+-        __floats2half2_rn(xx.x > 0.0f ? xx.x : 0.0f, xx.y > 0.0f ? xx.y : 0.0f);
++        __floats2half2_rn(xx.x > 0.0f ? float(xx.x) : 0.0f, xx.y > 0.0f ? float(xx.y) : 0.0f);
+ #endif
+   }
+ }
+@@ -101,7 +101,7 @@ __global__ void ReluGradientCUDAKernel<half2>(
+     const float2 dy = __half22float2(dY[i]);
+     const float2 yy = __half22float2(Y[i]);
+     dX[i] =
+-        __floats2half2_rn(yy.x > 0.0f ? dy.x : 0.0f, yy.y > 0.0f ? dy.y : 0.0f);
++        __floats2half2_rn(yy.x > 0.0f ? float(dy.x) : 0.0f, yy.y > 0.0f ? float(dy.y) : 0.0f);
+ #endif
+   }
+ }
+-- 
+2.24.1
+

diff --git a/sci-libs/pytorch/files/pytorch-1.2.0-setup.patch b/sci-libs/pytorch/files/pytorch-1.2.0-setup.patch
new file mode 100644
index 000000000..85e796a60
--- /dev/null
+++ b/sci-libs/pytorch/files/pytorch-1.2.0-setup.patch
@@ -0,0 +1,24 @@
+Index: pytorch-1.4.0_p0/setup.py
+===================================================================
+--- pytorch-1.4.0_p0.orig/setup.py
++++ pytorch-1.4.0_p0/setup.py
+@@ -288,9 +288,7 @@ def build_deps():
+             sys.exit(1)
+ 
+     check_file(os.path.join(third_party_path, "gloo", "CMakeLists.txt"))
+-    check_file(os.path.join(third_party_path, "pybind11", "CMakeLists.txt"))
+     check_file(os.path.join(third_party_path, 'cpuinfo', 'CMakeLists.txt'))
+-    check_file(os.path.join(third_party_path, 'tbb', 'Makefile'))
+     check_file(os.path.join(third_party_path, 'onnx', 'CMakeLists.txt'))
+     check_file(os.path.join(third_party_path, 'foxi', 'CMakeLists.txt'))
+     check_file(os.path.join(third_party_path, 'QNNPACK', 'CMakeLists.txt'))
+@@ -341,9 +339,6 @@ def build_deps():
+         if not same:
+             shutil.copyfile(orig_file, sym_file)
+ 
+-    dir_util.copy_tree('third_party/pybind11/include/pybind11/',
+-                       'torch/include/pybind11')
+-
+ ################################################################################
+ # Building dependent libraries
+ ################################################################################

diff --git a/sci-libs/pytorch/files/pytorch-1.4.0-eigen.patch b/sci-libs/pytorch/files/pytorch-1.4.0-eigen.patch
new file mode 100644
index 000000000..54ea3a5e0
--- /dev/null
+++ b/sci-libs/pytorch/files/pytorch-1.4.0-eigen.patch
@@ -0,0 +1,13 @@
+Index: pytorch-1.4.0/CMakeLists.txt
+===================================================================
+--- pytorch-1.4.0.orig/CMakeLists.txt
++++ pytorch-1.4.0/CMakeLists.txt
+@@ -173,7 +173,7 @@ option(USE_REDIS "Use Redis" OFF)
+ option(USE_ROCKSDB "Use RocksDB" OFF)
+ option(USE_SNPE "Use Qualcomm's SNPE library" OFF)
+ option(USE_SYSTEM_EIGEN_INSTALL
+-    "Use system Eigen instead of the one under third_party" OFF)
++    "Use system Eigen instead of the one under third_party" ON)
+ option(USE_TENSORRT "Using Nvidia TensorRT library" OFF)
+ option(USE_ZMQ "Use ZMQ" OFF)
+ option(USE_ZSTD "Use ZSTD" OFF)

diff --git a/sci-libs/pytorch/files/pytorch-1.4.0-nccl-nvccflags.patch b/sci-libs/pytorch/files/pytorch-1.4.0-nccl-nvccflags.patch
new file mode 100644
index 000000000..165e79dd4
--- /dev/null
+++ b/sci-libs/pytorch/files/pytorch-1.4.0-nccl-nvccflags.patch
@@ -0,0 +1,28 @@
+Index: nccl-7c72dee660e4d055b81721dd6b03e4e1c0a983cf/makefiles/common.mk
+===================================================================
+--- nccl-7c72dee660e4d055b81721dd6b03e4e1c0a983cf.orig/makefiles/common.mk
++++ nccl-7c72dee660e4d055b81721dd6b03e4e1c0a983cf/makefiles/common.mk
+@@ -46,7 +46,7 @@ endif
+ CXXFLAGS   := -DCUDA_MAJOR=$(CUDA_MAJOR) -DCUDA_MINOR=$(CUDA_MINOR) -fPIC -fvisibility=hidden
+ CXXFLAGS   += -Wall -Wno-unused-function -Wno-sign-compare -std=c++11 -Wvla
+ CXXFLAGS   += -I $(CUDA_INC)
+-NVCUFLAGS  := -ccbin $(CXX) $(NVCC_GENCODE) -lineinfo -std=c++11 -Xptxas -maxrregcount=96 -Xfatbin -compress-all
++NVCUFLAGS  := $(NVCCFLAGS) $(NVCC_GENCODE) -lineinfo -std=c++11 -Xptxas -maxrregcount=96 -Xfatbin -compress-all
+ # Use addprefix so that we can specify more than one path
+ NVLDFLAGS  := -L${CUDA_LIB} -lcudart -lrt
+ 
+@@ -60,14 +60,6 @@ NVLDFLAGS   += ${GCOV_FLAGS:%=-Xcompiler
+ # $(warning GCOV_FLAGS=${GCOV_FLAGS})
+ ########## GCOV ##########
+ 
+-ifeq ($(DEBUG), 0)
+-NVCUFLAGS += -O3
+-CXXFLAGS  += -O3 -g
+-else
+-NVCUFLAGS += -O0 -G -g
+-CXXFLAGS  += -O0 -g -ggdb3
+-endif
+-
+ ifneq ($(VERBOSE), 0)
+ NVCUFLAGS += -Xptxas -v -Xcompiler -Wall,-Wextra,-Wno-unused-parameter
+ CXXFLAGS  += -Wall -Wextra

diff --git a/sci-libs/pytorch/files/pytorch-1.4.0-skip-tests.patch b/sci-libs/pytorch/files/pytorch-1.4.0-skip-tests.patch
new file mode 100644
index 000000000..3682469d7
--- /dev/null
+++ b/sci-libs/pytorch/files/pytorch-1.4.0-skip-tests.patch
@@ -0,0 +1,28 @@
+Disable expected test failures.
+
+TCPStoreTest is too slow to run.
+
+Reference: https://github.com/pytorch/pytorch/issues/13746
+Reference: https://github.com/pytorch/pytorch/issues/21873
+
+Index: pytorch-1.4.0_p0/torch/lib/c10d/test/CMakeLists.txt
+===================================================================
+--- pytorch-1.4.0_p0.orig/torch/lib/c10d/test/CMakeLists.txt
++++ pytorch-1.4.0_p0/torch/lib/c10d/test/CMakeLists.txt
+@@ -14,7 +14,6 @@ function(c10d_add_test test_src)
+ endfunction()
+ 
+ c10d_add_test(FileStoreTest.cpp c10d)
+-c10d_add_test(TCPStoreTest.cpp c10d)
+ 
+ if(USE_CUDA)
+   if(USE_C10D_GLOO)
+Index: pytorch-1.4.0_p0/caffe2/share/contrib/depthwise/CMakeLists.txt
+===================================================================
+--- pytorch-1.4.0_p0.orig/caffe2/share/contrib/depthwise/CMakeLists.txt
++++ pytorch-1.4.0_p0/caffe2/share/contrib/depthwise/CMakeLists.txt
+@@ -6,4 +6,3 @@ set(Caffe2_CONTRIB_DEPTHWISE3x3_TEST_CPU
+ )
+ 
+ set(Caffe2_CPU_SRCS ${Caffe2_CPU_SRCS} ${Caffe2_CONTRIB_DEPTHWISE3x3_CPU_SRC} PARENT_SCOPE)
+-set(Caffe2_CPU_TEST_SRCS ${Caffe2_CPU_TEST_SRCS} ${Caffe2_CONTRIB_DEPTHWISE3x3_TEST_CPU_SRC} PARENT_SCOPE)

diff --git a/sci-libs/pytorch/files/pytorch-1.4.0-sleef.patch b/sci-libs/pytorch/files/pytorch-1.4.0-sleef.patch
new file mode 100644
index 000000000..222a0f73e
--- /dev/null
+++ b/sci-libs/pytorch/files/pytorch-1.4.0-sleef.patch
@@ -0,0 +1,15 @@
+Give the location of sleef.h.
+
+Reference: https://github.com/pytorch/pytorch/issues/26555
+Index: pytorch-1.4.0/caffe2/CMakeLists.txt
+===================================================================
+--- pytorch-1.4.0.orig/caffe2/CMakeLists.txt
++++ pytorch-1.4.0/caffe2/CMakeLists.txt
+@@ -1062,6 +1062,7 @@ if (BUILD_TEST)
+     add_executable(${test_name} "${test_src}")
+     target_link_libraries(${test_name} ${Caffe2_MAIN_LIBS} gtest_main)
+     target_include_directories(${test_name} PRIVATE $<INSTALL_INTERFACE:include>)
++    target_include_directories(${test_name} PRIVATE $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include>)
+     target_include_directories(${test_name} PRIVATE ${Caffe2_CPU_INCLUDE})
+     add_test(NAME ${test_name} COMMAND $<TARGET_FILE:${test_name}>)
+     if (INSTALL_TEST)

diff --git a/sci-libs/pytorch/metadata.xml b/sci-libs/pytorch/metadata.xml
new file mode 100644
index 000000000..78e46cc35
--- /dev/null
+++ b/sci-libs/pytorch/metadata.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+	<maintainer type="person">
+		<email>4ernov@gmail.com</email>
+		<name>Alexey Chernov</name>
+	</maintainer>
+	<use>
+		<flag name="asan">Build with address sanitizer (ASAN)</flag>
+		<flag name="atlas">Use ATLAS as BLAS implementation</flag>
+		<flag name="cuda">Enable support for nVidia CUDA</flag>
+		<flag name="eigen">Use Eigen as BLAS implementation</flag>
+		<flag name="fbgemm">Enable FBGEMM (Facebook GEneral Matrix Multiplication) support</flag>
+		<flag name="gflags">Build with gflags</flag>
+		<flag name="glog">Build with glog support</flag>
+		<flag name="gloo">Build gloo distributed communication backend support</flag>
+		<flag name="leveldb">Enable support for LevelDB</flag>
+		<flag name="lmdb">Enable support for LMDB</flag>
+		<flag name="mkl">Use Intel MKL as BLAS implementation</flag>
+		<flag name="mkldnn">Build with Intel MKL-DNN support</flag>
+		<flag name="namedtensor">Enable support for named tensors</flag>
+		<flag name="nnpack">Enable NNPACK support</flag>
+		<flag name="numa">Enable support for NUMA</flag>
+		<flag name="numpy">Enable NumPy support</flag>
+		<flag name="observers">Build observers</flag>
+		<flag name="openblas">Use OpenBLAS as BLAS implementation</flag>
+		<flag name="opencv">Enable support for OpenCV</flag>
+		<flag name="opencl">Enable support for OpenCL</flag>
+		<flag name="qnnpack">Enable QNNPACK support</flag>
+		<flag name="redis">Enable support for Redis</flag>
+		<flag name="tbb">Build with Intel TBB enabled</flag>
+		<flag name="tools">Build binary tools</flag>
+		<flag name="zeromq">Enable support for ZeroMQ</flag>
+	</use>
+</pkgmetadata>

diff --git a/sci-libs/pytorch/pytorch-1.4.0_p0.ebuild b/sci-libs/pytorch/pytorch-1.4.0_p0.ebuild
new file mode 100644
index 000000000..06ee528f2
--- /dev/null
+++ b/sci-libs/pytorch/pytorch-1.4.0_p0.ebuild
@@ -0,0 +1,272 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_6 )
+
+inherit distutils-r1 cmake-utils cuda
+
+MPV=${PV/_p/a}
+
+DESCRIPTION="Tensors and Dynamic neural networks in Python with strong GPU acceleration"
+HOMEPAGE="https://pytorch.org/"
+SRC_URI="https://github.com/pytorch/${PN}/archive/v${MPV}.tar.gz -> ${P}.tar.gz
+https://github.com/facebookincubator/gloo/archive/ca528e32.tar.gz -> gloo-ca528e32.tar.gz
+https://github.com/google/benchmark/archive/505be96a.tar.gz -> benchmark-505be96a.tar.gz
+https://github.com/google/gemmlowp/archive/3fb5c176.tar.gz -> gemmlowp-3fb5c176.tar.gz
+https://github.com/google/googletest/archive/2fe3bd99.tar.gz -> googletest-2fe3bd99.tar.gz
+https://github.com/houseroad/foxi/archive/8f74bc4d.tar.gz -> foxi-8f74bc4d.tar.gz
+https://github.com/intel/ideep/archive/78eafa5d.tar.gz -> ideep-78eafa5d.tar.gz
+https://github.com/Maratyszcza/FP16/archive/febbb1c1.tar.gz -> FP16-febbb1c1.tar.gz
+https://github.com/Maratyszcza/FXdiv/archive/b742d114.tar.gz -> FXdiv-b742d114.tar.gz
+https://github.com/Maratyszcza/NNPACK/archive/c039579a.tar.gz -> NNPACK-c039579a.tar.gz
+https://github.com/Maratyszcza/PeachPy/archive/07d8fde8.tar.gz -> PeachPy-07d8fde8.tar.gz
+https://github.com/Maratyszcza/psimd/archive/90a938f3.tar.gz -> psimd-90a938f3.tar.gz
+https://github.com/Maratyszcza/pthreadpool/archive/13da0b4c.tar.gz -> pthreadpool-13da0b4c.tar.gz
+cuda? ( https://github.com/NVIDIA/nccl/archive/7c72dee6.tar.gz -> nccl-7c72dee6.tar.gz )
+https://github.com/NVlabs/cub/archive/285aeeba.tar.gz -> cub-285aeeba.tar.gz
+https://github.com/onnx/onnx/archive/2891e145.tar.gz -> onnx-2891e145.tar.gz
+https://github.com/onnx/onnx-tensorrt/archive/cb3d8066.tar.gz -> onnx-tensorrt-cb3d8066.tar.gz
+https://github.com/pytorch/cpuinfo/archive/89fe1695.tar.gz -> cpuinfo-89fe1695.tar.gz
+https://github.com/pytorch/fbgemm/archive/82d259da.tar.gz -> fbgemm-82d259da.tar.gz
+https://github.com/pytorch/QNNPACK/archive/7d2a4e99.tar.gz -> QNNPACK-7d2a4e99.tar.gz
+https://github.com/shibatch/sleef/archive/7f523de6.tar.gz -> sleef-7f523de6.tar.gz
+https://github.com/asmjit/asmjit/archive/17556b2d.tar.gz -> asmjit-17556b2d.tar.gz
+	"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+
+IUSE="asan atlas cuda doc eigen +fbgemm ffmpeg gflags glog +gloo leveldb lmdb mkl mkldnn mpi namedtensor +nnpack numa +numpy +observers +openblas opencl opencv +openmp +python +qnnpack redis static tbb test tools zeromq"
+
+REQUIRED_USE="
+	python? ( ${PYTHON_REQUIRED_USE} )
+	numpy? ( python )
+	^^ ( atlas eigen mkl openblas )
+"
+
+DEPEND="
+	dev-libs/protobuf
+	dev-python/pyyaml[${PYTHON_USEDEP}]
+	virtual/python-typing[${PYTHON_USEDEP}]
+	atlas? ( sci-libs/atlas )
+	cuda? ( dev-util/nvidia-cuda-toolkit:0= )
+	doc? ( dev-python/pytorch-sphinx-theme[${PYTHON_USEDEP}] )
+	ffmpeg? ( virtual/ffmpeg )
+	gflags? ( dev-cpp/gflags )
+	glog? ( dev-cpp/glog )
+	leveldb? ( dev-libs/leveldb )
+	lmdb? ( dev-db/lmdb )
+	mkl? ( sci-libs/mkl )
+	mpi? ( virtual/mpi )
+	numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
+	openblas? ( sci-libs/openblas )
+	opencl? ( dev-libs/clhpp virtual/opencl )
+	opencv? ( media-libs/opencv )
+	python? ( ${PYTHON_DEPS}
+		dev-python/pybind11[${PYTHON_USEDEP}]
+	)
+	redis? ( dev-db/redis )
+	zeromq? ( net-libs/zeromq )
+	eigen? ( dev-cpp/eigen
+		   cuda? ( dev-cpp/eigen[cuda] ) )
+"
+RDEPEND="${DEPEND}"
+BDEPEND="
+	doc? ( app-doc/doxygen )
+"
+
+DEPEND="
+	test? ( dev-python/pytest[${PYTHON_USEDEP}] )
+	dev-python/setuptools[${PYTHON_USEDEP}]
+	dev-cpp/tbb
+	app-arch/zstd
+	dev-python/protobuf-python[${PYTHON_USEDEP}]
+	dev-python/pybind11[${PYTHON_USEDEP}]
+	sys-fabric/libibverbs
+	sys-process/numactl
+"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-1.2.0-setup.patch
+	"${FILESDIR}"/${PN}-1.4.0-eigen.patch
+	"${FILESDIR}"/${PN}-1.4.0-sleef.patch
+	"${FILESDIR}"/${PN}-1.4.0-skip-tests.patch
+	"${FILESDIR}"/0002-Don-t-build-libtorch-again-for-PyTorch-1.4.0.patch
+	"${FILESDIR}"/0003-Change-path-to-caffe2-build-dir-made-by-libtorch.patch
+	"${FILESDIR}"/0005-Change-library-directory-according-to-CMake-build.patch
+)
+
+src_unpack() {
+	default
+
+	mv -v ${PN}-${MPV} ${P} || die
+}
+
+src_prepare() {
+	cmake-utils_src_prepare
+
+	mv -v third_party/miniz-* ../ || die
+	rm -r third_party || die
+	ln -s .. third_party || die
+	cd .. || die
+	for d in *; do
+		case ${d} in
+			${PN}* | miniz-*) continue ;;
+			PeachPy-*) mv -v ${d} python-peachpy || die ;;
+			*) mv -v ${d} ${d%-*} || die ;;
+		esac
+	done
+
+	mv -v FBGEMM fbgemm || die
+	cd fbgemm || die
+	rm -r third_party || die
+	ln -s .. third_party || die
+
+	cd ../onnx || die
+	rm -r third_party || die
+	ln -s .. third_party || die
+
+	if use cuda; then
+		cd ../nccl || die
+		eapply "${FILESDIR}"/${PN}-1.4.0-nccl-nvccflags.patch
+		ln -s . nccl || die
+
+		cuda_src_prepare
+		export CUDAHOSTCXX=$(cuda_gccdir)/g++
+	fi
+}
+
+src_configure() {
+	local blas="Eigen"
+
+	if use atlas; then
+		blas="ATLAS"
+	elif use mkl; then
+		blas="MKL"
+	elif use openblas; then
+		blas="OpenBLAS"
+	fi
+
+	local mycmakeargs=(
+		-DTORCH_BUILD_VERSION=${PV}
+		-DTORCH_INSTALL_LIB_DIR=$(get_libdir)
+		-DBUILD_BINARY=$(usex tools ON OFF)
+		-DBUILD_CUSTOM_PROTOBUF=OFF
+		-DBUILD_DOCS=$(usex doc ON OFF)
+		-DBUILD_PYTHON=$(usex python ON OFF)
+		-DBUILD_SHARED_LIBS=$(usex static OFF ON)
+		-DBUILD_TEST=$(usex test ON OFF)
+		-DUSE_ASAN=$(usex asan ON OFF)
+		-DUSE_CUDA=$(usex cuda ON OFF)
+		-DUSE_NCCL=$(usex cuda ON OFF)
+		-DUSE_ROCM=OFF
+		-DUSE_FBGEMM=$(usex fbgemm ON OFF)
+		-DUSE_FFMPEG=$(usex ffmpeg ON OFF)
+		-DUSE_GFLAGS=$(usex gflags ON OFF)
+		-DUSE_GLOG=$(usex glog ON OFF)
+		-DUSE_LEVELDB=$(usex leveldb ON OFF)
+		-DUSE_LITE_PROTO=OFF
+		-DUSE_LMDB=$(usex lmdb ON OFF)
+		-DCAFFE2_USE_MKL=$(usex mkl ON OFF)
+		-DUSE_MKLDNN=$(usex mkldnn ON OFF)
+		-DUSE_MKLDNN_CBLAS=OFF
+		-DUSE_NCCL=OFF
+		-DUSE_NNPACK=$(usex nnpack ON OFF)
+		-DUSE_NUMPY=$(usex numpy ON OFF)
+		-DUSE_NUMA=$(usex numa ON OFF)
+		-DUSE_OBSERVERS=$(usex observers ON OFF)
+		-DUSE_OPENCL=$(usex opencl ON OFF)
+		-DUSE_OPENCV=$(usex opencv ON OFF)
+		-DUSE_OPENMP=$(usex openmp ON OFF)
+		-DUSE_TBB=OFF
+		-DUSE_PROF=OFF
+		-DUSE_QNNPACK=$(usex qnnpack ON OFF)
+		-DUSE_REDIS=$(usex redis ON OFF)
+		-DUSE_ROCKSDB=OFF
+		-DUSE_ZMQ=$(usex zeromq ON OFF)
+		-DUSE_MPI=$(usex mpi ON OFF)
+		-DUSE_GLOO=$(usex gloo ON OFF)
+		-DBUILD_NAMEDTENSOR=$(usex namedtensor ON OFF)
+		-DBLAS=${blas}
+		-DBUILDING_SYSTEM_WIDE=ON # to remove insecure DT_RUNPATH header
+	)
+
+	cmake-utils_src_configure
+
+	if use python; then
+		CMAKE_BUILD_DIR=${BUILD_DIR} distutils-r1_src_configure
+	fi
+}
+
+src_compile() {
+	cmake-utils_src_compile
+
+	if use python; then
+		CMAKE_BUILD_DIR=${BUILD_DIR} distutils-r1_src_compile
+	fi
+}
+
+src_install() {
+	cmake-utils_src_install
+
+	local multilib_failing_files=(
+		libc10.so
+		libtbb.so
+		libcaffe2_observers.so
+		libshm.so
+		libcaffe2_detectron_ops.so
+	)
+
+	local LIB=$(get_libdir)
+	if [[ ${LIB} != lib ]]; then
+		for file in ${multilib_failing_files[@]}; do
+			mv -fv "${ED}/usr/lib/$file" "${ED}/usr/${LIB}"
+		done
+	fi
+
+	rm -rfv "${ED}/torch"
+	rm -rfv "${ED}/var"
+	rm -rfv "${ED}/usr/lib"
+
+	rm -fv "${ED}/usr/include/*.{h,hpp}"
+	rm -rfv "${ED}/usr/include/asmjit"
+	rm -rfv "${ED}/usr/include/c10d"
+	rm -rfv "${ED}/usr/include/fbgemm"
+	rm -rfv "${ED}/usr/include/fp16"
+	rm -rfv "${ED}/usr/include/gloo"
+	rm -rfv "${ED}/usr/include/include"
+	rm -rfv "${ED}/usr/include/var"
+
+	cp -rv "${WORKDIR}/${P}/third_party/pybind11/include/pybind11" "${ED}/usr/include/"
+
+	rm -fv "${ED}/usr/lib64/libtbb.so"
+	rm -rfv "${ED}/usr/lib64/cmake"
+
+	rm -rfv "${ED}/usr/share/doc/mkldnn"
+
+	if use python; then
+		install_shm_manager() {
+			TORCH_BIN_DIR="${ED}/usr/lib64/${EPYTHON}/site-packages/torch/bin"
+
+			mkdir -pv ${TORCH_BIN_DIR}
+			cp -v "${ED}/usr/bin/torch_shm_manager" "${TORCH_BIN_DIR}"
+		}
+
+		python_foreach_impl install_shm_manager
+
+		scanelf -r --fix "${BUILD_DIR}/caffe2/python"
+		CMAKE_BUILD_DIR=${BUILD_DIR} distutils-r1_src_install
+
+		python_foreach_impl python_optimize
+	fi
+
+	find "${ED}/usr/lib64" -name "*.a" -exec rm -fv {} \;
+
+	use test && rm -rfv "${ED}/usr/test" "${ED}"/usr/bin/test_{api,jit}
+
+	# Remove the empty directories by CMake Python:
+	find "${ED}" -type d -empty -delete || die
+}


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [gentoo-commits] proj/sci:master commit in: sci-libs/pytorch/files/, sci-libs/pytorch/
@ 2020-02-20  4:38 Benda XU
  0 siblings, 0 replies; 3+ messages in thread
From: Benda XU @ 2020-02-20  4:38 UTC (permalink / raw
  To: gentoo-commits

commit:     ce9798e81de7fea2bbe6dfc6d0645b80db649300
Author:     Benda Xu <heroxbd <AT> gentoo <DOT> org>
AuthorDate: Thu Feb 20 04:38:02 2020 +0000
Commit:     Benda XU <heroxbd <AT> gentoo <DOT> org>
CommitDate: Thu Feb 20 04:38:06 2020 +0000
URL:        https://gitweb.gentoo.org/proj/sci.git/commit/?id=ce9798e8

sci-libs/pytorch: add support for cuda.

Bug: https://github.com/gentoo/sci/pull/941
Package-Manager: Portage-2.3.88, Repoman-2.3.18
Signed-off-by: Benda Xu <heroxbd <AT> gentoo.org>

 sci-libs/pytorch/files/pytorch-1.4.0-eigen.patch | 13 ----------
 sci-libs/pytorch/pytorch-1.4.0_p0.ebuild         | 33 ++++++------------------
 2 files changed, 8 insertions(+), 38 deletions(-)

diff --git a/sci-libs/pytorch/files/pytorch-1.4.0-eigen.patch b/sci-libs/pytorch/files/pytorch-1.4.0-eigen.patch
deleted file mode 100644
index 54ea3a5e0..000000000
--- a/sci-libs/pytorch/files/pytorch-1.4.0-eigen.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: pytorch-1.4.0/CMakeLists.txt
-===================================================================
---- pytorch-1.4.0.orig/CMakeLists.txt
-+++ pytorch-1.4.0/CMakeLists.txt
-@@ -173,7 +173,7 @@ option(USE_REDIS "Use Redis" OFF)
- option(USE_ROCKSDB "Use RocksDB" OFF)
- option(USE_SNPE "Use Qualcomm's SNPE library" OFF)
- option(USE_SYSTEM_EIGEN_INSTALL
--    "Use system Eigen instead of the one under third_party" OFF)
-+    "Use system Eigen instead of the one under third_party" ON)
- option(USE_TENSORRT "Using Nvidia TensorRT library" OFF)
- option(USE_ZMQ "Use ZMQ" OFF)
- option(USE_ZSTD "Use ZSTD" OFF)

diff --git a/sci-libs/pytorch/pytorch-1.4.0_p0.ebuild b/sci-libs/pytorch/pytorch-1.4.0_p0.ebuild
index 06ee528f2..90c7e9a9d 100644
--- a/sci-libs/pytorch/pytorch-1.4.0_p0.ebuild
+++ b/sci-libs/pytorch/pytorch-1.4.0_p0.ebuild
@@ -39,7 +39,7 @@ LICENSE="BSD"
 SLOT="0"
 KEYWORDS="~amd64"
 
-IUSE="asan atlas cuda doc eigen +fbgemm ffmpeg gflags glog +gloo leveldb lmdb mkl mkldnn mpi namedtensor +nnpack numa +numpy +observers +openblas opencl opencv +openmp +python +qnnpack redis static tbb test tools zeromq"
+IUSE="asan atlas cuda eigen +fbgemm ffmpeg gflags glog +gloo leveldb lmdb mkl mkldnn mpi namedtensor +nnpack numa +numpy +observers +openblas opencl opencv +openmp +python +qnnpack redis static tbb test tools zeromq"
 
 REQUIRED_USE="
 	python? ( ${PYTHON_REQUIRED_USE} )
@@ -52,8 +52,8 @@ DEPEND="
 	dev-python/pyyaml[${PYTHON_USEDEP}]
 	virtual/python-typing[${PYTHON_USEDEP}]
 	atlas? ( sci-libs/atlas )
-	cuda? ( dev-util/nvidia-cuda-toolkit:0= )
-	doc? ( dev-python/pytorch-sphinx-theme[${PYTHON_USEDEP}] )
+	cuda? ( dev-libs/cudnn
+		dev-cpp/eigen[cuda] )
 	ffmpeg? ( virtual/ffmpeg )
 	gflags? ( dev-cpp/gflags )
 	glog? ( dev-cpp/glog )
@@ -70,13 +70,10 @@ DEPEND="
 	)
 	redis? ( dev-db/redis )
 	zeromq? ( net-libs/zeromq )
-	eigen? ( dev-cpp/eigen
-		   cuda? ( dev-cpp/eigen[cuda] ) )
+	eigen? ( dev-cpp/eigen )
 "
 RDEPEND="${DEPEND}"
-BDEPEND="
-	doc? ( app-doc/doxygen )
-"
+BDEPEND=""
 
 DEPEND="
 	test? ( dev-python/pytest[${PYTHON_USEDEP}] )
@@ -91,7 +88,6 @@ DEPEND="
 
 PATCHES=(
 	"${FILESDIR}"/${PN}-1.2.0-setup.patch
-	"${FILESDIR}"/${PN}-1.4.0-eigen.patch
 	"${FILESDIR}"/${PN}-1.4.0-sleef.patch
 	"${FILESDIR}"/${PN}-1.4.0-skip-tests.patch
 	"${FILESDIR}"/0002-Don-t-build-libtorch-again-for-PyTorch-1.4.0.patch
@@ -155,13 +151,13 @@ src_configure() {
 		-DTORCH_INSTALL_LIB_DIR=$(get_libdir)
 		-DBUILD_BINARY=$(usex tools ON OFF)
 		-DBUILD_CUSTOM_PROTOBUF=OFF
-		-DBUILD_DOCS=$(usex doc ON OFF)
 		-DBUILD_PYTHON=$(usex python ON OFF)
 		-DBUILD_SHARED_LIBS=$(usex static OFF ON)
 		-DBUILD_TEST=$(usex test ON OFF)
 		-DUSE_ASAN=$(usex asan ON OFF)
 		-DUSE_CUDA=$(usex cuda ON OFF)
 		-DUSE_NCCL=$(usex cuda ON OFF)
+		-DUSE_SYSTEM_NCCL=OFF
 		-DUSE_ROCM=OFF
 		-DUSE_FBGEMM=$(usex fbgemm ON OFF)
 		-DUSE_FFMPEG=$(usex ffmpeg ON OFF)
@@ -173,7 +169,6 @@ src_configure() {
 		-DCAFFE2_USE_MKL=$(usex mkl ON OFF)
 		-DUSE_MKLDNN=$(usex mkldnn ON OFF)
 		-DUSE_MKLDNN_CBLAS=OFF
-		-DUSE_NCCL=OFF
 		-DUSE_NNPACK=$(usex nnpack ON OFF)
 		-DUSE_NUMPY=$(usex numpy ON OFF)
 		-DUSE_NUMA=$(usex numa ON OFF)
@@ -189,9 +184,9 @@ src_configure() {
 		-DUSE_ZMQ=$(usex zeromq ON OFF)
 		-DUSE_MPI=$(usex mpi ON OFF)
 		-DUSE_GLOO=$(usex gloo ON OFF)
+		-DUSE_SYSTEM_EIGEN_INSTALL=ON
 		-DBUILD_NAMEDTENSOR=$(usex namedtensor ON OFF)
 		-DBLAS=${blas}
-		-DBUILDING_SYSTEM_WIDE=ON # to remove insecure DT_RUNPATH header
 	)
 
 	cmake-utils_src_configure
@@ -212,19 +207,9 @@ src_compile() {
 src_install() {
 	cmake-utils_src_install
 
-	local multilib_failing_files=(
-		libc10.so
-		libtbb.so
-		libcaffe2_observers.so
-		libshm.so
-		libcaffe2_detectron_ops.so
-	)
-
 	local LIB=$(get_libdir)
 	if [[ ${LIB} != lib ]]; then
-		for file in ${multilib_failing_files[@]}; do
-			mv -fv "${ED}/usr/lib/$file" "${ED}/usr/${LIB}"
-		done
+		mv -fv "${ED}"/usr/lib/*.so "${ED}"/usr/${LIB}/ || die
 	fi
 
 	rm -rfv "${ED}/torch"
@@ -245,8 +230,6 @@ src_install() {
 	rm -fv "${ED}/usr/lib64/libtbb.so"
 	rm -rfv "${ED}/usr/lib64/cmake"
 
-	rm -rfv "${ED}/usr/share/doc/mkldnn"
-
 	if use python; then
 		install_shm_manager() {
 			TORCH_BIN_DIR="${ED}/usr/lib64/${EPYTHON}/site-packages/torch/bin"


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [gentoo-commits] proj/sci:master commit in: sci-libs/pytorch/files/, sci-libs/pytorch/
@ 2021-12-22 14:33 Andrew Ammerlaan
  0 siblings, 0 replies; 3+ messages in thread
From: Andrew Ammerlaan @ 2021-12-22 14:33 UTC (permalink / raw
  To: gentoo-commits

commit:     0ffada949e994e6f869325019b173129ab42edf2
Author:     Miezhiko <Miezhiko <AT> gmail <DOT> com>
AuthorDate: Thu Nov 11 06:25:13 2021 +0000
Commit:     Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
CommitDate: Wed Dec 22 12:42:17 2021 +0000
URL:        https://gitweb.gentoo.org/proj/sci.git/commit/?id=0ffada94

sci-libs/pytorch: add PyTorch 1.10

Signed-off-by: Miezhiko <Miezhiko <AT> gmail.com>
Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org>

 sci-libs/pytorch/files/pytorch-1.10.0-nonull.patch |  12 +
 sci-libs/pytorch/pytorch-1.10.0.ebuild             | 330 +++++++++++++++++++++
 2 files changed, 342 insertions(+)

diff --git a/sci-libs/pytorch/files/pytorch-1.10.0-nonull.patch b/sci-libs/pytorch/files/pytorch-1.10.0-nonull.patch
new file mode 100644
index 000000000..adc258556
--- /dev/null
+++ b/sci-libs/pytorch/files/pytorch-1.10.0-nonull.patch
@@ -0,0 +1,12 @@
+--- a/torch/csrc/jit/frontend/ir_emitter.cpp	2021-10-15 05:35:23.000000000 +0400
++++ b/torch/csrc/jit/frontend/ir_emitter.cpp	2021-10-15 05:35:23.000000000 +0400
+@@ -1678,7 +1678,7 @@
+               << "Union type annotation `" << type_hint->repr_str()
+               << "` can hold " << vector_repr.str() << ", but none of "
+               << "those list types can hold the types of the given dict"
+-              << " elements, which were unified to " << candidate->repr_str();
++              << " elements, which were unified";
+         } else {
+           refined_type_hint = candidate;
+         }
+

diff --git a/sci-libs/pytorch/pytorch-1.10.0.ebuild b/sci-libs/pytorch/pytorch-1.10.0.ebuild
new file mode 100644
index 000000000..d3d347325
--- /dev/null
+++ b/sci-libs/pytorch/pytorch-1.10.0.ebuild
@@ -0,0 +1,330 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{7..10} )
+
+inherit cmake cuda distutils-r1 prefix
+
+DESCRIPTION="Tensors and Dynamic neural networks in Python with strong GPU acceleration"
+HOMEPAGE="https://pytorch.org/"
+SRC_URI="https://github.com/pytorch/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
+https://github.com/google/benchmark/archive/e991355c02b93fe17713efe04cbc2e278e00fdbd.tar.gz -> benchmark-e991355c02b93fe17713efe04cbc2e278e00fdbd.tar.gz
+https://github.com/pytorch/cpuinfo/archive/63b25457.tar.gz -> cpuinfo-63b25457.tar.gz
+https://github.com/NVlabs/cub/archive/d106ddb991a56c3df1b6d51b2409e36ba8181ce4.tar.gz -> cub-d106ddb991a56c3df1b6d51b2409e36ba8181ce4.tar.gz
+https://github.com/pytorch/fbgemm/archive/7588d9d804826b428fc0e4fd418e9cc3f7a72e52.tar.gz -> fbgemm-7588d9d804826b428fc0e4fd418e9cc3f7a72e52.tar.gz
+https://github.com/asmjit/asmjit/archive/d0d14ac774977d0060a351f66e35cb57ba0bf59c.tar.gz -> asmjit-d0d14ac774977d0060a351f66e35cb57ba0bf59c.tar.gz
+https://github.com/pytorch/cpuinfo/archive/5916273f79a21551890fd3d56fc5375a78d1598d.tar.gz -> cpuinfo-5916273f79a21551890fd3d56fc5375a78d1598d.tar.gz
+https://github.com/google/googletest/archive/0fc5466d.tar.gz -> googletest-0fc5466d.tar.gz
+https://github.com/fmtlib/fmt/archive/cd4af11efc9c622896a3e4cb599fa28668ca3d05.tar.gz -> fmt-cd4af11efc9c622896a3e4cb599fa28668ca3d05.tar.gz
+https://github.com/houseroad/foxi/archive/c278588e34e535f0bb8f00df3880d26928038cad.tar.gz -> foxi-c278588e34e535f0bb8f00df3880d26928038cad.tar.gz
+https://github.com/Maratyszcza/FP16/archive/4dfe081cf6bcd15db339cf2680b9281b8451eeb3.tar.gz -> FP16-4dfe081cf6bcd15db339cf2680b9281b8451eeb3.tar.gz
+https://github.com/Maratyszcza/FXdiv/archive/b408327ac2a15ec3e43352421954f5b1967701d1.tar.gz -> FXdiv-b408327ac2a15ec3e43352421954f5b1967701d1.tar.gz
+https://github.com/google/gemmlowp/archive/3fb5c176.tar.gz -> gemmlowp-3fb5c176.tar.gz
+https://github.com/facebookincubator/gloo/archive/c22a5cfba94edf8ea4f53a174d38aa0c629d070f.tar.gz -> gloo-c22a5cfba94edf8ea4f53a174d38aa0c629d070f.tar.gz
+https://github.com/google/googletest/archive/e2239ee6043f73722e7aa812a459f54a28552929.tar.gz -> googletest-e2239ee6043f73722e7aa812a459f54a28552929.tar.gz
+https://github.com/intel/ideep/archive/9ca27bbfd88fa1469cbf0467bd6f14cd1738fa40.tar.gz -> ideep-9ca27bbfd88fa1469cbf0467bd6f14cd1738fa40.tar.gz
+https://github.com/intel/mkl-dnn/archive/5ef631a0.tar.gz -> mkl-dnn-5ef631a0.tar.gz
+cuda? ( https://github.com/NVIDIA/nccl/archive/033d7995.tar.gz -> nccl-033d7995.tar.gz )
+https://github.com/Maratyszcza/NNPACK/archive/c07e3a0400713d546e0dea2d5466dd22ea389c73.tar.gz -> NNPACK-c07e3a0400713d546e0dea2d5466dd22ea389c73.tar.gz
+https://github.com/onnx/onnx/archive/a82c6a70.tar.gz -> onnx-a82c6a70.tar.gz
+https://github.com/onnx/onnx-tensorrt/archive/c153211418a7c57ce071d9ce2a41f8d1c85a878f.tar.gz -> onnx-tensorrt-c153211418a7c57ce071d9ce2a41f8d1c85a878f.tar.gz
+https://github.com/onnx/onnx/archive/29e7aa7048809784465d06e897f043a4600642b2.tar.gz -> onnx-29e7aa7048809784465d06e897f043a4600642b2.tar.gz
+https://github.com/google/benchmark/archive/e776aa02.tar.gz -> benchmark-e776aa02.tar.gz
+https://github.com/google/benchmark/archive/5b7683f4.tar.gz -> benchmark-5b7683f4.tar.gz
+https://github.com/google/googletest/archive/5ec7f0c4.tar.gz -> googletest-5ec7f0c4.tar.gz
+https://github.com/Maratyszcza/psimd/archive/072586a71b55b7f8c584153d223e95687148a90.tar.gz -> psimd-072586a71b55b7f8c584153d223e95687148a90.tar.gz
+https://github.com/Maratyszcza/pthreadpool/archive/a134dd5d4cee80cce15db81a72e7f929d71dd413.tar.gz -> pthreadpool-a134dd5d4cee80cce15db81a72e7f929d71dd413.tar.gz
+https://github.com/Maratyszcza/PeachPy/archive/07d8fde8ac45d7705129475c0f94ed8925b93473.tar.gz -> PeachPy-07d8fde8ac45d7705129475c0f94ed8925b93473.tar.gz
+https://github.com/pytorch/QNNPACK/archive/7d2a4e9931a82adc3814275b6219a03e24e36b4c.tar.gz -> QNNPACK-7d2a4e9931a82adc3814275b6219a03e24e36b4c.tar.gz
+https://github.com/shibatch/sleef/archive/e0a003ee838b75d11763aa9c3ef17bf71a725bff.tar.gz -> sleef-e0a003ee838b75d11763aa9c3ef17bf71a725bff.tar.gz
+https://github.com/pytorch/tensorpipe/archive/d2aa3485e8229c98891dfd604b514a39d45a5c99.tar.gz -> tensorpipe-d2aa3485e8229c98891dfd604b514a39d45a5c99.tar.gz
+https://github.com/google/googletest/archive/2fe3bd99.tar.gz -> googletest-2fe3bd99.tar.gz
+https://github.com/google/libnop/archive/aa95422e.tar.gz -> libnop-aa95422e.tar.gz
+https://github.com/libuv/libuv/archive/48e04275332f5753427d21a52f17ec6206451f2c.tar.gz -> libuv-48e04275332f5753427d21a52f17ec6206451f2c.tar.gz
+https://github.com/google/XNNPACK/archive/79cd5f9e18ad0925ac9a050b00ea5a36230072db.tar.gz -> XNNPACK-79cd5f9e18ad0925ac9a050b00ea5a36230072db.tar.gz
+https://github.com/pytorch/kineto/archive/879a203d9bf554e95541679ddad6e0326f272dc1.tar.gz -> kineto-879a203d9bf554e95541679ddad6e0326f272dc1.tar.gz
+https://github.com/driazati/breakpad/archive/7d188f679d4ae0a5bd06408a3047d69ef8eef848.tar.gz -> breakpad-7d188f679d4ae0a5bd06408a3047d69ef8eef848.tar.gz
+https://github.com/mikey/linux-syscall-support/archive/e1e7b0ad8ee99a875b272c8e33e308472e897660.tar.gz -> lss-e1e7b0ad8ee99a875b272c8e33e308472e897660.tar.gz
+https://github.com/pybind/pybind11/archive/8de7772cc72daca8e947b79b83fea46214931604.tar.gz -> pybind11-8de7772cc72daca8e947b79b83fea46214931604.tar.gz
+"
+
+# git clone git@github.com:pytorch/pytorch.git && cd pytorch
+# git submodules update --init --recursive
+# ${FILESDIR}/get_third_paries
+# cat SRC_URI src_prepare
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~x86 ~amd64"
+
+IUSE="asan blas cuda +fbgemm ffmpeg gflags glog +gloo leveldb lmdb mkldnn mpi namedtensor +nnpack numa +observers opencl opencv +openmp +python +qnnpack redis rocm static test tools zeromq"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="
+	?? ( cuda rocm )
+"
+
+RDEPEND="
+	dev-python/pyyaml[${PYTHON_USEDEP}]
+	blas? ( virtual/blas )
+	cuda? ( dev-libs/cudnn
+		dev-cpp/eigen[cuda] )
+	rocm? ( >=dev-util/hip-4.0.0-r1
+			>=dev-libs/rccl-4
+			>=sci-libs/rocThrust-4
+			>=sci-libs/hipCUB-4
+			>=sci-libs/rocPRIM-4
+			>=sci-libs/miopen-4
+			>=sci-libs/rocBLAS-4
+			>=sci-libs/rocRAND-4
+			>=sci-libs/hipSPARSE-4
+			>=sci-libs/rocFFT-4
+			>=dev-util/roctracer-4 )
+	ffmpeg? ( media-video/ffmpeg )
+	gflags? ( dev-cpp/gflags )
+	glog? ( dev-cpp/glog[gflags] )
+	leveldb? ( dev-libs/leveldb )
+	lmdb? ( dev-db/lmdb )
+	mpi? ( virtual/mpi )
+	opencl? ( dev-libs/clhpp virtual/opencl )
+	opencv? ( media-libs/opencv )
+	python? ( ${PYTHON_DEPS}
+		dev-python/pybind11[${PYTHON_USEDEP}]
+		dev-python/numpy[${PYTHON_USEDEP}]
+		dev-python/protobuf-python:0/30
+	)
+	redis? ( dev-db/redis )
+	zeromq? ( net-libs/zeromq )
+	dev-cpp/eigen
+	dev-libs/protobuf:0/30
+	dev-libs/libuv
+"
+
+#ATen code generation
+BDEPEND="dev-python/pyyaml"
+
+DEPEND="${RDEPEND}
+	test? ( dev-python/pytest[${PYTHON_USEDEP}] )
+	dev-cpp/tbb
+	app-arch/zstd
+	!dev-python/pybind11
+	dev-python/typing-extensions[${PYTHON_USEDEP}]
+	sys-fabric/libibverbs
+	sys-process/numactl
+"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-1.6.0-skip-tests.patch
+	"${FILESDIR}"/${PN}-1.6.0-global-dlopen.patch
+	"${FILESDIR}"/0002-Don-t-build-libtorch-again-for-PyTorch-1.7.1.patch
+	"${FILESDIR}"/${PN}-1.7.1-no-rpath.patch
+	"${FILESDIR}"/${PN}-1.7.1-torch_shm_manager.patch
+	"${FILESDIR}"/${PN}-1.10.0-nonull.patch
+)
+
+src_prepare() {
+	cmake_src_prepare
+	eprefixify torch/__init__.py
+
+	rmdir third_party/benchmark || die
+	ln -sv "${WORKDIR}"/benchmark-e991355c02b93fe17713efe04cbc2e278e00fdbd third_party/benchmark || die
+	rmdir third_party/cpuinfo || die
+	ln -sv "${WORKDIR}"/cpuinfo-5916273f79a21551890fd3d56fc5375a78d1598d third_party/cpuinfo || die
+	rmdir third_party/cub || die
+	ln -sv "${WORKDIR}"/cub-d106ddb991a56c3df1b6d51b2409e36ba8181ce4 third_party/cub || die
+	rmdir third_party/fbgemm || die
+	ln -sv "${WORKDIR}"/FBGEMM-7588d9d804826b428fc0e4fd418e9cc3f7a72e52 third_party/fbgemm || die
+	rmdir third_party/fbgemm/third_party/asmjit || die
+	ln -sv "${WORKDIR}"/asmjit-d0d14ac774977d0060a351f66e35cb57ba0bf59c third_party/fbgemm/third_party/asmjit || die
+	rmdir third_party/fbgemm/third_party/cpuinfo || die
+	ln -sv "${WORKDIR}"/cpuinfo-d5e37adf1406cf899d7d9ec1d317c47506ccb970 third_party/fbgemm/third_party/cpuinfo || die
+	rmdir third_party/fbgemm/third_party/googletest || die
+	ln -sv "${WORKDIR}"/googletest-0fc5466dbb9e623029b1ada539717d10bd45e99e third_party/fbgemm/third_party/googletest || die
+	rmdir third_party/fmt || die
+	ln -sv "${WORKDIR}"/fmt-cd4af11efc9c622896a3e4cb599fa28668ca3d05 third_party/fmt || die
+	rmdir third_party/foxi || die
+	ln -sv "${WORKDIR}"/foxi-c278588e34e535f0bb8f00df3880d26928038cad third_party/foxi || die
+	rmdir third_party/FP16 || die
+	ln -sv "${WORKDIR}"/FP16-4dfe081cf6bcd15db339cf2680b9281b8451eeb3 third_party/FP16 || die
+	rmdir third_party/FXdiv
+	ln -sv "${WORKDIR}"/FXdiv-b408327ac2a15ec3e43352421954f5b1967701d1 third_party/FXdiv || die
+	rmdir third_party/gemmlowp/gemmlowp || die
+	ln -sv "${WORKDIR}"/gemmlowp-3fb5c176c17c765a3492cd2f0321b0dab712f350 third_party/gemmlowp/gemmlowp || die
+	rmdir third_party/gloo || die
+	ln -sv "${WORKDIR}"/gloo-c22a5cfba94edf8ea4f53a174d38aa0c629d070f third_party/gloo || die
+	rmdir third_party/googletest || die
+	ln -sv "${WORKDIR}"/googletest-e2239ee6043f73722e7aa812a459f54a28552929 third_party/googletest || die
+	rmdir third_party/ideep || die
+	ln -sv "${WORKDIR}"/ideep-9ca27bbfd88fa1469cbf0467bd6f14cd1738fa40 third_party/ideep || die
+	rmdir third_party/ideep/mkl-dnn || die
+	ln -sv "${WORKDIR}"/mkl-dnn-5ef631a030a6f73131c77892041042805a06064f third_party/ideep/mkl-dnn || die
+	rmdir third_party/nccl/nccl || die
+	ln -sv "${WORKDIR}"/nccl-033d799524fb97629af5ac2f609de367472b2696 third_party/nccl/nccl || die
+	rmdir third_party/NNPACK || die
+	ln -sv "${WORKDIR}"/NNPACK-c07e3a0400713d546e0dea2d5466dd22ea389c73 third_party/NNPACK || die
+	rmdir third_party/onnx || die
+	ln -sv "${WORKDIR}"/onnx-29e7aa7048809784465d06e897f043a4600642b2 third_party/onnx || die
+	rmdir third_party/onnx-tensorrt || die
+	ln -sv "${WORKDIR}"/onnx-tensorrt-c153211418a7c57ce071d9ce2a41f8d1c85a878f third_party/onnx-tensorrt || die
+	rmdir third_party/onnx-tensorrt/third_party/onnx || die
+	ln -sv "${WORKDIR}"/onnx-765f5ee823a67a866f4bd28a9860e81f3c811ce8 third_party/onnx-tensorrt/third_party/onnx || die
+	rmdir third_party/onnx/third_party/benchmark || die
+	ln -sv "${WORKDIR}"/benchmark-e776aa0275e293707b6a0901e0e8d8a8a3679508 third_party/onnx/third_party/benchmark || die
+	rmdir third_party/psimd || die
+	ln -sv "${WORKDIR}"/psimd-072586a71b55b7f8c584153d223e95687148a900 third_party/psimd || die
+	rmdir third_party/pthreadpool || die
+	ln -sv "${WORKDIR}"/pthreadpool-a134dd5d4cee80cce15db81a72e7f929d71dd413 third_party/pthreadpool || die
+	rmdir third_party/python-peachpy || die
+	ln -sv "${WORKDIR}"/PeachPy-07d8fde8ac45d7705129475c0f94ed8925b93473 third_party/python-peachpy || die
+	rmdir third_party/QNNPACK || die
+	ln -sv "${WORKDIR}"/QNNPACK-7d2a4e9931a82adc3814275b6219a03e24e36b4c third_party/QNNPACK || die
+	rmdir third_party/sleef || die
+	ln -sv "${WORKDIR}"/sleef-e0a003ee838b75d11763aa9c3ef17bf71a725bff third_party/sleef || die
+	rmdir third_party/tensorpipe || die
+	ln -sv "${WORKDIR}"/tensorpipe-d2aa3485e8229c98891dfd604b514a39d45a5c99 third_party/tensorpipe || die
+	rmdir third_party/tensorpipe/third_party/googletest || die
+	ln -sv "${WORKDIR}"/googletest-2fe3bd994b3189899d93f1d5a881e725e046fdc2 third_party/tensorpipe/third_party/googletest || die
+	rmdir third_party/tensorpipe/third_party/libnop || die
+	ln -sv "${WORKDIR}"/libnop-aa95422ea8c409e3f078d2ee7708a5f59a8b9fa2 third_party/tensorpipe/third_party/libnop || die
+	rmdir third_party/tensorpipe/third_party/libuv || die
+	ln -sv "${WORKDIR}"/libuv-48e04275332f5753427d21a52f17ec6206451f2c third_party/tensorpipe/third_party/libuv || die
+	rmdir third_party/XNNPACK || die
+	ln -sv "${WORKDIR}"/XNNPACK-79cd5f9e18ad0925ac9a050b00ea5a36230072db third_party/XNNPACK || die
+	rmdir third_party/kineto || die
+	ln -sv "${WORKDIR}"/kineto-879a203d9bf554e95541679ddad6e0326f272dc1 third_party/kineto || die
+	rmdir third_party/breakpad || die
+	ln -sv "${WORKDIR}"/breakpad-7d188f679d4ae0a5bd06408a3047d69ef8eef848 third_party/breakpad || die
+	rmdir third_party/breakpad/src/third_party/lss || die
+	ln -sv "${WORKDIR}"/linux-syscall-support-e1e7b0ad8ee99a875b272c8e33e308472e897660 third_party/breakpad/src/third_party/lss || die
+	rmdir third_party/pybind11 || die
+	ln -sv "${WORKDIR}"/pybind11-8de7772cc72daca8e947b79b83fea46214931604 third_party/pybind11 || die
+
+	if use cuda; then
+		cd third_party/nccl/nccl || die
+		eapply "${FILESDIR}"/${PN}-1.6.0-nccl-nvccflags.patch
+		cuda_src_prepare
+		export CUDAHOSTCXX=$(cuda_gccdir)/g++
+	fi
+
+	if use rocm; then
+		#Allow escaping sandbox
+		addread /dev/kfd
+		addread /dev/dri
+		addwrite /dev/kfd
+		addwrite /dev/dri
+
+		ebegin "HIPifying cuda sources"
+		tools/amd_build/build_amd.py
+		eend $?
+
+		export PYTORCH_ROCM_ARCH=$(rocminfo | egrep -o "gfx[0-9]+" | uniq | awk -vORS=';' "{print $1}" | sed 's/;$/\n/') || die
+		sed -e "/set(roctracer_INCLUDE_DIRS/s,\${ROCTRACER_PATH}/include,${EPREFIX}/usr/include/roctracer," \
+			-i cmake/public/LoadHIP.cmake || die
+	fi
+}
+
+src_configure() {
+	local mycmakeargs=(
+		-DWERROR=OFF
+		-DTORCH_BUILD_VERSION=${PV}
+		-DTORCH_INSTALL_LIB_DIR=$(get_libdir)
+		-DBUILD_BINARY=$(usex tools ON OFF)
+		-DBUILD_CUSTOM_PROTOBUF=OFF
+		-DBUILD_PYTHON=$(usex python ON OFF)
+		-DBUILD_SHARED_LIBS=$(usex static OFF ON)
+		-DBUILD_TEST=$(usex test ON OFF)
+		-DUSE_ASAN=$(usex asan ON OFF)
+		-DUSE_CUDA=$(usex cuda ON OFF)
+		-DUSE_NCCL=$(usex cuda ON OFF)
+		-DUSE_SYSTEM_NCCL=OFF
+		-DUSE_ROCM=$(usex rocm ON OFF)
+		-DUSE_FBGEMM=$(usex fbgemm ON OFF)
+		-DUSE_FFMPEG=$(usex ffmpeg ON OFF)
+		-DUSE_GFLAGS=$(usex gflags ON OFF)
+		-DUSE_GLOG=$(usex glog ON OFF)
+		-DUSE_LEVELDB=$(usex leveldb ON OFF)
+		-DUSE_LITE_PROTO=OFF
+		-DUSE_LMDB=$(usex lmdb ON OFF)
+		-DUSE_MKLDNN=$(usex mkldnn ON OFF)
+		-DUSE_MKLDNN_CBLAS=OFF
+		-DUSE_NNPACK=$(usex nnpack ON OFF)
+		-DUSE_NUMPY=$(usex python ON OFF)
+		-DUSE_NUMA=$(usex numa ON OFF)
+		-DUSE_OBSERVERS=$(usex observers ON OFF)
+		-DUSE_OPENCL=$(usex opencl ON OFF)
+		-DUSE_OPENCV=$(usex opencv ON OFF)
+		-DUSE_OPENMP=$(usex openmp ON OFF)
+		-DUSE_TBB=OFF
+		-DUSE_PROF=OFF
+		-DUSE_QNNPACK=$(usex qnnpack ON OFF)
+		-DUSE_REDIS=$(usex redis ON OFF)
+		-DUSE_ROCKSDB=OFF
+		-DUSE_ZMQ=$(usex zeromq ON OFF)
+		-DUSE_MPI=$(usex mpi ON OFF)
+		-DUSE_GLOO=$(usex gloo ON OFF)
+		-DUSE_SYSTEM_EIGEN_INSTALL=ON
+		-DBUILD_NAMEDTENSOR=$(usex namedtensor ON OFF)
+		-DBLAS=$(usex blas Generic Eigen)
+		-DTP_BUILD_LIBUV=OFF
+		-Wno-dev
+	)
+
+	cmake_src_configure
+
+	if use python; then
+		CMAKE_BUILD_DIR="${BUILD_DIR}" distutils-r1_src_configure
+	fi
+
+	# do not rerun cmake and the build process in src_install
+	sed '/RERUN/,+1d' -i "${BUILD_DIR}"/build.ninja || die
+}
+
+src_compile() {
+	cmake_src_compile
+
+	if use python; then
+		USE_SYSTEM_LIBS=ON CMAKE_BUILD_DIR=${BUILD_DIR} distutils-r1_src_compile
+	fi
+}
+
+src_install() {
+	cmake_src_install
+
+	local LIB=$(get_libdir)
+	if [[ ${LIB} != lib ]]; then
+		mv -fv "${ED}"/usr/lib/*.so "${ED}"/usr/${LIB}/ || die
+	fi
+
+	rm -rfv "${ED}/torch"
+	rm -rfv "${ED}/var"
+	rm -rfv "${ED}/usr/lib"
+
+	rm -fv "${ED}/usr/include/*.{h,hpp}"
+	rm -rfv "${ED}/usr/include/asmjit"
+	rm -rfv "${ED}/usr/include/c10d"
+	rm -rfv "${ED}/usr/include/fbgemm"
+	rm -rfv "${ED}/usr/include/fp16"
+	rm -rfv "${ED}/usr/include/gloo"
+	rm -rfv "${ED}/usr/include/include"
+	rm -rfv "${ED}/usr/include/var"
+
+	cp -rv "${WORKDIR}/${P}/third_party/pybind11/include/pybind11" "${ED}/usr/include/"
+
+	rm -fv "${ED}/usr/${LIB}/libtbb.so"
+	rm -rfv "${ED}/usr/${LIB}/cmake"
+
+	if use python; then
+		scanelf -r --fix "${BUILD_DIR}/caffe2/python"
+		USE_SYSTEM_LIBS=ON CMAKE_BUILD_DIR=${BUILD_DIR} distutils-r1_src_install
+
+		python_foreach_impl python_optimize
+	fi
+
+	find "${ED}/usr/${LIB}" -name "*.a" -exec rm -fv {} \;
+
+	use test && rm -rfv "${ED}/usr/test" "${ED}"/usr/bin/test_{api,jit}
+
+	# Remove the empty directories by CMake Python:
+	find "${ED}" -type d -empty -delete || die
+}


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-12-22 14:33 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-02-19 14:39 [gentoo-commits] proj/sci:master commit in: sci-libs/pytorch/files/, sci-libs/pytorch/ Benda XU
  -- strict thread matches above, loose matches on Subject: below --
2020-02-20  4:38 Benda XU
2021-12-22 14:33 Andrew Ammerlaan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox