summaryrefslogtreecommitdiff
path: root/dev-libs/rccl/rccl-5.7.1.ebuild
diff options
context:
space:
mode:
Diffstat (limited to 'dev-libs/rccl/rccl-5.7.1.ebuild')
-rw-r--r--dev-libs/rccl/rccl-5.7.1.ebuild78
1 files changed, 78 insertions, 0 deletions
diff --git a/dev-libs/rccl/rccl-5.7.1.ebuild b/dev-libs/rccl/rccl-5.7.1.ebuild
new file mode 100644
index 000000000000..1ebf9619a55b
--- /dev/null
+++ b/dev-libs/rccl/rccl-5.7.1.ebuild
@@ -0,0 +1,78 @@
+# 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 flag-o-matic
+
+DESCRIPTION="ROCm Communication Collectives Library (RCCL)"
+HOMEPAGE="https://github.com/ROCmSoftwarePlatform/rccl"
+SRC_URI="https://github.com/ROCmSoftwarePlatform/rccl/archive/rocm-${PV}.tar.gz -> rccl-${PV}.tar.gz"
+
+LICENSE="BSD"
+KEYWORDS="~amd64"
+SLOT="0/$(ver_cut 1-2)"
+IUSE="test"
+
+RDEPEND="
+ =dev-util/hip-5*
+ dev-util/rocm-smi:${SLOT}"
+DEPEND="${RDEPEND}
+ sys-libs/binutils-libs"
+BDEPEND="
+ >=dev-build/cmake-3.22
+ >=dev-build/rocm-cmake-5.0.2-r1
+ dev-util/hipify-clang:${SLOT}
+ test? ( dev-cpp/gtest )"
+
+RESTRICT="!test? ( test )"
+S="${WORKDIR}/rccl-rocm-${PV}"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-5.7.1-remove-chrpath.patch"
+)
+
+src_prepare() {
+ cmake_src_prepare
+
+ # https://reviews.llvm.org/D69582 - clang does not support parallel jobs
+ sed -i 's/-parallel-jobs=[0-9][0-9]//g' CMakeLists.txt || die
+
+ # https://github.com/ROCmSoftwarePlatform/rccl/pull/860 - bad escape
+ sed -i 's/\\%/%/' src/include/msccl/msccl_struct.h || die
+
+ # https://github.com/ROCmSoftwarePlatform/rccl/issues/958 - fix AMDGPU_TARGETS
+ sed -i '/set(AMDGPU_TARGETS/s/ FORCE//' CMakeLists.txt || die
+}
+
+src_configure() {
+ addpredict /dev/kfd
+ addpredict /dev/dri/
+
+ # https://github.com/llvm/llvm-project/issues/71711 - fix issue of clang
+ append-ldflags -Wl,-z,noexecstack
+
+ local mycmakeargs=(
+ -DCMAKE_SKIP_RPATH=ON
+ -DAMDGPU_TARGETS="$(get_amdgpu_flags)"
+ -DBUILD_TESTS=$(usex test ON OFF)
+ -DROCM_SYMLINK_LIBS=OFF
+ -Wno-dev
+ )
+
+ CXX=hipcc cmake_src_configure
+}
+
+src_test() {
+ CHECK_AMDGPU
+ LD_LIBRARY_PATH="${BUILD_DIR}" edob test/rccl-UnitTests
+}
+
+src_install() {
+ cmake_src_install
+
+ # remove extra copy of headers
+ rm -r "${ED}"/usr/rccl || die
+}