Gentoo Archives: gentoo-commits

From: Benda XU <heroxbd@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sci-libs/rocBLAS/
Date: Thu, 22 Sep 2022 01:08:56
Message-Id: 1663808796.2046001a098a8879a61e70f289c992ec12f70777.heroxbd@gentoo
1 commit: 2046001a098a8879a61e70f289c992ec12f70777
2 Author: Yiyang Wu <xgreenlandforwyy <AT> gmail <DOT> com>
3 AuthorDate: Sun Jun 26 07:10:39 2022 +0000
4 Commit: Benda XU <heroxbd <AT> gentoo <DOT> org>
5 CommitDate: Thu Sep 22 01:06:36 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2046001a
7
8 sci-libs/rocBLAS: add 5.1.3, using rocm.eclass
9
10 No need to rebuilt rocBLAS when hip upgrade because librocblas is
11 dynamically linked to libhipamd, while llvm SLOT does not matter because
12 it is only used to produce GPU kernels, libclang and libLLVM does not
13 linked in.
14
15 Signed-off-by: Yiyang Wu <xgreenlandforwyy <AT> gmail.com>
16 Signed-off-by: Benda Xu <heroxbd <AT> gentoo.org>
17
18 sci-libs/rocBLAS/Manifest | 1 +
19 sci-libs/rocBLAS/rocBLAS-5.1.3.ebuild | 114 ++++++++++++++++++++++++++++++++++
20 2 files changed, 115 insertions(+)
21
22 diff --git a/sci-libs/rocBLAS/Manifest b/sci-libs/rocBLAS/Manifest
23 index e8bb583d38a1..ca44e7ca5686 100644
24 --- a/sci-libs/rocBLAS/Manifest
25 +++ b/sci-libs/rocBLAS/Manifest
26 @@ -2,3 +2,4 @@ DIST rocBLAS-5.0.2-Tensile-asm_full-navi22.tar.gz 1110323 BLAKE2B 80fab97c6f89fc
27 DIST rocm-Tensile-4.3.0.tar.gz 14250149 BLAKE2B 030138eaca2a0aadd96801e6dbd72e510716dd90553ef3795c5e04e00a34a05ecae82b24f755e4033a4acfcdb1cf26291da1e7902bb090f89a010d403e832beb SHA512 126db0b413c716fba8d5be9bff7a44fd1badacbf32f3db8d0db649819177db37ebd56fd22dd3c809655f5d29675be115e698cd10bc3d0b4b23878ae3726fce47
28 DIST rocm-rocBLAS-4.3.0.tar.gz 11569970 BLAKE2B f11b0acf2bbd5737b036142d3b2cc1e18c38e088a8b7db58156d478dd6718befbb82bb7fd43a38fe64a5427124c5ad5241fa37977f094e6efd195d168d3e5f65 SHA512 490ab1c1e98a8b311ad5630515c448d9bb0a2bf588a08bcbebee345e2954d616b4ffe7c2e03dadca82c590438c42afccb98fe8ba00856aece101b5ffe62ef1e0
29 DIST rocm-rocBLAS-5.0.2.tar.gz 13295178 BLAKE2B e1abfa06b9ac1545732465857839dae3f3708af49439a306a2b5b1b1b392101c38c95815f2c05a0d9ed29d41b154bc2e16a4f9203a37f5e2f68ee12cc4b44a06 SHA512 2f4a74f49350ede0debcf32229a6b6b95505615723c3f2bee16e4c169a3bb966dfb1971819028f47c525f571bea5662b892e63f655b0d1d2b8f20746bc5fe770
30 +DIST rocm-rocBLAS-5.1.3.tar.gz 13741546 BLAKE2B af10d8cb69bee44ef5aab2dc350e1d9f3b6fddb3a840c17230c4b55b2649a4724c9f2e58c1eafdb3e2716eea016a72a35c3ddb498881b1ce682d780baa8d8b07 SHA512 5ab71838fdd0e9c5848cbf28a19d113353b619a878d8c7d05f64feb32faae2054169c95ed6e9dd6b05a2e807b57229dd2c361c4d289b6e6f17c196558640890f
31
32 diff --git a/sci-libs/rocBLAS/rocBLAS-5.1.3.ebuild b/sci-libs/rocBLAS/rocBLAS-5.1.3.ebuild
33 new file mode 100644
34 index 000000000000..d9316725fe8c
35 --- /dev/null
36 +++ b/sci-libs/rocBLAS/rocBLAS-5.1.3.ebuild
37 @@ -0,0 +1,114 @@
38 +# Copyright 1999-2022 Gentoo Authors
39 +# Distributed under the terms of the GNU General Public License v2
40 +
41 +EAPI=8
42 +
43 +DOCS_BUILDER="doxygen"
44 +DOCS_DIR="docs"
45 +DOCS_DEPEND="media-gfx/graphviz"
46 +ROCM_VERSION=${PV}
47 +inherit cmake docs edo multiprocessing prefix rocm
48 +
49 +DESCRIPTION="AMD's library for BLAS on ROCm"
50 +HOMEPAGE="https://github.com/ROCmSoftwarePlatform/rocBLAS"
51 +SRC_URI="https://github.com/ROCmSoftwarePlatform/rocBLAS/archive/rocm-${PV}.tar.gz -> rocm-${P}.tar.gz
52 + https://media.githubusercontent.com/media/littlewu2508/littlewu2508.github.io/main/gentoo-distfiles/${PN}-5.0.2-Tensile-asm_full-navi22.tar.gz"
53 +S="${WORKDIR}/${PN}-rocm-${PV}"
54 +
55 +LICENSE="BSD"
56 +KEYWORDS="~amd64"
57 +SLOT="0/$(ver_cut 1-2)"
58 +IUSE="benchmark test"
59 +REQUIRED_USE="${ROCM_REQUIRED_USE}"
60 +RESTRICT="!test? ( test )"
61 +
62 +BDEPEND="
63 + dev-util/rocm-cmake:${SLOT}
64 + dev-util/Tensile:${SLOT}
65 +"
66 +
67 +DEPEND="
68 + dev-util/hip
69 + dev-libs/msgpack
70 + test? (
71 + virtual/blas
72 + dev-cpp/gtest
73 + sys-libs/libomp
74 + )
75 + benchmark? (
76 + virtual/blas
77 + sys-libs/libomp
78 + )
79 +"
80 +
81 +PATCHES=(
82 + "${FILESDIR}"/${PN}-4.3.0-fix-glibc-2.32-and-above.patch
83 + "${FILESDIR}"/${PN}-5.0.2-change-default-Tensile-library-dir.patch
84 + "${FILESDIR}"/${PN}-5.0.2-cpp_lib_filesystem.patch
85 + "${FILESDIR}"/${PN}-5.0.2-unbundle-Tensile.patch
86 + )
87 +
88 +src_prepare() {
89 + cmake_src_prepare
90 + cp -a "${WORKDIR}/asm_full/" library/src/blas3/Tensile/Logic/ || die
91 + # Fit for Gentoo FHS rule
92 + sed -e "/PREFIX rocblas/d" \
93 + -e "/<INSTALL_INTERFACE/s:include:include/rocblas:" \
94 + -e "s:rocblas/include:include/rocblas:" \
95 + -e "s:\\\\\${CPACK_PACKAGING_INSTALL_PREFIX}rocblas/lib:${EPREFIX}/usr/$(get_libdir)/rocblas:" \
96 + -e "s:share/doc/rocBLAS:share/doc/${P}:" \
97 + -e "/rocm_install_symlink_subdir( rocblas )/d" -i library/src/CMakeLists.txt || die
98 +
99 + sed -e "s:,-rpath=.*\":\":" -i clients/CMakeLists.txt || die
100 +
101 + eprefixify library/src/tensile_host.cpp
102 +}
103 +
104 +src_configure() {
105 + addpredict /dev/random
106 + addpredict /dev/kfd
107 + addpredict /dev/dri/
108 +
109 + local mycmakeargs=(
110 + -DCMAKE_SKIP_RPATH=On
111 + -DAMDGPU_TARGETS="$(get_amdgpu_flags)"
112 + -DTensile_LOGIC="asm_full"
113 + -DTensile_COMPILER="hipcc"
114 + -DTensile_LIBRARY_FORMAT="msgpack"
115 + -DTensile_CODE_OBJECT_VERSION="V3"
116 + -DTensile_TEST_LOCAL_PATH="${EPREFIX}/usr/share/Tensile"
117 + -DTensile_ROOT="${EPREFIX}/usr/share/Tensile"
118 + -DBUILD_WITH_TENSILE=ON
119 + -DCMAKE_INSTALL_INCLUDEDIR="include/rocblas"
120 + -DBUILD_TESTING=OFF
121 + -DBUILD_CLIENTS_SAMPLES=OFF
122 + -DBUILD_CLIENTS_TESTS=$(usex test ON OFF)
123 + -DBUILD_CLIENTS_BENCHMARKS=$(usex benchmark ON OFF)
124 + -DTensile_CPU_THREADS=$(makeopts_jobs)
125 + )
126 +
127 + CXX=hipcc cmake_src_configure
128 +}
129 +
130 +src_compile() {
131 + docs_compile
132 + cmake_src_compile
133 +}
134 +
135 +src_test() {
136 + check_amdgpu
137 + cd "${BUILD_DIR}"/clients/staging || die
138 + export ROCBLAS_TEST_TIMEOUT=3600 ROCBLAS_TENSILE_LIBPATH="${BUILD_DIR}/Tensile/library"
139 + export LD_LIBRARY_PATH="${BUILD_DIR}/clients:${BUILD_DIR}/library/src"
140 + edob ./${PN,,}-test
141 +}
142 +
143 +src_install() {
144 + cmake_src_install
145 +
146 + if use benchmark; then
147 + cd "${BUILD_DIR}" || die
148 + dolib.so clients/librocblas_fortran_client.so
149 + dobin clients/staging/rocblas-bench
150 + fi
151 +}