commit: aec0088206378db7ae38b3c365419d944d1a3118 Author: Sv. Lockal <lockalsash <AT> gmail <DOT> com> AuthorDate: Sun Dec 8 15:17:04 2024 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Sun Jan 5 21:46:32 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=aec00882
sci-libs/hipSPARSE: add 6.3.0 Signed-off-by: Sv. Lockal <lockalsash <AT> gmail.com> Signed-off-by: Sam James <sam <AT> gentoo.org> sci-libs/hipSPARSE/Manifest | 1 + .../files/hipSPARSE-6.3.0-fix-filesystem.patch | 40 ++++++++ .../hipSPARSE-6.3.0-no-gtest-in-benchmark.patch | 22 +++++ sci-libs/hipSPARSE/hipSPARSE-6.1.1.ebuild | 6 +- sci-libs/hipSPARSE/hipSPARSE-6.3.0.ebuild | 102 +++++++++++++++++++++ sci-libs/hipSPARSE/metadata.xml | 5 +- 6 files changed, 174 insertions(+), 2 deletions(-) diff --git a/sci-libs/hipSPARSE/Manifest b/sci-libs/hipSPARSE/Manifest index c38dc6c9f99c..f41749291572 100644 --- a/sci-libs/hipSPARSE/Manifest +++ b/sci-libs/hipSPARSE/Manifest @@ -1,6 +1,7 @@ DIST hipSPARSE-5.1.tar.gz 449838 BLAKE2B 7727ecb9fa397e2730cfda4c9367188c37ad201d501b50129994869c6ef15b51cdf2d1f481f19f2f37cf0530f1ec3689c40a9651924f70fabe945d80732df64a SHA512 8b01c01a10b8419d14a532ebccfa5b5b5b5c3f6a6e73f3f0ecee58c7e240d2754485a9da020fe4693df3ef9fc08e5bb09b05396472ccbeebf89bc2635d94eb64 DIST hipSPARSE-5.7.tar.gz 458521 BLAKE2B 94695ef3cf4294f571723e31ab5d4295b5aaa24528e90838375ee8477cf0957b297663d80e5fe3406762b475b6ef4741f9ccfb4dfb1448ce71ea4014da14b46e SHA512 bb28cd81b7ec298eb2e6462a8588ed93eee7b4892923b11087a91d1c32341f29f488fd4e6797debe51a989f463db31030eae02d07be6512d6b755367ba221aac DIST hipSPARSE-6.1.tar.gz 471148 BLAKE2B 18119ac355e180adb5ce38561f44e39119226d209a970ae8cac6b85575bad1ab2a690a3bb72de1c179c1190aa2c29d691e6ce02855f3df89a58f634d42e54103 SHA512 09f9e94c5f976e6f17c07f9be2fde31c2e740871215a6b77b49675644b883bd9994fcaacb19864ace3883bb5aea7a7dc589ddbaf9b6aaf3d9f411c7e452a0b78 +DIST hipSPARSE-6.3.tar.gz 537764 BLAKE2B 2989c81ac1f024246fdcf8081fa6969f1efd81d680f39b45edac290b4db7d453154d5d432e0ad3d0bc1e08948e03886a89ff4ec051b30cb7eca6bfe4f433d4a7 SHA512 c011b7d7a2121a20ceb2eee8d7217717ff06196f085f0996b0952b5afdbf2350e7288c4cfd2cfe9214b84c2add203788a1860d9a89bb426df2bc376b348a7f55 DIST rocSPARSE_ASIC_320k.tar.gz 11301444 BLAKE2B a00cc4a3ededab3fb56339319e34e936645ddce2dee3c630153b37e337384c207b0a2829227fb7f4c2db1fe33383e97410ab7ad459d391c025f5410843d51cf2 SHA512 1db3af391c30a371c1ac0087436e266721474273a39d5b2b6d56408d950dcbbee004750e4dce4e3dbc4cb512f38f6d945676d7f29b62c52fd5a7fed0fe789e03 DIST rocSPARSE_Chebyshev4.tar.gz 50165660 BLAKE2B f1a95554c8f38937f501488fabfd406b773eb980d7463cadac0de162529ac2f834c655cadd2b65f4c42a8487bc2d67c749601ae33bd789051f9e4d1e157196a0 SHA512 fdec4947a4af923d28b4be8d23690fd6d356c58f8344a5dcdd2e3fa61769d83e47a84d65316b527e6e82d9f988de2675a852367d406e44b44d784137a90b95c0 DIST rocSPARSE_amazon0312.tar.gz 11303646 BLAKE2B 388947a29380253bb5eecb22d3a3b6f3378711044b3fe98d6d2517cd27330f11b3d12fdb96320a2889e139224f1a6a5ad1c455ff8e91a262aa2aadbe16301330 SHA512 aed2d62581763742d9c7faf3dcaf1eaa983caa1e2e7ad4abebe97c5e7c2aec9942e0e32291092b348b60052c92b130e721ec19ed59bda22e1b233ef72ac7d2ff diff --git a/sci-libs/hipSPARSE/files/hipSPARSE-6.3.0-fix-filesystem.patch b/sci-libs/hipSPARSE/files/hipSPARSE-6.3.0-fix-filesystem.patch new file mode 100644 index 000000000000..c688f0c81c53 --- /dev/null +++ b/sci-libs/hipSPARSE/files/hipSPARSE-6.3.0-fix-filesystem.patch @@ -0,0 +1,40 @@ +Incorrect usage of C++ filesystem for libc++ and libstdc++ +https://github.com/ROCm/hipSPARSE/issues/555 +--- a/clients/common/utility.cpp ++++ b/clients/common/utility.cpp +@@ -34,16 +34,22 @@ + #define strSUITEcmp(A, B) _stricmp(A, B) + #endif + ++#ifdef __has_include ++#if __has_include(<version>) ++#include <version> ++#endif ++#endif ++ + #ifdef __cpp_lib_filesystem + #include <filesystem> ++ ++namespace fs = std::filesystem; + #else + #include <experimental/filesystem> + +-namespace std +-{ +- namespace filesystem = experimental::filesystem; +-} ++namespace fs = std::experimental::filesystem; + #endif ++ + #if 0 + #ifdef WIN32 + #include <windows.h> +@@ -91,7 +97,7 @@ std::string hipsparse_exepath() + result.resize(result.size() * 2); + } + +- std::filesystem::path exepath(result.begin(), result.end()); ++ fs::path exepath(result.begin(), result.end()); + exepath = exepath.remove_filename(); + exepath += exepath.empty() ? "" : "/"; + return exepath.string(); diff --git a/sci-libs/hipSPARSE/files/hipSPARSE-6.3.0-no-gtest-in-benchmark.patch b/sci-libs/hipSPARSE/files/hipSPARSE-6.3.0-no-gtest-in-benchmark.patch new file mode 100644 index 000000000000..4555b1000d38 --- /dev/null +++ b/sci-libs/hipSPARSE/files/hipSPARSE-6.3.0-no-gtest-in-benchmark.patch @@ -0,0 +1,22 @@ +GTest is linked/required for hipsparse-bench, but not used +https://github.com/ROCm/hipSPARSE/issues/557 +--- a/clients/benchmarks/CMakeLists.txt ++++ b/clients/benchmarks/CMakeLists.txt +@@ -21,8 +21,6 @@ + # + # ######################################################################## + +-find_package(GTest REQUIRED) +- + set(HIPSPARSE_BENCHMARK_SOURCES + client.cpp + hipsparse_arguments_config.cpp +@@ -48,7 +46,7 @@ target_compile_options(hipsparse-bench PRIVATE -Wno-deprecated -Wno-unused-comma + target_include_directories(hipsparse-bench PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../include>) + + # Target link libraries +-target_link_libraries(hipsparse-bench PRIVATE GTest::GTest roc::hipsparse) ++target_link_libraries(hipsparse-bench PRIVATE roc::hipsparse) + + # Add OpenMP if available + if(OPENMP_FOUND AND THREADS_FOUND) diff --git a/sci-libs/hipSPARSE/hipSPARSE-6.1.1.ebuild b/sci-libs/hipSPARSE/hipSPARSE-6.1.1.ebuild index 2176f205682a..66e72a372ec5 100644 --- a/sci-libs/hipSPARSE/hipSPARSE-6.1.1.ebuild +++ b/sci-libs/hipSPARSE/hipSPARSE-6.1.1.ebuild @@ -43,7 +43,7 @@ REQUIRED_USE="${ROCM_REQUIRED_USE}" RESTRICT="!test? ( test )" RDEPEND="dev-util/rocminfo - dev-util/hip + dev-util/hip:${SLOT} sci-libs/rocSPARSE:${SLOT}[${ROCM_USEDEP}]" DEPEND="${RDEPEND}" BDEPEND="dev-build/rocm-cmake @@ -68,6 +68,10 @@ src_prepare() { } src_configure() { + # Note: hipcc is enforced; clang fails when libc++ is enabled + # with an error similar to https://github.com/boostorg/config/issues/392 + rocm_use_hipcc + local mycmakeargs=( -DHIP_RUNTIME="ROCclr" -DBUILD_CLIENTS_TESTS=$(usex test ON OFF) diff --git a/sci-libs/hipSPARSE/hipSPARSE-6.3.0.ebuild b/sci-libs/hipSPARSE/hipSPARSE-6.3.0.ebuild new file mode 100644 index 000000000000..62a5615be846 --- /dev/null +++ b/sci-libs/hipSPARSE/hipSPARSE-6.3.0.ebuild @@ -0,0 +1,102 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ROCM_VERSION=${PV} + +inherit cmake edo rocm toolchain-funcs + +DESCRIPTION="ROCm SPARSE marshalling library" +HOMEPAGE="https://github.com/ROCm/hipSPARSE" +# share some test datasets with rocSPARSE +SRC_URI="https://github.com/ROCm/hipSPARSE/archive/rocm-${PV}.tar.gz -> hipSPARSE-$(ver_cut 1-2).tar.gz +test? ( +http://sparse-files.engr.tamu.edu/MM/SNAP/amazon0312.tar.gz -> rocSPARSE_amazon0312.tar.gz +http://sparse-files.engr.tamu.edu/MM/Muite/Chebyshev4.tar.gz -> rocSPARSE_Chebyshev4.tar.gz +http://sparse-files.engr.tamu.edu/MM/FEMLAB/sme3Dc.tar.gz -> rocSPARSE_sme3Dc.tar.gz +http://sparse-files.engr.tamu.edu/MM/Williams/webbase-1M.tar.gz -> rocSPARSE_webbase-1M.tar.gz +http://sparse-files.engr.tamu.edu/MM/Bova/rma10.tar.gz -> rocSPARSE_rma10.tar.gz +http://sparse-files.engr.tamu.edu/MM/JGD_BIBD/bibd_22_8.tar.gz -> rocSPARSE_bibd_22_8.tar.gz +http://sparse-files.engr.tamu.edu/MM/Williams/mac_econ_fwd500.tar.gz -> rocSPARSE_mac_econ_fwd500.tar.gz +http://sparse-files.engr.tamu.edu/MM/Williams/mc2depi.tar.gz -> rocSPARSE_mc2depi.tar.gz +http://sparse-files.engr.tamu.edu/MM/Hamm/scircuit.tar.gz -> rocSPARSE_scircuit.tar.gz +http://sparse-files.engr.tamu.edu/MM/Sandia/ASIC_320k.tar.gz -> rocSPARSE_ASIC_320k.tar.gz +http://sparse-files.engr.tamu.edu/MM/GHS_psdef/bmwcra_1.tar.gz -> rocSPARSE_bmwcra_1.tar.gz +http://sparse-files.engr.tamu.edu/MM/HB/nos1.tar.gz -> rocSPARSE_nos1.tar.gz +http://sparse-files.engr.tamu.edu/MM/HB/nos2.tar.gz -> rocSPARSE_nos2.tar.gz +http://sparse-files.engr.tamu.edu/MM/HB/nos3.tar.gz -> rocSPARSE_nos3.tar.gz +http://sparse-files.engr.tamu.edu/MM/HB/nos4.tar.gz -> rocSPARSE_nos4.tar.gz +http://sparse-files.engr.tamu.edu/MM/HB/nos5.tar.gz -> rocSPARSE_nos5.tar.gz +http://sparse-files.engr.tamu.edu/MM/HB/nos6.tar.gz -> rocSPARSE_nos6.tar.gz +http://sparse-files.engr.tamu.edu/MM/HB/nos7.tar.gz -> rocSPARSE_nos7.tar.gz +http://sparse-files.engr.tamu.edu/MM/DNVS/shipsec1.tar.gz -> rocSPARSE_shipsec1.tar.gz +)" +S="${WORKDIR}/hipSPARSE-rocm-${PV}" + +LICENSE="MIT" +SLOT="0"/$(ver_cut 1-2) +KEYWORDS="~amd64" +IUSE="benchmark test" +REQUIRED_USE="${ROCM_REQUIRED_USE}" + +RESTRICT="!test? ( test )" + +RDEPEND=" + dev-util/rocminfo:${SLOT} + dev-util/hip:${SLOT} + sci-libs/rocSPARSE:${SLOT}[${ROCM_USEDEP}] +" +DEPEND="${RDEPEND}" +BDEPEND=" + dev-build/rocm-cmake + test? ( dev-cpp/gtest ) +" + +PATCHES=( + "${FILESDIR}/${PN}-6.3.0-fix-filesystem.patch" + "${FILESDIR}/${PN}-6.3.0-no-gtest-in-benchmark.patch" +) + +src_prepare() { + # include <filesystem> issue - https://github.com/ROCm/hipSPARSE/issues/555 + sed -e "s/CMAKE_CXX_STANDARD 14/CMAKE_CXX_STANDARD 17/" -i CMakeLists.txt clients/CMakeLists.txt || die + + cmake_src_prepare + + if use test; then + mkdir -p "${BUILD_DIR}"/clients/matrices + # compile and use the mtx2bin converter. Do not use any optimization flags! + edo $(tc-getCXX) deps/convert.cpp -o deps/convert + find "${WORKDIR}" -maxdepth 2 -regextype egrep -regex ".*/(.*)/\1\.mtx" -print0 | + while IFS= read -r -d '' mtxfile; do + destination=${BUILD_DIR}/clients/matrices/$(basename -s '.mtx' "${mtxfile}").bin + ebegin "Converting ${mtxfile} to ${destination}" + deps/convert "${mtxfile}" "${destination}" + eend $? + done + fi +} + +src_configure() { + # Note: hipcc is enforced; clang fails when libc++ is enabled + # with an error similar to https://github.com/boostorg/config/issues/392 + rocm_use_hipcc + + local mycmakeargs=( + -DHIP_RUNTIME="ROCclr" + -DBUILD_CLIENTS_TESTS=$(usex test ON OFF) + -DBUILD_CLIENTS_SAMPLES=OFF + -DBUILD_CLIENTS_BENCHMARKS=$(usex benchmark ON OFF) + -DROCM_SYMLINK_LIBS=OFF + -DBUILD_FILE_REORG_BACKWARD_COMPATIBILITY=OFF + ) + + cmake_src_configure +} + +src_test() { + check_amdgpu + cd "${BUILD_DIR}"/clients/staging || die + edob ./${PN,,}-test +} diff --git a/sci-libs/hipSPARSE/metadata.xml b/sci-libs/hipSPARSE/metadata.xml index db85e1426e8f..57758b20d8ba 100644 --- a/sci-libs/hipSPARSE/metadata.xml +++ b/sci-libs/hipSPARSE/metadata.xml @@ -18,6 +18,9 @@ <name>Sv. Lockal</name> </maintainer> <upstream> - <remote-id type="github">ROCmSoftwarePlatform/hipSPARSE</remote-id> + <remote-id type="github">ROCm/hipSPARSE</remote-id> </upstream> + <use> + <flag name="benchmark">Build and install hipsparse-bench.</flag> + </use> </pkgmetadata>
