commit:     da37b2000e6a4348c0f66685868bfa47dd49699b
Author:     Sv. Lockal <lockalsash <AT> gmail <DOT> com>
AuthorDate: Sun Dec  8 15:21:33 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Jan  5 21:46:34 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=da37b200

sci-libs/rocBLAS: add 6.3.0

Also backport fix for 16-bit floats for 6.1.1

Closes: https://bugs.gentoo.org/944820
Signed-off-by: Sv. Lockal <lockalsash <AT> gmail.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 sci-libs/rocBLAS/Manifest                          |  1 +
 .../rocBLAS/files/rocBLAS-6.3.0-find-cblas.patch   | 19 ++++++++++++
 sci-libs/rocBLAS/files/rocBLAS-6.3.0-no-git.patch  | 22 ++++++++++++++
 sci-libs/rocBLAS/metadata.xml                      |  3 +-
 sci-libs/rocBLAS/rocBLAS-6.1.1-r1.ebuild           |  6 +++-
 ...ocBLAS-6.1.1-r1.ebuild => rocBLAS-6.3.0.ebuild} | 34 ++++++++++++++--------
 6 files changed, 71 insertions(+), 14 deletions(-)

diff --git a/sci-libs/rocBLAS/Manifest b/sci-libs/rocBLAS/Manifest
index ca306e9c9efb..466aa900e4c0 100644
--- a/sci-libs/rocBLAS/Manifest
+++ b/sci-libs/rocBLAS/Manifest
@@ -4,3 +4,4 @@ DIST rocm-rocBLAS-5.1.3.tar.gz 13741546 BLAKE2B 
af10d8cb69bee44ef5aab2dc350e1d9f
 DIST rocm-rocBLAS-5.4.2.tar.gz 15938434 BLAKE2B 
14ebafa944fdac443800bb7f9b16f8ecf0f420b168d3c6534f68ad7d14bf058a4cc1673fce8f4b9be53e4a6c1cf05011e01853cd901bce0b59827d2aca4d029f
 SHA512 
e62bb80457c1e89454885499bdce9d60beecd706806724418983c78c65c2ae303550f9670b5a6e71dae6a61c0e42b223ab01b36b8406430731ebcbff54c4a8f4
 DIST rocm-rocBLAS-5.7.1.tar.gz 55389700 BLAKE2B 
9e58b1d29c8a04aa58ce17fdd9b0c2504934261851619dc5b696a04e8c6a79e7c44d86a6db7a9c76a434d76593de8c191cba6f163cf398d01cfc001e5fa32b5a
 SHA512 
cfc73f6c490595a3c153c2ac2a3cb5926c48c2c19baa07ff3dcdf3a7ccaed82cfdff64ed5a3be64c349cb43d654d4b104d9090e2ec9f2061049d6a4921c07722
 DIST rocm-rocBLAS-6.1.1.tar.gz 100103895 BLAKE2B 
df89a21e47730714b80c62717a86d65ac0d819c2d33b2a3c6252b60b8d7cc9eb5f8f1db27159b0a8dfc87aba7ccad97e2f832bc0044e92d0b69c526d382c745a
 SHA512 
74e847c4ddee16cae7f41e268a815ea03875519c365abe7dfce313a9545df245baa73301b432f64a36cc988281fec7530629a0d72583e9ea287c98ec8a0b3907
+DIST rocm-rocBLAS-6.3.0.tar.gz 57907324 BLAKE2B 
a3cce68e0cc06e8df56e1622889254c75744b0f85c9fe66cb94bbc158f7ce45e40a5798d30e6a10430092490c1e347f19f38b36db767ccb784c5757581b0bccb
 SHA512 
45a524d680f1f0760fd37d49b9bd7c6257731ad5d840d832a8e40c121f7f1045a8d5b57ca8ef0943fdf333c55bccb341b529d2ca24664694203b906e510ecab5

diff --git a/sci-libs/rocBLAS/files/rocBLAS-6.3.0-find-cblas.patch 
b/sci-libs/rocBLAS/files/rocBLAS-6.3.0-find-cblas.patch
new file mode 100644
index 000000000000..4afb07789581
--- /dev/null
+++ b/sci-libs/rocBLAS/files/rocBLAS-6.3.0-find-cblas.patch
@@ -0,0 +1,19 @@
+diff --git a/clients/CMakeLists.txt b/clients/CMakeLists.txt
+index 4485fee..51eedc9 100644
+--- a/clients/CMakeLists.txt
++++ b/clients/CMakeLists.txt
+@@ -140,10 +140,12 @@ if( BUILD_CLIENTS_BENCHMARKS OR BUILD_CLIENTS_TESTS)
+         set( BLAS_LIBRARY /usr/local/lib/libblis.a )
+         set( BLIS_INCLUDE_DIR /usr/local/include/blis )
+       else()
+-        message( WARNING "Could not find libblis" )
++        message( FATAL_ERROR "Could not find libblis" )
+       endif()
+     else()
+-      set( BLAS_LIBRARY "blas -lcblas" )
++      find_package( CBLAS CONFIG REQUIRED )
++      set( BLAS_LIBRARY ${CBLAS_LIBRARIES} )
++      set( BLAS_INCLUDE_DIR ${CBLAS_INCLUDE_DIRS} )
+     endif()
+   else() # WIN32
+     file(TO_CMAKE_PATH "C:/Program\ 
Files/AMD/AOCL-Windows/amd-blis/lib/ILP64/AOCL-LibBlis-Win-MT.lib" 
AOCL_BLAS_LIBRARY)

