summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sci-libs/hipCUB/hipCUB-6.3.0.ebuild')
-rw-r--r--sci-libs/hipCUB/hipCUB-6.3.0.ebuild58
1 files changed, 58 insertions, 0 deletions
diff --git a/sci-libs/hipCUB/hipCUB-6.3.0.ebuild b/sci-libs/hipCUB/hipCUB-6.3.0.ebuild
new file mode 100644
index 000000000000..ae5c0e0c441f
--- /dev/null
+++ b/sci-libs/hipCUB/hipCUB-6.3.0.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ROCM_VERSION=${PV}
+
+inherit cmake rocm
+
+DESCRIPTION="Wrapper of rocPRIM or CUB for GPU parallel primitives"
+HOMEPAGE="https://github.com/ROCm/hipCUB"
+SRC_URI="https://github.com/ROCm/hipCUB/archive/rocm-${PV}.tar.gz -> hipCUB-${PV}.tar.gz"
+S="${WORKDIR}/hipCUB-rocm-${PV}"
+
+LICENSE="BSD"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64"
+IUSE="benchmark test"
+REQUIRED_USE="
+ benchmark? ( ${ROCM_REQUIRED_USE} )
+ test? ( ${ROCM_REQUIRED_USE} )
+"
+RESTRICT="!test? ( test )"
+
+RDEPEND="dev-util/hip:${SLOT}
+ sci-libs/rocPRIM:${SLOT}[${ROCM_USEDEP}]
+ benchmark? ( dev-cpp/benchmark )
+ test? ( dev-cpp/gtest )
+"
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ sed -e "s:set(ROCM_INSTALL_LIBDIR lib):set(ROCM_INSTALL_LIBDIR $(get_libdir)):" \
+ -i cmake/ROCMExportTargetsHeaderOnly.cmake || die
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ rocm_use_hipcc
+
+ local mycmakeargs=(
+ -DAMDGPU_TARGETS="$(get_amdgpu_flags)"
+ -DBUILD_TEST=$(usex test ON OFF)
+ -DBUILD_BENCHMARK=$(usex benchmark ON OFF)
+ -DBUILD_FILE_REORG_BACKWARD_COMPATIBILITY=OFF
+ )
+
+ cmake_src_configure
+}
+
+src_test() {
+ check_amdgpu
+ # Expected time on gfx1100 (-j32) is 85s
+ # hipcub.BlockShuffle fails in parallel tests, but adding -j1 makes tests too slow.
+ local CMAKE_SKIP_TESTS=(hipcub.BlockShuffle)
+ cmake_src_test
+}