From 3456ce4e5f7a529283dd4f85a5ceea96b11ffa85 Mon Sep 17 00:00:00 2001 From: "Sv. Lockal" Date: Sun, 17 Mar 2024 17:06:54 +0000 Subject: [PATCH] dev-libs/rccl: add 6.1.1 Changes since 5.7.1: * remove-chrpath patch is not needed now * bad percent escape fix is not needed now * addpredict in src_configure is not needed (compilation should not access device anyways) * removing extra copy of headers is not needed * new patch for missing ${ROCM_PATH}/.info/version is needed now * rename ROCmSoftwarePlatform to ROCm in urls * fix tests directory (in 5.7.1 too) Signed-off-by: Sv. Lockal Signed-off-by: Sam James --- dev-libs/rccl/Manifest | 1 + .../files/rccl-6.0.2-fix-version-check.patch | 15 ++++ dev-libs/rccl/metadata.xml | 6 +- dev-libs/rccl/rccl-5.7.1.ebuild | 3 +- dev-libs/rccl/rccl-6.1.1.ebuild | 69 +++++++++++++++++++ 5 files changed, 92 insertions(+), 2 deletions(-) create mode 100644 dev-libs/rccl/files/rccl-6.0.2-fix-version-check.patch create mode 100644 dev-libs/rccl/rccl-6.1.1.ebuild diff --git a/dev-libs/rccl/Manifest b/dev-libs/rccl/Manifest index baeaa02c7d4e5..3150ae9e3339f 100644 --- a/dev-libs/rccl/Manifest +++ b/dev-libs/rccl/Manifest @@ -1,2 +1,3 @@ DIST rccl-5.1.3.tar.gz 908274 BLAKE2B 46bff7b6e3d60d5884ccd7e19c54b2f47f90a337a8fdc6dca1a3cfee147e3652e1f912642cc134d4a82bf8daabd9f1391edff139d0517ab1078bd3d9650481d7 SHA512 20deb27c7ef3e6b6b73409950ac0d51286b4634f7002ce36a9a02cdd1d5b1f2db51f6decf773af83364c94f58cc96837da25299f5f5494fc15d8559a1b3c7fcc DIST rccl-5.7.1.tar.gz 1425561 BLAKE2B 852c111ad806d5c99f48b3c65c8cf37315c68b969f9544bfa14c1faf1d5557edcc57cdc21705ced6ded4a0288d42b1076e65fb67b3f89b4fa78cfba9d317b23e SHA512 5913b8ff67fa787714713b7d5b571374898be740d56c77db9f04fe7a3e6ca74023fa930a3494d8a6f984ac9e68ee318343835e110049d08700fe773376618af4 +DIST rccl-6.1.1.tar.gz 1679144 BLAKE2B 371d64691dc74f875c49e14df8f3f2d8b9c607376e6c5a889bd2bdb50607e88715d6d75ffed4ba3184a5b9b241cb37b8501e927a5f495632212909e410102490 SHA512 6c6376dd822182bcf28f573c0f3b5c7e52f94f4b670ee7c88519232f51b443d52cd37cbe6c41b5b6e9cb0b93c1124246a989f6e6a2ae74935134135585118002 diff --git a/dev-libs/rccl/files/rccl-6.0.2-fix-version-check.patch b/dev-libs/rccl/files/rccl-6.0.2-fix-version-check.patch new file mode 100644 index 0000000000000..feff936129a2e --- /dev/null +++ b/dev-libs/rccl/files/rccl-6.0.2-fix-version-check.patch @@ -0,0 +1,15 @@ +There is no /usr/.info/version file in Gentoo +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -120,10 +120,7 @@ execute_process( + message(STATUS "hipcc version: ${hipcc_version_string}") + + ## Check for ROCm version +-execute_process( +- COMMAND bash "-c" "cat ${ROCM_PATH}/.info/version" +- OUTPUT_VARIABLE rocm_version_string +-) ++set(rocm_version_string "@rocm_version@") + string(REGEX MATCH "([0-9]+)\\.([0-9]+)\\.([0-9]+)" rocm_version_matches ${rocm_version_string}) + if (rocm_version_matches) + set(ROCM_MAJOR_VERSION ${CMAKE_MATCH_1}) diff --git a/dev-libs/rccl/metadata.xml b/dev-libs/rccl/metadata.xml index 70bb629584c98..6ce4f3700a3db 100644 --- a/dev-libs/rccl/metadata.xml +++ b/dev-libs/rccl/metadata.xml @@ -13,7 +13,11 @@ gentoo@holzke.net Wilfried Holzke + + lockalsash@gmail.com + Sv. Lockal + - ROCm-Developer-Tools/rccl + ROCm/rccl diff --git a/dev-libs/rccl/rccl-5.7.1.ebuild b/dev-libs/rccl/rccl-5.7.1.ebuild index 1ebf9619a55bb..846a21c20ca0c 100644 --- a/dev-libs/rccl/rccl-5.7.1.ebuild +++ b/dev-libs/rccl/rccl-5.7.1.ebuild @@ -66,7 +66,8 @@ src_configure() { } src_test() { - CHECK_AMDGPU + check_amdgpu + cd "${BUILD_DIR}" || die LD_LIBRARY_PATH="${BUILD_DIR}" edob test/rccl-UnitTests } diff --git a/dev-libs/rccl/rccl-6.1.1.ebuild b/dev-libs/rccl/rccl-6.1.1.ebuild new file mode 100644 index 0000000000000..35783657a50db --- /dev/null +++ b/dev-libs/rccl/rccl-6.1.1.ebuild @@ -0,0 +1,69 @@ +# 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/ROCm/rccl" +SRC_URI="https://github.com/ROCm/rccl/archive/rocm-${PV}.tar.gz -> rccl-${PV}.tar.gz" +S="${WORKDIR}/rccl-rocm-${PV}" + +LICENSE="BSD" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" +IUSE="test" + +RDEPEND=" + =dev-util/hip-6* + dev-util/rocm-smi:${SLOT}" +DEPEND="${RDEPEND} + sys-libs/binutils-libs" +BDEPEND=" + >=dev-build/cmake-3.22 + >=dev-build/rocm-cmake-5.7.1 + dev-util/hipify-clang:${SLOT} + test? ( dev-cpp/gtest )" + +RESTRICT="!test? ( test )" + +PATCHES=( + "${FILESDIR}/${PN}-6.0.2-fix-version-check.patch" +) + +src_prepare() { + cmake_src_prepare + + # https://reviews.llvm.org/D69582 - clang does not support parallel jobs + sed 's/-parallel-jobs=[0-9][0-9]//g' -i CMakeLists.txt || die + + # https://github.com/ROCm/rccl/issues/958 - fix AMDGPU_TARGETS + sed '/set(AMDGPU_TARGETS/s/ FORCE//' -i CMakeLists.txt || die + + # complete fix-version-check patch + sed "s/@rocm_version@/${PV}/" -i CMakeLists.txt || die +} + +src_configure() { + # 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 + cd "${BUILD_DIR}" || die + LD_LIBRARY_PATH="${BUILD_DIR}" edob test/rccl-UnitTests +}