diff --git a/sci-libs/rocBLAS/files/rocBLAS-6.3.0-no-git.patch 
b/sci-libs/rocBLAS/files/rocBLAS-6.3.0-no-git.patch
new file mode 100644
index 000000000000..39ce71a85eb1
--- /dev/null
+++ b/sci-libs/rocBLAS/files/rocBLAS-6.3.0-no-git.patch
@@ -0,0 +1,22 @@
+Git should not be a required dependency, as hash is not available for releases.
+--- a/library/CMakeLists.txt
++++ b/library/CMakeLists.txt
+@@ -144,17 +144,8 @@ if( BUILD_VERBOSE )
+   message( STATUS "\t==>CMAKE_SHARED_LINKER_FLAGS_RELEASE: 
${CMAKE_SHARED_LINKER_FLAGS_RELEASE}" )
+ endif( )
+ 
+-find_package(Git REQUIRED)
+-
+-# Get the git hash of the rocBLAS branch
+-execute_process(
+-          COMMAND "${GIT_EXECUTABLE}" rev-parse HEAD
+-          WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
+-          OUTPUT_VARIABLE GIT_HASH_ROCBLAS
+-          OUTPUT_STRIP_TRAILING_WHITESPACE)
+-
+ #set the rocBLAS commit hash
+-set(rocblas_VERSION_COMMIT_ID "${GIT_HASH_ROCBLAS}")
++set(rocblas_VERSION_COMMIT_ID "")
+ 
+ #set the Tensile commit hash
+ set(tensile_VERSION_COMMIT_ID "${tensile_tag}")

diff --git a/sci-libs/rocBLAS/metadata.xml b/sci-libs/rocBLAS/metadata.xml
index 0e8f76b2a76e..bd9344786002 100644
--- a/sci-libs/rocBLAS/metadata.xml
+++ b/sci-libs/rocBLAS/metadata.xml
@@ -19,8 +19,9 @@
   <use>
     <flag name="test">Perform rocblas-test to compare the result between 
rocBLAS and system BLAS.</flag>
     <flag name="benchmark">Build and install rocblas-bench.</flag>
+    <flag name="hipblaslt">Build with hipBLASLt for some non-batched and 
strided batched problems on gfx12.</flag>
   </use>
   <upstream>
-    <remote-id type="github">ROCmSoftwarePlatform/rocBLAS</remote-id>
+    <remote-id type="github">ROCm/rocBLAS</remote-id>
   </upstream>
 </pkgmetadata>

diff --git a/sci-libs/rocBLAS/rocBLAS-6.1.1-r1.ebuild 
b/sci-libs/rocBLAS/rocBLAS-6.1.1-r1.ebuild
index b101aed6dee7..ec90a6d900ce 100644
--- a/sci-libs/rocBLAS/rocBLAS-6.1.1-r1.ebuild
+++ b/sci-libs/rocBLAS/rocBLAS-6.1.1-r1.ebuild
@@ -33,7 +33,7 @@ BDEPEND="
 
 DEPEND="
        >=dev-cpp/msgpack-cxx-6.0.0
-       =dev-util/hip-6*
+       dev-util/hip:${SLOT}
        test? (
                virtual/blas
                dev-cpp/gtest
@@ -57,6 +57,10 @@ PATCHES=(
 src_prepare() {
        cmake_src_prepare
        sed -e "s:,-rpath=.*\":\":" -i clients/CMakeLists.txt || die
+
+       # bug 944820: f16c instuctions cause SIGILL on pre-AVX512 CPUs
+       sed -i -e "s/-mf16c /" clients/benchmarks/CMakeLists.txt \
+               clients/gtest/CMakeLists.txt clients/samples/CMakeLists.txt 
library/CMakeLists.txt || die
 }
 
 src_configure() {

diff --git a/sci-libs/rocBLAS/rocBLAS-6.1.1-r1.ebuild 
b/sci-libs/rocBLAS/rocBLAS-6.3.0.ebuild
similarity index 73%
copy from sci-libs/rocBLAS/rocBLAS-6.1.1-r1.ebuild
copy to sci-libs/rocBLAS/rocBLAS-6.3.0.ebuild
index b101aed6dee7..f35ee735d2fb 100644
--- a/sci-libs/rocBLAS/rocBLAS-6.1.1-r1.ebuild
+++ b/sci-libs/rocBLAS/rocBLAS-6.3.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -6,20 +6,20 @@ EAPI=8
 DOCS_BUILDER="doxygen"
 DOCS_DIR="docs/.doxygen"
 DOCS_DEPEND="media-gfx/graphviz"
-LLVM_COMPAT=( 18 )
+LLVM_COMPAT=( 19 )
 ROCM_VERSION=${PV}
 
-inherit cmake docs edo multiprocessing rocm llvm-r1
+inherit cmake docs edo flag-o-matic multiprocessing rocm llvm-r1
 
 DESCRIPTION="AMD's library for BLAS on ROCm"
-HOMEPAGE="https://github.com/ROCmSoftwarePlatform/rocBLAS";
-SRC_URI="https://github.com/ROCmSoftwarePlatform/rocBLAS/archive/rocm-${PV}.tar.gz
 -> rocm-${P}.tar.gz"
+HOMEPAGE="https://github.com/ROCm/rocBLAS";
+SRC_URI="https://github.com/ROCm/rocBLAS/archive/rocm-${PV}.tar.gz -> 
rocm-${P}.tar.gz"
 S="${WORKDIR}/${PN}-rocm-${PV}"
 
 LICENSE="BSD"
 SLOT="0/$(ver_cut 1-2)"
 KEYWORDS="~amd64"
-IUSE="benchmark test video_cards_amdgpu"
+IUSE="benchmark hipblaslt test video_cards_amdgpu"
 RESTRICT="!test? ( test )"
 REQUIRED_USE="${ROCM_REQUIRED_USE}"
 
@@ -28,12 +28,13 @@ BDEPEND="
        video_cards_amdgpu? (
                dev-util/Tensile:${SLOT}
        )
+       hipblaslt? ( sci-libs/hipBLASLt:${SLOT} )
        test? ( dev-cpp/gtest )
 "
 
 DEPEND="
        >=dev-cpp/msgpack-cxx-6.0.0
-       =dev-util/hip-6*
+       dev-util/hip:${SLOT}
        test? (
                virtual/blas
                dev-cpp/gtest
@@ -48,11 +49,12 @@ DEPEND="
 QA_FLAGS_IGNORED="/usr/lib64/rocblas/library/.*"
 
 PATCHES=(
-       "${FILESDIR}"/${PN}-5.4.2-cpp_lib_filesystem.patch
        "${FILESDIR}"/${PN}-5.4.2-add-missing-header.patch
        "${FILESDIR}"/${PN}-5.4.2-link-cblas.patch
        "${FILESDIR}"/${PN}-6.0.2-expand-isa-compatibility.patch
-       )
+       "${FILESDIR}"/${PN}-6.3.0-no-git.patch
+       "${FILESDIR}"/${PN}-6.3.0-find-cblas.patch
+)
 
 src_prepare() {
        cmake_src_prepare
@@ -62,6 +64,9 @@ src_prepare() {
 src_configure() {
        rocm_use_hipcc
 
+       # too many warnings
+       append-cxxflags -Wno-explicit-specialization-storage-class
+
        local mycmakeargs=(
                -DCMAKE_SKIP_RPATH=ON
                -DBUILD_FILE_REORG_BACKWARD_COMPATIBILITY=OFF
@@ -70,9 +75,12 @@ src_configure() {
                -DBUILD_WITH_TENSILE="$(usex video_cards_amdgpu)"
                -DCMAKE_INSTALL_INCLUDEDIR="include/rocblas"
                -DBUILD_CLIENTS_SAMPLES=OFF
-               -DBUILD_CLIENTS_TESTS="$(usex test)"
-               -DBUILD_CLIENTS_BENCHMARKS="$(usex benchmark)"
+               -DBUILD_CLIENTS_TESTS="$(usex test ON OFF)"
+               -DBUILD_CLIENTS_BENCHMARKS="$(usex benchmark ON OFF)"
                -DBUILD_WITH_PIP=OFF
+               -DBUILD_WITH_HIPBLASLT="$(usex hipblaslt ON OFF)"
+               -DLINK_BLIS=OFF
+               -Wno-dev
        )
 
        if usex video_cards_amdgpu; then
@@ -99,7 +107,9 @@ src_test() {
        cd "${BUILD_DIR}"/clients/staging || die
        export ROCBLAS_TEST_TIMEOUT=3600 
ROCBLAS_TENSILE_LIBPATH="${BUILD_DIR}/Tensile/library"
        export LD_LIBRARY_PATH="${BUILD_DIR}/clients:${BUILD_DIR}/library/src"
-       edob "./${PN,,}-test"
+
+       # `--gtest_filter=*quick*:*pre_checkin*-*known_bug*` is >1h on 7900XTX
+       edob ./rocblas-test --yaml rocblas_smoke.yaml
 }
 
 src_install() {

Reply via email to