From d2ed973482fdd800013658e83a61709b29e0a80f Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Thu, 27 Jun 2024 07:59:40 +0100 Subject: gentoo auto-resync : 27:06:2024 - 07:59:39 --- sci-libs/rocBLAS/Manifest | 5 +- .../rocBLAS-6.0.2-expand-isa-compatibility.patch | 96 +++++++++++++++++ sci-libs/rocBLAS/metadata.xml | 4 + sci-libs/rocBLAS/rocBLAS-6.1.1.ebuild | 117 +++++++++++++++++++++ 4 files changed, 221 insertions(+), 1 deletion(-) create mode 100644 sci-libs/rocBLAS/files/rocBLAS-6.0.2-expand-isa-compatibility.patch create mode 100644 sci-libs/rocBLAS/rocBLAS-6.1.1.ebuild (limited to 'sci-libs/rocBLAS') diff --git a/sci-libs/rocBLAS/Manifest b/sci-libs/rocBLAS/Manifest index 9d9423b200c5..3c591309db7a 100644 --- a/sci-libs/rocBLAS/Manifest +++ b/sci-libs/rocBLAS/Manifest @@ -7,12 +7,15 @@ AUX rocBLAS-5.4.2-cpp_lib_filesystem.patch 898 BLAKE2B 403b42f0193f2d21585fe8f8a AUX rocBLAS-5.4.2-link-cblas.patch 508 BLAKE2B ab53db7c73cc174039880ebd8987adc88f83d61e84bf024e2a6367f5bc9414ac343843610382bae43b4dcf874f6cf9e91bc3bd865264e37517f280d50881b4ff SHA512 fa91f817a06f517b38d3d3a71110da59d6579bf7915d6f47deefc46c532ca10d17802815662d8909ee52fb155b82339122601793858e52c13c6cc93cac283fc9 AUX rocBLAS-5.4.2-unbundle-Tensile.patch 1373 BLAKE2B 944771b7511de883aa106016cf59e3cb94248119af472aed75c76c712fc9ee2e9e765d472ef727776d95ee478f1701c12853c37be269ee4940a3cde9e1f41cc7 SHA512 bdf01803a0594b53f248bc57594e7bed2f3f4cc772de8b5a043fa849798887291cb14d273511d33453c0685a113a9064a218a56d57631d2e9c1126eb62853668 AUX rocBLAS-5.7.1-expand-isa-compatibility.patch 3771 BLAKE2B 3be8a45734c4d3ce0d54981e48685c500d6cf8ba1981b6035f2cb83cad1c221afcf50e5d9fbdaa9966ce64e99845c57b32267adda7983bb9a511fec661a0cfeb SHA512 86eedaa1bf6d0430f4b059d9257539dd95d56bdfc0cb61ceb0d180e29f76e280505c8b0002eba71c8152522c637917cd0b9ac7fb2f07059b3b5b6076f8ac7c59 +AUX rocBLAS-6.0.2-expand-isa-compatibility.patch 3792 BLAKE2B 55a57fad4cce821f83d04156942c33ab1842389dc0c4ad1ceea0c2435a37d9912bf24f0359023735b503bea5505b47e2e707b0798d93cdc5622d34821b1e3950 SHA512 c21de66ddc126b5ac5b588c9e68283e8d32574ec0a28963e62244a176edfb0c9188236a75b3985d2cf9043f4fb919a837326ede94045dce9158e9651228b0c38 DIST rocBLAS-5.0.2-Tensile-asm_full-navi22.tar.gz 1110323 BLAKE2B 80fab97c6f89fccf1f8829ad41baf15ad31bbbb313b48825841834c7ec1b9f8ece794aebdf9fda42b54a38f642beb1bc1e374f2f3b4e43d8ba9dfd1eb6e3ece5 SHA512 8f6946cf9d68afd195640ae7e0da8dc33341c67f28813813b5361a56531fa2af4453d075703ea52c66d93a1936cf74688b86aa2fa62b52a7ed5f03272290c232 DIST rocBLAS-5.4.2-Tensile-asm_full-navi22.tar.gz 1057686 BLAKE2B aa755595bbcd48775713f1d94c18b9bfa6464cae97653dd5beda9e4ed600802b62c4159e6edef7fbd4c92e629bbda1c284e6c48e096c7eaf22bbaad86bdcdace SHA512 cdc928528e7ce5bcc3ae32ec18e3aee48533f24e77c1e42f6e0398858eefebd52b8812caabe01a0ef7fa552e00118b862e025f1675a9642b009f1e38efbcdd53 DIST rocm-rocBLAS-5.1.3.tar.gz 13741546 BLAKE2B af10d8cb69bee44ef5aab2dc350e1d9f3b6fddb3a840c17230c4b55b2649a4724c9f2e58c1eafdb3e2716eea016a72a35c3ddb498881b1ce682d780baa8d8b07 SHA512 5ab71838fdd0e9c5848cbf28a19d113353b619a878d8c7d05f64feb32faae2054169c95ed6e9dd6b05a2e807b57229dd2c361c4d289b6e6f17c196558640890f 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 EBUILD rocBLAS-5.1.3-r4.ebuild 3050 BLAKE2B 79866dab3479b657dc21aabf7140d465c144b8ea778f1f620a6dad8425883b8a2feb6eff15e936074c5947d44be104e5c391732596c185cb360592981f4cf461 SHA512 b14cf2ec87859a56f314f161fdb6f96695e6f68838699406365f619e56481c99559e6a5e115f16376ea323b9cbf6b57307c2b8531d6bb31a6339639d1eb2d734 EBUILD rocBLAS-5.4.2-r3.ebuild 2689 BLAKE2B a3713d44891b79166ff1bcf5e2290853b85545a7cbe4a0605ace885f350d8de2ba119090c9bc9ac15bd768ebb7e58ae450cd31e58402f87e3ad0ca5344aeabc7 SHA512 95da8f3dd111894bfc18f522c44bd92e34e91a3215ef89e2bc24ffa63e6fd320d04ee2c98d9261482793e583064a7d77ed364a0ad0a72270009f302c6de28703 EBUILD rocBLAS-5.7.1-r2.ebuild 2718 BLAKE2B 78b35d4032fd97fa5ff63273c213ecde3b7d7900b4002da27355ce1ab8f4af2a6e796560b955df6fb3b1d517752a153ccf4a9980e31733a141b880a11f676db7 SHA512 943f734ef9a089b5a16032614813b8e528de81a4b81c81734814ab4a986e3c01a3d9e6f0bdee32efd850f476f83380cb445ac3da2a6dc102cbd18414ff19a1db -MISC metadata.xml 739 BLAKE2B 38ace9571ca717a5bf7251888b4537522326f34778be98cfe717a06dbbd3a04a2bf905ec1cabafe9bbd3fea90adfb5c25c8b41e46c034a7793363ea5fc0c7f29 SHA512 60f1d5aa2a6ebe17cfcf24780529e1eef521bb7c838e48d18180a52d580cf91430ac1f4fdd0e70b9804ec5f0b5957dbd431149f6e0b0b9033cf8ad683510c582 +EBUILD rocBLAS-6.1.1.ebuild 2833 BLAKE2B 56df33992129fa096291dd2809431de8423ccace0c0ea7ad7162411972ecd9c24460b26b96c29bb0ac6e11407a797222933fe37b06615d62ff6ca214ea75d1de SHA512 b03ccda2a28e6a68081f150a46f248b10fa276d73a2f72d99e9c9203840733b34d114d2f3dfb002cb589b9e3d1dfd9c7bf1d6d9165927ef68d0df35daf567cbd +MISC metadata.xml 852 BLAKE2B c358ef9128e50c5052fea39876550419dc037a8750c8dd12f10415a02dd2a64893ecd11c4c0ee4acc8db83999a4f709a98da53f6d12f71d0782f98af92a37a96 SHA512 18de129cceb076f84235ccb5706287ee16c5843dab654dc9494013b89b07bbb9f82d1e4980e1c1a8e0c8ce2b0e125633cefef069b0e97b3127e0240071d5a53a diff --git a/sci-libs/rocBLAS/files/rocBLAS-6.0.2-expand-isa-compatibility.patch b/sci-libs/rocBLAS/files/rocBLAS-6.0.2-expand-isa-compatibility.patch new file mode 100644 index 000000000000..ca895c4b4ff5 --- /dev/null +++ b/sci-libs/rocBLAS/files/rocBLAS-6.0.2-expand-isa-compatibility.patch @@ -0,0 +1,96 @@ +--- a/library/src/handle.cpp ++++ b/library/src/handle.cpp +@@ -21,6 +21,7 @@ + * ************************************************************************ */ + #include "handle.hpp" + #include ++#include + #include + #ifdef WIN32 + #include +@@ -80,6 +81,20 @@ static Processor getActiveArch(int deviceId) + // strip out xnack/ecc from name + std::string deviceFullString(deviceProperties.gcnArchName); + std::string deviceString = deviceFullString.substr(0, deviceFullString.find(":")); ++ // coerce to compatible arch ++ int gcnArch = deviceString.substr(0, 3) == "gfx" ? std::stoi(deviceString.substr(3)) : 0; ++ switch(gcnArch) ++ { ++ case 902: case 909: case 912: ++ std::strcpy(deviceProperties.gcnArchName, "gfx900"); ++ break; ++ case 1013: ++ std::strcpy(deviceProperties.gcnArchName, "gfx1010"); ++ break; ++ case 1031: case 1032: case 1033: case 1034: case 1035: case 1036: ++ std::strcpy(deviceProperties.gcnArchName, "gfx1030"); ++ break; ++ } + + if(deviceString.find("gfx803") != std::string::npos) + { +--- a/library/src/rocblas_auxiliary.cpp ++++ b/library/src/rocblas_auxiliary.cpp +@@ -24,6 +24,7 @@ + #include "logging.hpp" + #include "rocblas-auxiliary.h" + #include ++#include + #include + #include + #include +@@ -1242,6 +1243,20 @@ std::string rocblas_internal_get_arch_name() + hipGetDevice(&deviceId); + hipDeviceProp_t deviceProperties; + hipGetDeviceProperties(&deviceProperties, deviceId); ++ // coerce to compatible arch ++ int gcnArch = strncmp(deviceProperties.gcnArchName, "gfx", 3) == 0 ? std::stoi(deviceProperties.gcnArchName + 3) : 0; ++ switch(gcnArch) ++ { ++ case 902: case 909: case 912: ++ std::strcpy(deviceProperties.gcnArchName, "gfx900"); ++ break; ++ case 1013: ++ std::strcpy(deviceProperties.gcnArchName, "gfx1010"); ++ break; ++ case 1031: case 1032: case 1033: case 1034: case 1035: case 1036: ++ std::strcpy(deviceProperties.gcnArchName, "gfx1030"); ++ break; ++ } + return ArchName{}(deviceProperties); + } + +--- a/library/src/tensile_host.cpp ++++ b/library/src/tensile_host.cpp +@@ -45,6 +45,7 @@ extern "C" void rocblas_shutdown(); + #include + #include + #include ++#include + #include + #include + #include +@@ -802,6 +803,23 @@ namespace + std::string deviceFullString(prop.gcnArchName); + std::string deviceString + = deviceFullString.substr(0, deviceFullString.find(":")); ++ // coerce to compatible arch ++ int gcnArch = deviceString.substr(0, 3) == "gfx" ? std::stoi(deviceString.substr(3)) : 0; ++ switch(gcnArch) ++ { ++ case 902: case 909: case 912: ++ std::strcpy(prop.gcnArchName, "gfx900"); ++ deviceString = prop.gcnArchName; ++ break; ++ case 1013: ++ std::strcpy(prop.gcnArchName, "gfx1010"); ++ deviceString = prop.gcnArchName; ++ break; ++ case 1031: case 1032: case 1033: case 1034: case 1035: case 1036: ++ std::strcpy(prop.gcnArchName, "gfx1030"); ++ deviceString = prop.gcnArchName; ++ break; ++ } + m_devicePropMap[deviceString] = std::make_shared(prop); + } + } diff --git a/sci-libs/rocBLAS/metadata.xml b/sci-libs/rocBLAS/metadata.xml index 066f5c749e3f..0e8f76b2a76e 100644 --- a/sci-libs/rocBLAS/metadata.xml +++ b/sci-libs/rocBLAS/metadata.xml @@ -12,6 +12,10 @@ xgreenlandforwyy@gmail.com Yiyang Wu + + lockalsash@gmail.com + Sv. Lockal + Perform rocblas-test to compare the result between rocBLAS and system BLAS. Build and install rocblas-bench. diff --git a/sci-libs/rocBLAS/rocBLAS-6.1.1.ebuild b/sci-libs/rocBLAS/rocBLAS-6.1.1.ebuild new file mode 100644 index 000000000000..26bfc2ada24d --- /dev/null +++ b/sci-libs/rocBLAS/rocBLAS-6.1.1.ebuild @@ -0,0 +1,117 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DOCS_BUILDER="doxygen" +DOCS_DIR="docs/.doxygen" +DOCS_DEPEND="media-gfx/graphviz" +ROCM_VERSION=${PV} +inherit cmake docs edo multiprocessing rocm + +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" +S="${WORKDIR}/${PN}-rocm-${PV}" + +LICENSE="BSD" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" +IUSE="benchmark test video_cards_amdgpu" +RESTRICT="!test? ( test )" +REQUIRED_USE="${ROCM_REQUIRED_USE}" + +BDEPEND=" + >=dev-build/rocm-cmake-5.3 + video_cards_amdgpu? ( + dev-util/Tensile:${SLOT} + ) + test? ( dev-cpp/gtest ) +" + +DEPEND=" + >=dev-cpp/msgpack-cxx-6.0.0 + =dev-util/hip-6* + test? ( + virtual/blas + dev-cpp/gtest + sys-libs/libomp + ) + benchmark? ( + virtual/blas + sys-libs/libomp + ) +" + +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 + ) + +src_prepare() { + cmake_src_prepare + sed -e "s:,-rpath=.*\":\":" -i clients/CMakeLists.txt || die +} + +src_configure() { + addpredict /dev/random + addpredict /dev/kfd + addpredict /dev/dri/ + + local mycmakeargs=( + -DCMAKE_SKIP_RPATH=ON + -DBUILD_FILE_REORG_BACKWARD_COMPATIBILITY=OFF + -DROCM_SYMLINK_LIBS=OFF + -DAMDGPU_TARGETS="$(get_amdgpu_flags)" + -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_WITH_PIP=OFF + ) + + if usex video_cards_amdgpu; then + mycmakeargs+=( + -DTensile_LOGIC="asm_full" + -DTensile_COMPILER="hipcc" + -DTensile_LIBRARY_FORMAT="msgpack" + -DTensile_CODE_OBJECT_VERSION="default" + -DTensile_ROOT="${EPREFIX}/usr/share/Tensile" + -DTensile_CPU_THREADS="$(makeopts_jobs)" + ) + fi + + CXX=hipcc cmake_src_configure +} + +src_compile() { + docs_compile + cmake_src_compile +} + +src_test() { + check_amdgpu + 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" +} + +src_install() { + cmake_src_install + + if use benchmark; then + cd "${BUILD_DIR}" || die + dolib.a clients/librocblas_fortran_client.a + dobin clients/staging/rocblas-bench + fi + + # Stop llvm-strip from removing .strtab section from *.hsaco files, + # otherwise rocclr/elf/elf.cpp complains with "failed: null sections(STRTAB)" and crashes + dostrip -x "/usr/$(get_libdir)/rocblas/library/" +} -- cgit v1.2.3