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() {
