1 |
commit: 0ffada949e994e6f869325019b173129ab42edf2 |
2 |
Author: Miezhiko <Miezhiko <AT> gmail <DOT> com> |
3 |
AuthorDate: Thu Nov 11 06:25:13 2021 +0000 |
4 |
Commit: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org> |
5 |
CommitDate: Wed Dec 22 12:42:17 2021 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/sci.git/commit/?id=0ffada94 |
7 |
|
8 |
sci-libs/pytorch: add PyTorch 1.10 |
9 |
|
10 |
Signed-off-by: Miezhiko <Miezhiko <AT> gmail.com> |
11 |
Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org> |
12 |
|
13 |
sci-libs/pytorch/files/pytorch-1.10.0-nonull.patch | 12 + |
14 |
sci-libs/pytorch/pytorch-1.10.0.ebuild | 330 +++++++++++++++++++++ |
15 |
2 files changed, 342 insertions(+) |
16 |
|
17 |
diff --git a/sci-libs/pytorch/files/pytorch-1.10.0-nonull.patch b/sci-libs/pytorch/files/pytorch-1.10.0-nonull.patch |
18 |
new file mode 100644 |
19 |
index 000000000..adc258556 |
20 |
--- /dev/null |
21 |
+++ b/sci-libs/pytorch/files/pytorch-1.10.0-nonull.patch |
22 |
@@ -0,0 +1,12 @@ |
23 |
+--- a/torch/csrc/jit/frontend/ir_emitter.cpp 2021-10-15 05:35:23.000000000 +0400 |
24 |
++++ b/torch/csrc/jit/frontend/ir_emitter.cpp 2021-10-15 05:35:23.000000000 +0400 |
25 |
+@@ -1678,7 +1678,7 @@ |
26 |
+ << "Union type annotation `" << type_hint->repr_str() |
27 |
+ << "` can hold " << vector_repr.str() << ", but none of " |
28 |
+ << "those list types can hold the types of the given dict" |
29 |
+- << " elements, which were unified to " << candidate->repr_str(); |
30 |
++ << " elements, which were unified"; |
31 |
+ } else { |
32 |
+ refined_type_hint = candidate; |
33 |
+ } |
34 |
+ |
35 |
|
36 |
diff --git a/sci-libs/pytorch/pytorch-1.10.0.ebuild b/sci-libs/pytorch/pytorch-1.10.0.ebuild |
37 |
new file mode 100644 |
38 |
index 000000000..d3d347325 |
39 |
--- /dev/null |
40 |
+++ b/sci-libs/pytorch/pytorch-1.10.0.ebuild |
41 |
@@ -0,0 +1,330 @@ |
42 |
+# Copyright 1999-2021 Gentoo Authors |
43 |
+# Distributed under the terms of the GNU General Public License v2 |
44 |
+ |
45 |
+EAPI=7 |
46 |
+ |
47 |
+PYTHON_COMPAT=( python3_{7..10} ) |
48 |
+ |
49 |
+inherit cmake cuda distutils-r1 prefix |
50 |
+ |
51 |
+DESCRIPTION="Tensors and Dynamic neural networks in Python with strong GPU acceleration" |
52 |
+HOMEPAGE="https://pytorch.org/" |
53 |
+SRC_URI="https://github.com/pytorch/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz |
54 |
+https://github.com/google/benchmark/archive/e991355c02b93fe17713efe04cbc2e278e00fdbd.tar.gz -> benchmark-e991355c02b93fe17713efe04cbc2e278e00fdbd.tar.gz |
55 |
+https://github.com/pytorch/cpuinfo/archive/63b25457.tar.gz -> cpuinfo-63b25457.tar.gz |
56 |
+https://github.com/NVlabs/cub/archive/d106ddb991a56c3df1b6d51b2409e36ba8181ce4.tar.gz -> cub-d106ddb991a56c3df1b6d51b2409e36ba8181ce4.tar.gz |
57 |
+https://github.com/pytorch/fbgemm/archive/7588d9d804826b428fc0e4fd418e9cc3f7a72e52.tar.gz -> fbgemm-7588d9d804826b428fc0e4fd418e9cc3f7a72e52.tar.gz |
58 |
+https://github.com/asmjit/asmjit/archive/d0d14ac774977d0060a351f66e35cb57ba0bf59c.tar.gz -> asmjit-d0d14ac774977d0060a351f66e35cb57ba0bf59c.tar.gz |
59 |
+https://github.com/pytorch/cpuinfo/archive/5916273f79a21551890fd3d56fc5375a78d1598d.tar.gz -> cpuinfo-5916273f79a21551890fd3d56fc5375a78d1598d.tar.gz |
60 |
+https://github.com/google/googletest/archive/0fc5466d.tar.gz -> googletest-0fc5466d.tar.gz |
61 |
+https://github.com/fmtlib/fmt/archive/cd4af11efc9c622896a3e4cb599fa28668ca3d05.tar.gz -> fmt-cd4af11efc9c622896a3e4cb599fa28668ca3d05.tar.gz |
62 |
+https://github.com/houseroad/foxi/archive/c278588e34e535f0bb8f00df3880d26928038cad.tar.gz -> foxi-c278588e34e535f0bb8f00df3880d26928038cad.tar.gz |
63 |
+https://github.com/Maratyszcza/FP16/archive/4dfe081cf6bcd15db339cf2680b9281b8451eeb3.tar.gz -> FP16-4dfe081cf6bcd15db339cf2680b9281b8451eeb3.tar.gz |
64 |
+https://github.com/Maratyszcza/FXdiv/archive/b408327ac2a15ec3e43352421954f5b1967701d1.tar.gz -> FXdiv-b408327ac2a15ec3e43352421954f5b1967701d1.tar.gz |
65 |
+https://github.com/google/gemmlowp/archive/3fb5c176.tar.gz -> gemmlowp-3fb5c176.tar.gz |
66 |
+https://github.com/facebookincubator/gloo/archive/c22a5cfba94edf8ea4f53a174d38aa0c629d070f.tar.gz -> gloo-c22a5cfba94edf8ea4f53a174d38aa0c629d070f.tar.gz |
67 |
+https://github.com/google/googletest/archive/e2239ee6043f73722e7aa812a459f54a28552929.tar.gz -> googletest-e2239ee6043f73722e7aa812a459f54a28552929.tar.gz |
68 |
+https://github.com/intel/ideep/archive/9ca27bbfd88fa1469cbf0467bd6f14cd1738fa40.tar.gz -> ideep-9ca27bbfd88fa1469cbf0467bd6f14cd1738fa40.tar.gz |
69 |
+https://github.com/intel/mkl-dnn/archive/5ef631a0.tar.gz -> mkl-dnn-5ef631a0.tar.gz |
70 |
+cuda? ( https://github.com/NVIDIA/nccl/archive/033d7995.tar.gz -> nccl-033d7995.tar.gz ) |
71 |
+https://github.com/Maratyszcza/NNPACK/archive/c07e3a0400713d546e0dea2d5466dd22ea389c73.tar.gz -> NNPACK-c07e3a0400713d546e0dea2d5466dd22ea389c73.tar.gz |
72 |
+https://github.com/onnx/onnx/archive/a82c6a70.tar.gz -> onnx-a82c6a70.tar.gz |
73 |
+https://github.com/onnx/onnx-tensorrt/archive/c153211418a7c57ce071d9ce2a41f8d1c85a878f.tar.gz -> onnx-tensorrt-c153211418a7c57ce071d9ce2a41f8d1c85a878f.tar.gz |
74 |
+https://github.com/onnx/onnx/archive/29e7aa7048809784465d06e897f043a4600642b2.tar.gz -> onnx-29e7aa7048809784465d06e897f043a4600642b2.tar.gz |
75 |
+https://github.com/google/benchmark/archive/e776aa02.tar.gz -> benchmark-e776aa02.tar.gz |
76 |
+https://github.com/google/benchmark/archive/5b7683f4.tar.gz -> benchmark-5b7683f4.tar.gz |
77 |
+https://github.com/google/googletest/archive/5ec7f0c4.tar.gz -> googletest-5ec7f0c4.tar.gz |
78 |
+https://github.com/Maratyszcza/psimd/archive/072586a71b55b7f8c584153d223e95687148a90.tar.gz -> psimd-072586a71b55b7f8c584153d223e95687148a90.tar.gz |
79 |
+https://github.com/Maratyszcza/pthreadpool/archive/a134dd5d4cee80cce15db81a72e7f929d71dd413.tar.gz -> pthreadpool-a134dd5d4cee80cce15db81a72e7f929d71dd413.tar.gz |
80 |
+https://github.com/Maratyszcza/PeachPy/archive/07d8fde8ac45d7705129475c0f94ed8925b93473.tar.gz -> PeachPy-07d8fde8ac45d7705129475c0f94ed8925b93473.tar.gz |
81 |
+https://github.com/pytorch/QNNPACK/archive/7d2a4e9931a82adc3814275b6219a03e24e36b4c.tar.gz -> QNNPACK-7d2a4e9931a82adc3814275b6219a03e24e36b4c.tar.gz |
82 |
+https://github.com/shibatch/sleef/archive/e0a003ee838b75d11763aa9c3ef17bf71a725bff.tar.gz -> sleef-e0a003ee838b75d11763aa9c3ef17bf71a725bff.tar.gz |
83 |
+https://github.com/pytorch/tensorpipe/archive/d2aa3485e8229c98891dfd604b514a39d45a5c99.tar.gz -> tensorpipe-d2aa3485e8229c98891dfd604b514a39d45a5c99.tar.gz |
84 |
+https://github.com/google/googletest/archive/2fe3bd99.tar.gz -> googletest-2fe3bd99.tar.gz |
85 |
+https://github.com/google/libnop/archive/aa95422e.tar.gz -> libnop-aa95422e.tar.gz |
86 |
+https://github.com/libuv/libuv/archive/48e04275332f5753427d21a52f17ec6206451f2c.tar.gz -> libuv-48e04275332f5753427d21a52f17ec6206451f2c.tar.gz |
87 |
+https://github.com/google/XNNPACK/archive/79cd5f9e18ad0925ac9a050b00ea5a36230072db.tar.gz -> XNNPACK-79cd5f9e18ad0925ac9a050b00ea5a36230072db.tar.gz |
88 |
+https://github.com/pytorch/kineto/archive/879a203d9bf554e95541679ddad6e0326f272dc1.tar.gz -> kineto-879a203d9bf554e95541679ddad6e0326f272dc1.tar.gz |
89 |
+https://github.com/driazati/breakpad/archive/7d188f679d4ae0a5bd06408a3047d69ef8eef848.tar.gz -> breakpad-7d188f679d4ae0a5bd06408a3047d69ef8eef848.tar.gz |
90 |
+https://github.com/mikey/linux-syscall-support/archive/e1e7b0ad8ee99a875b272c8e33e308472e897660.tar.gz -> lss-e1e7b0ad8ee99a875b272c8e33e308472e897660.tar.gz |
91 |
+https://github.com/pybind/pybind11/archive/8de7772cc72daca8e947b79b83fea46214931604.tar.gz -> pybind11-8de7772cc72daca8e947b79b83fea46214931604.tar.gz |
92 |
+" |
93 |
+ |
94 |
+# git clone git@××××××.com:pytorch/pytorch.git && cd pytorch |
95 |
+# git submodules update --init --recursive |
96 |
+# ${FILESDIR}/get_third_paries |
97 |
+# cat SRC_URI src_prepare |
98 |
+ |
99 |
+LICENSE="BSD" |
100 |
+SLOT="0" |
101 |
+KEYWORDS="~x86 ~amd64" |
102 |
+ |
103 |
+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" |
104 |
+RESTRICT="!test? ( test )" |
105 |
+REQUIRED_USE=" |
106 |
+ ?? ( cuda rocm ) |
107 |
+" |
108 |
+ |
109 |
+RDEPEND=" |
110 |
+ dev-python/pyyaml[${PYTHON_USEDEP}] |
111 |
+ blas? ( virtual/blas ) |
112 |
+ cuda? ( dev-libs/cudnn |
113 |
+ dev-cpp/eigen[cuda] ) |
114 |
+ rocm? ( >=dev-util/hip-4.0.0-r1 |
115 |
+ >=dev-libs/rccl-4 |
116 |
+ >=sci-libs/rocThrust-4 |
117 |
+ >=sci-libs/hipCUB-4 |
118 |
+ >=sci-libs/rocPRIM-4 |
119 |
+ >=sci-libs/miopen-4 |
120 |
+ >=sci-libs/rocBLAS-4 |
121 |
+ >=sci-libs/rocRAND-4 |
122 |
+ >=sci-libs/hipSPARSE-4 |
123 |
+ >=sci-libs/rocFFT-4 |
124 |
+ >=dev-util/roctracer-4 ) |
125 |
+ ffmpeg? ( media-video/ffmpeg ) |
126 |
+ gflags? ( dev-cpp/gflags ) |
127 |
+ glog? ( dev-cpp/glog[gflags] ) |
128 |
+ leveldb? ( dev-libs/leveldb ) |
129 |
+ lmdb? ( dev-db/lmdb ) |
130 |
+ mpi? ( virtual/mpi ) |
131 |
+ opencl? ( dev-libs/clhpp virtual/opencl ) |
132 |
+ opencv? ( media-libs/opencv ) |
133 |
+ python? ( ${PYTHON_DEPS} |
134 |
+ dev-python/pybind11[${PYTHON_USEDEP}] |
135 |
+ dev-python/numpy[${PYTHON_USEDEP}] |
136 |
+ dev-python/protobuf-python:0/30 |
137 |
+ ) |
138 |
+ redis? ( dev-db/redis ) |
139 |
+ zeromq? ( net-libs/zeromq ) |
140 |
+ dev-cpp/eigen |
141 |
+ dev-libs/protobuf:0/30 |
142 |
+ dev-libs/libuv |
143 |
+" |
144 |
+ |
145 |
+#ATen code generation |
146 |
+BDEPEND="dev-python/pyyaml" |
147 |
+ |
148 |
+DEPEND="${RDEPEND} |
149 |
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] ) |
150 |
+ dev-cpp/tbb |
151 |
+ app-arch/zstd |
152 |
+ !dev-python/pybind11 |
153 |
+ dev-python/typing-extensions[${PYTHON_USEDEP}] |
154 |
+ sys-fabric/libibverbs |
155 |
+ sys-process/numactl |
156 |
+" |
157 |
+ |
158 |
+PATCHES=( |
159 |
+ "${FILESDIR}"/${PN}-1.6.0-skip-tests.patch |
160 |
+ "${FILESDIR}"/${PN}-1.6.0-global-dlopen.patch |
161 |
+ "${FILESDIR}"/0002-Don-t-build-libtorch-again-for-PyTorch-1.7.1.patch |
162 |
+ "${FILESDIR}"/${PN}-1.7.1-no-rpath.patch |
163 |
+ "${FILESDIR}"/${PN}-1.7.1-torch_shm_manager.patch |
164 |
+ "${FILESDIR}"/${PN}-1.10.0-nonull.patch |
165 |
+) |
166 |
+ |
167 |
+src_prepare() { |
168 |
+ cmake_src_prepare |
169 |
+ eprefixify torch/__init__.py |
170 |
+ |
171 |
+ rmdir third_party/benchmark || die |
172 |
+ ln -sv "${WORKDIR}"/benchmark-e991355c02b93fe17713efe04cbc2e278e00fdbd third_party/benchmark || die |
173 |
+ rmdir third_party/cpuinfo || die |
174 |
+ ln -sv "${WORKDIR}"/cpuinfo-5916273f79a21551890fd3d56fc5375a78d1598d third_party/cpuinfo || die |
175 |
+ rmdir third_party/cub || die |
176 |
+ ln -sv "${WORKDIR}"/cub-d106ddb991a56c3df1b6d51b2409e36ba8181ce4 third_party/cub || die |
177 |
+ rmdir third_party/fbgemm || die |
178 |
+ ln -sv "${WORKDIR}"/FBGEMM-7588d9d804826b428fc0e4fd418e9cc3f7a72e52 third_party/fbgemm || die |
179 |
+ rmdir third_party/fbgemm/third_party/asmjit || die |
180 |
+ ln -sv "${WORKDIR}"/asmjit-d0d14ac774977d0060a351f66e35cb57ba0bf59c third_party/fbgemm/third_party/asmjit || die |
181 |
+ rmdir third_party/fbgemm/third_party/cpuinfo || die |
182 |
+ ln -sv "${WORKDIR}"/cpuinfo-d5e37adf1406cf899d7d9ec1d317c47506ccb970 third_party/fbgemm/third_party/cpuinfo || die |
183 |
+ rmdir third_party/fbgemm/third_party/googletest || die |
184 |
+ ln -sv "${WORKDIR}"/googletest-0fc5466dbb9e623029b1ada539717d10bd45e99e third_party/fbgemm/third_party/googletest || die |
185 |
+ rmdir third_party/fmt || die |
186 |
+ ln -sv "${WORKDIR}"/fmt-cd4af11efc9c622896a3e4cb599fa28668ca3d05 third_party/fmt || die |
187 |
+ rmdir third_party/foxi || die |
188 |
+ ln -sv "${WORKDIR}"/foxi-c278588e34e535f0bb8f00df3880d26928038cad third_party/foxi || die |
189 |
+ rmdir third_party/FP16 || die |
190 |
+ ln -sv "${WORKDIR}"/FP16-4dfe081cf6bcd15db339cf2680b9281b8451eeb3 third_party/FP16 || die |
191 |
+ rmdir third_party/FXdiv |
192 |
+ ln -sv "${WORKDIR}"/FXdiv-b408327ac2a15ec3e43352421954f5b1967701d1 third_party/FXdiv || die |
193 |
+ rmdir third_party/gemmlowp/gemmlowp || die |
194 |
+ ln -sv "${WORKDIR}"/gemmlowp-3fb5c176c17c765a3492cd2f0321b0dab712f350 third_party/gemmlowp/gemmlowp || die |
195 |
+ rmdir third_party/gloo || die |
196 |
+ ln -sv "${WORKDIR}"/gloo-c22a5cfba94edf8ea4f53a174d38aa0c629d070f third_party/gloo || die |
197 |
+ rmdir third_party/googletest || die |
198 |
+ ln -sv "${WORKDIR}"/googletest-e2239ee6043f73722e7aa812a459f54a28552929 third_party/googletest || die |
199 |
+ rmdir third_party/ideep || die |
200 |
+ ln -sv "${WORKDIR}"/ideep-9ca27bbfd88fa1469cbf0467bd6f14cd1738fa40 third_party/ideep || die |
201 |
+ rmdir third_party/ideep/mkl-dnn || die |
202 |
+ ln -sv "${WORKDIR}"/mkl-dnn-5ef631a030a6f73131c77892041042805a06064f third_party/ideep/mkl-dnn || die |
203 |
+ rmdir third_party/nccl/nccl || die |
204 |
+ ln -sv "${WORKDIR}"/nccl-033d799524fb97629af5ac2f609de367472b2696 third_party/nccl/nccl || die |
205 |
+ rmdir third_party/NNPACK || die |
206 |
+ ln -sv "${WORKDIR}"/NNPACK-c07e3a0400713d546e0dea2d5466dd22ea389c73 third_party/NNPACK || die |
207 |
+ rmdir third_party/onnx || die |
208 |
+ ln -sv "${WORKDIR}"/onnx-29e7aa7048809784465d06e897f043a4600642b2 third_party/onnx || die |
209 |
+ rmdir third_party/onnx-tensorrt || die |
210 |
+ ln -sv "${WORKDIR}"/onnx-tensorrt-c153211418a7c57ce071d9ce2a41f8d1c85a878f third_party/onnx-tensorrt || die |
211 |
+ rmdir third_party/onnx-tensorrt/third_party/onnx || die |
212 |
+ ln -sv "${WORKDIR}"/onnx-765f5ee823a67a866f4bd28a9860e81f3c811ce8 third_party/onnx-tensorrt/third_party/onnx || die |
213 |
+ rmdir third_party/onnx/third_party/benchmark || die |
214 |
+ ln -sv "${WORKDIR}"/benchmark-e776aa0275e293707b6a0901e0e8d8a8a3679508 third_party/onnx/third_party/benchmark || die |
215 |
+ rmdir third_party/psimd || die |
216 |
+ ln -sv "${WORKDIR}"/psimd-072586a71b55b7f8c584153d223e95687148a900 third_party/psimd || die |
217 |
+ rmdir third_party/pthreadpool || die |
218 |
+ ln -sv "${WORKDIR}"/pthreadpool-a134dd5d4cee80cce15db81a72e7f929d71dd413 third_party/pthreadpool || die |
219 |
+ rmdir third_party/python-peachpy || die |
220 |
+ ln -sv "${WORKDIR}"/PeachPy-07d8fde8ac45d7705129475c0f94ed8925b93473 third_party/python-peachpy || die |
221 |
+ rmdir third_party/QNNPACK || die |
222 |
+ ln -sv "${WORKDIR}"/QNNPACK-7d2a4e9931a82adc3814275b6219a03e24e36b4c third_party/QNNPACK || die |
223 |
+ rmdir third_party/sleef || die |
224 |
+ ln -sv "${WORKDIR}"/sleef-e0a003ee838b75d11763aa9c3ef17bf71a725bff third_party/sleef || die |
225 |
+ rmdir third_party/tensorpipe || die |
226 |
+ ln -sv "${WORKDIR}"/tensorpipe-d2aa3485e8229c98891dfd604b514a39d45a5c99 third_party/tensorpipe || die |
227 |
+ rmdir third_party/tensorpipe/third_party/googletest || die |
228 |
+ ln -sv "${WORKDIR}"/googletest-2fe3bd994b3189899d93f1d5a881e725e046fdc2 third_party/tensorpipe/third_party/googletest || die |
229 |
+ rmdir third_party/tensorpipe/third_party/libnop || die |
230 |
+ ln -sv "${WORKDIR}"/libnop-aa95422ea8c409e3f078d2ee7708a5f59a8b9fa2 third_party/tensorpipe/third_party/libnop || die |
231 |
+ rmdir third_party/tensorpipe/third_party/libuv || die |
232 |
+ ln -sv "${WORKDIR}"/libuv-48e04275332f5753427d21a52f17ec6206451f2c third_party/tensorpipe/third_party/libuv || die |
233 |
+ rmdir third_party/XNNPACK || die |
234 |
+ ln -sv "${WORKDIR}"/XNNPACK-79cd5f9e18ad0925ac9a050b00ea5a36230072db third_party/XNNPACK || die |
235 |
+ rmdir third_party/kineto || die |
236 |
+ ln -sv "${WORKDIR}"/kineto-879a203d9bf554e95541679ddad6e0326f272dc1 third_party/kineto || die |
237 |
+ rmdir third_party/breakpad || die |
238 |
+ ln -sv "${WORKDIR}"/breakpad-7d188f679d4ae0a5bd06408a3047d69ef8eef848 third_party/breakpad || die |
239 |
+ rmdir third_party/breakpad/src/third_party/lss || die |
240 |
+ ln -sv "${WORKDIR}"/linux-syscall-support-e1e7b0ad8ee99a875b272c8e33e308472e897660 third_party/breakpad/src/third_party/lss || die |
241 |
+ rmdir third_party/pybind11 || die |
242 |
+ ln -sv "${WORKDIR}"/pybind11-8de7772cc72daca8e947b79b83fea46214931604 third_party/pybind11 || die |
243 |
+ |
244 |
+ if use cuda; then |
245 |
+ cd third_party/nccl/nccl || die |
246 |
+ eapply "${FILESDIR}"/${PN}-1.6.0-nccl-nvccflags.patch |
247 |
+ cuda_src_prepare |
248 |
+ export CUDAHOSTCXX=$(cuda_gccdir)/g++ |
249 |
+ fi |
250 |
+ |
251 |
+ if use rocm; then |
252 |
+ #Allow escaping sandbox |
253 |
+ addread /dev/kfd |
254 |
+ addread /dev/dri |
255 |
+ addwrite /dev/kfd |
256 |
+ addwrite /dev/dri |
257 |
+ |
258 |
+ ebegin "HIPifying cuda sources" |
259 |
+ tools/amd_build/build_amd.py |
260 |
+ eend $? |
261 |
+ |
262 |
+ export PYTORCH_ROCM_ARCH=$(rocminfo | egrep -o "gfx[0-9]+" | uniq | awk -vORS=';' "{print $1}" | sed 's/;$/\n/') || die |
263 |
+ sed -e "/set(roctracer_INCLUDE_DIRS/s,\${ROCTRACER_PATH}/include,${EPREFIX}/usr/include/roctracer," \ |
264 |
+ -i cmake/public/LoadHIP.cmake || die |
265 |
+ fi |
266 |
+} |
267 |
+ |
268 |
+src_configure() { |
269 |
+ local mycmakeargs=( |
270 |
+ -DWERROR=OFF |
271 |
+ -DTORCH_BUILD_VERSION=${PV} |
272 |
+ -DTORCH_INSTALL_LIB_DIR=$(get_libdir) |
273 |
+ -DBUILD_BINARY=$(usex tools ON OFF) |
274 |
+ -DBUILD_CUSTOM_PROTOBUF=OFF |
275 |
+ -DBUILD_PYTHON=$(usex python ON OFF) |
276 |
+ -DBUILD_SHARED_LIBS=$(usex static OFF ON) |
277 |
+ -DBUILD_TEST=$(usex test ON OFF) |
278 |
+ -DUSE_ASAN=$(usex asan ON OFF) |
279 |
+ -DUSE_CUDA=$(usex cuda ON OFF) |
280 |
+ -DUSE_NCCL=$(usex cuda ON OFF) |
281 |
+ -DUSE_SYSTEM_NCCL=OFF |
282 |
+ -DUSE_ROCM=$(usex rocm ON OFF) |
283 |
+ -DUSE_FBGEMM=$(usex fbgemm ON OFF) |
284 |
+ -DUSE_FFMPEG=$(usex ffmpeg ON OFF) |
285 |
+ -DUSE_GFLAGS=$(usex gflags ON OFF) |
286 |
+ -DUSE_GLOG=$(usex glog ON OFF) |
287 |
+ -DUSE_LEVELDB=$(usex leveldb ON OFF) |
288 |
+ -DUSE_LITE_PROTO=OFF |
289 |
+ -DUSE_LMDB=$(usex lmdb ON OFF) |
290 |
+ -DUSE_MKLDNN=$(usex mkldnn ON OFF) |
291 |
+ -DUSE_MKLDNN_CBLAS=OFF |
292 |
+ -DUSE_NNPACK=$(usex nnpack ON OFF) |
293 |
+ -DUSE_NUMPY=$(usex python ON OFF) |
294 |
+ -DUSE_NUMA=$(usex numa ON OFF) |
295 |
+ -DUSE_OBSERVERS=$(usex observers ON OFF) |
296 |
+ -DUSE_OPENCL=$(usex opencl ON OFF) |
297 |
+ -DUSE_OPENCV=$(usex opencv ON OFF) |
298 |
+ -DUSE_OPENMP=$(usex openmp ON OFF) |
299 |
+ -DUSE_TBB=OFF |
300 |
+ -DUSE_PROF=OFF |
301 |
+ -DUSE_QNNPACK=$(usex qnnpack ON OFF) |
302 |
+ -DUSE_REDIS=$(usex redis ON OFF) |
303 |
+ -DUSE_ROCKSDB=OFF |
304 |
+ -DUSE_ZMQ=$(usex zeromq ON OFF) |
305 |
+ -DUSE_MPI=$(usex mpi ON OFF) |
306 |
+ -DUSE_GLOO=$(usex gloo ON OFF) |
307 |
+ -DUSE_SYSTEM_EIGEN_INSTALL=ON |
308 |
+ -DBUILD_NAMEDTENSOR=$(usex namedtensor ON OFF) |
309 |
+ -DBLAS=$(usex blas Generic Eigen) |
310 |
+ -DTP_BUILD_LIBUV=OFF |
311 |
+ -Wno-dev |
312 |
+ ) |
313 |
+ |
314 |
+ cmake_src_configure |
315 |
+ |
316 |
+ if use python; then |
317 |
+ CMAKE_BUILD_DIR="${BUILD_DIR}" distutils-r1_src_configure |
318 |
+ fi |
319 |
+ |
320 |
+ # do not rerun cmake and the build process in src_install |
321 |
+ sed '/RERUN/,+1d' -i "${BUILD_DIR}"/build.ninja || die |
322 |
+} |
323 |
+ |
324 |
+src_compile() { |
325 |
+ cmake_src_compile |
326 |
+ |
327 |
+ if use python; then |
328 |
+ USE_SYSTEM_LIBS=ON CMAKE_BUILD_DIR=${BUILD_DIR} distutils-r1_src_compile |
329 |
+ fi |
330 |
+} |
331 |
+ |
332 |
+src_install() { |
333 |
+ cmake_src_install |
334 |
+ |
335 |
+ local LIB=$(get_libdir) |
336 |
+ if [[ ${LIB} != lib ]]; then |
337 |
+ mv -fv "${ED}"/usr/lib/*.so "${ED}"/usr/${LIB}/ || die |
338 |
+ fi |
339 |
+ |
340 |
+ rm -rfv "${ED}/torch" |
341 |
+ rm -rfv "${ED}/var" |
342 |
+ rm -rfv "${ED}/usr/lib" |
343 |
+ |
344 |
+ rm -fv "${ED}/usr/include/*.{h,hpp}" |
345 |
+ rm -rfv "${ED}/usr/include/asmjit" |
346 |
+ rm -rfv "${ED}/usr/include/c10d" |
347 |
+ rm -rfv "${ED}/usr/include/fbgemm" |
348 |
+ rm -rfv "${ED}/usr/include/fp16" |
349 |
+ rm -rfv "${ED}/usr/include/gloo" |
350 |
+ rm -rfv "${ED}/usr/include/include" |
351 |
+ rm -rfv "${ED}/usr/include/var" |
352 |
+ |
353 |
+ cp -rv "${WORKDIR}/${P}/third_party/pybind11/include/pybind11" "${ED}/usr/include/" |
354 |
+ |
355 |
+ rm -fv "${ED}/usr/${LIB}/libtbb.so" |
356 |
+ rm -rfv "${ED}/usr/${LIB}/cmake" |
357 |
+ |
358 |
+ if use python; then |
359 |
+ scanelf -r --fix "${BUILD_DIR}/caffe2/python" |
360 |
+ USE_SYSTEM_LIBS=ON CMAKE_BUILD_DIR=${BUILD_DIR} distutils-r1_src_install |
361 |
+ |
362 |
+ python_foreach_impl python_optimize |
363 |
+ fi |
364 |
+ |
365 |
+ find "${ED}/usr/${LIB}" -name "*.a" -exec rm -fv {} \; |
366 |
+ |
367 |
+ use test && rm -rfv "${ED}/usr/test" "${ED}"/usr/bin/test_{api,jit} |
368 |
+ |
369 |
+ # Remove the empty directories by CMake Python: |
370 |
+ find "${ED}" -type d -empty -delete || die |
371 |
+} |