forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Sv. Lockal <[email protected]> Signed-off-by: Sam James <[email protected]>
- Loading branch information
1 parent
56c6182
commit 377e9a4
Showing
2 changed files
with
151 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
DIST rocFFT-5.1.3.tar.gz 845470 BLAKE2B 86060ce4f8612869fedc5bc92ed6a5bb7fbc539b26c7f5ab0ded5406ab6c340f64116782285d040824e54557af87d9ddb6f907fd1550b80c3da903d3c1d5e5c0 SHA512 175402856bd4753e74ce14326569be99221e21d0ce675e007900f6982c53e1566ad0b060eec545e0f17ff4dc4811688cc1003dc986226205ee95ee6f22d1ca43 | ||
DIST rocFFT-5.7.1.tar.gz 1192841 BLAKE2B 58f880f7ff866f85af70666d17e8b1a3ac8e63e853520546f746d74cecd805687fd689367a09d2b1ec4e1059b44b858377dce362cd4cae91cb85aad7c3185c00 SHA512 48467589cb4bc1334a4074bacc6a726c850dc2a79ef82622301d61c4269fb81c0b2b9fce56d72bddca584d1797a8634d243a9a6b8cf943e687b2b0f5c931116f | ||
DIST rocFFT-6.1.1.tar.gz 1257210 BLAKE2B 01d383d32bb91a9cd1d68a3b1ef2c6d71b33a9a49389c558adca2673ce4a74aab9f0a420977d4f4d5e8b8e72f3d9bfe3a8019e137968b58984edac4f2e1a9146 SHA512 fb35b4d21b8bd598702f79707cdf19b7c30a9e62176f5f7a71b93076f904a98446dac4fa8bffcd7ba20ecb797aec727e730c8232de881a52d519c0c00a907bf9 | ||
DIST rocFFT-6.3.0.tar.gz 1386056 BLAKE2B 1aab60818328cb3a6448f6d555faf2db3b3839e2b3abd7a37cc48054e67321e7c98c319b2f078dfd351f56263c35731608ae65fca427fc3eaaf06c8410b99d89 SHA512 4ac2dac24e77a9d767fa08a9d393cb2c94bc2a8ca32cb75ea53dd83011989bd344ae3c11c9bfc557e71c645ebea34c53a5e050ce6810259f84287e6baf829c08 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,150 @@ | ||
# Copyright 1999-2024 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=8 | ||
|
||
PYTHON_COMPAT=( python3_{10..13} ) | ||
ROCM_VERSION=${PV} | ||
|
||
inherit cmake check-reqs edo multiprocessing python-r1 rocm | ||
|
||
DESCRIPTION="Next generation FFT implementation for ROCm" | ||
HOMEPAGE="https://github.com/ROCm/rocFFT" | ||
SRC_URI="https://github.com/ROCm/rocFFT/archive/rocm-${PV}.tar.gz -> rocFFT-${PV}.tar.gz" | ||
S="${WORKDIR}/rocFFT-rocm-${PV}" | ||
|
||
LICENSE="MIT" | ||
SLOT="0/$(ver_cut 1-2)" | ||
KEYWORDS="~amd64" | ||
|
||
# RDEPEND: perfscripts? dev-python/plotly[${PYTHON_USEDEP}] # currently masked by arch/amd64/x32/package.mask | ||
RDEPEND=" | ||
perfscripts? ( | ||
>=media-gfx/asymptote-2.61 | ||
dev-texlive/texlive-latex | ||
dev-tex/latexmk | ||
sys-apps/texinfo | ||
dev-python/sympy[${PYTHON_USEDEP}] | ||
dev-python/numpy[${PYTHON_USEDEP}] | ||
dev-python/scipy[${PYTHON_USEDEP}] | ||
dev-python/pandas[${PYTHON_USEDEP}] ) | ||
${PYTHON_DEPS}" | ||
|
||
DEPEND="=dev-util/hip-6* | ||
${PYTHON_DEPS} | ||
benchmark? ( | ||
dev-libs/boost | ||
sci-libs/hipRAND:${SLOT}[${ROCM_USEDEP}] | ||
) | ||
test? ( | ||
dev-cpp/gtest | ||
dev-libs/boost | ||
>=sci-libs/fftw-3 | ||
llvm-runtimes/openmp | ||
sci-libs/hipRAND:${SLOT}[${ROCM_USEDEP}] | ||
) | ||
" | ||
|
||
BDEPEND=" | ||
>=dev-build/cmake-3.22 | ||
dev-build/rocm-cmake | ||
dev-db/sqlite | ||
" | ||
|
||
CHECKREQS_DISK_BUILD="7G" | ||
|
||
IUSE="benchmark perfscripts test" | ||
REQUIRED_USE="perfscripts? ( benchmark ) ${PYTHON_REQUIRED_USE} ${ROCM_REQUIRED_USE}" | ||
RESTRICT="!test? ( test )" | ||
|
||
PATCHES=( | ||
"${FILESDIR}"/${PN}-5.7.1-fix-rocm-link-path.patch | ||
) | ||
|
||
required_mem() { | ||
if use test; then | ||
echo "52G" | ||
else | ||
if [[ -n "${AMDGPU_TARGETS}" ]]; then | ||
# count how many archs user specified in ${AMDGPU_TARGETS} | ||
local NARCH=$(($(awk -F";" '{print NF-1}' <<< "${AMDGPU_TARGETS}" || die)+1)) | ||
else | ||
# The default number of AMDGPU_TARGETS for rocFFT-4.3.0. May change in the future. | ||
local NARCH=7 | ||
fi | ||
echo "$(($(makeopts_jobs)*${NARCH}*25+2200))M" # A linear function estimating how much memory required | ||
fi | ||
} | ||
|
||
pkg_pretend() { | ||
return # leave the disk space check to pkg_setup phase | ||
} | ||
|
||
pkg_setup() { | ||
export CHECKREQS_MEMORY=$(required_mem) | ||
check-reqs_pkg_setup | ||
python_setup | ||
} | ||
|
||
src_prepare() { | ||
if use perfscripts; then | ||
pushd scripts/perf || die | ||
sed -e "/\/opt\/rocm/d" -e "/rocmversion/s,rocm_info.strip(),\"${PV}\"," -i perflib/specs.py || dir | ||
sed -e "/^top/,+1d" -i rocfft-perf suites.py || die | ||
sed -e "s,perflib,${PN}_perflib,g" -i rocfft-perf suites.py perflib/*.py || die | ||
sed -e "/^top = /s,__file__).*$,\"${EPREFIX}/usr/share/${PN}-perflib\")," \ | ||
-i perflib/pdf.py perflib/generators.py || die | ||
popd | ||
fi | ||
|
||
cmake_src_prepare | ||
} | ||
|
||
src_configure() { | ||
rocm_use_hipcc | ||
|
||
local mycmakeargs=( | ||
-DCMAKE_SKIP_RPATH=ON | ||
-DAMDGPU_TARGETS="$(get_amdgpu_flags)" | ||
-Wno-dev | ||
-DROCM_SYMLINK_LIBS=OFF | ||
-DBUILD_CLIENTS_TESTS=$(usex test ON OFF) | ||
-DBUILD_CLIENTS_BENCH=$(usex benchmark ON OFF) | ||
-DSQLITE_USE_SYSTEM_PACKAGE=ON | ||
-DBUILD_FILE_REORG_BACKWARD_COMPATIBILITY=OFF | ||
) | ||
|
||
cmake_src_configure | ||
} | ||
|
||
src_test() { | ||
check_amdgpu | ||
cd "${BUILD_DIR}/clients/staging" || die | ||
export LD_LIBRARY_PATH=${BUILD_DIR}/library/src/:${BUILD_DIR}/library/src/device | ||
edob ./rocfft-test | ||
} | ||
|
||
src_install() { | ||
cmake_src_install | ||
|
||
if use benchmark; then | ||
cd "${BUILD_DIR}"/clients/staging || die | ||
dobin dyna-rocfft-bench rocfft-bench | ||
dosym dyna-rocfft-bench /usr/bin/dyna-rocfft-rider | ||
dosym rocfft-bench /usr/bin/dyna-rocfft-rider | ||
|
||
if ! use perfscripts; then | ||
# prevent collision with dev-util/perf | ||
rm -rf "${ED}"/usr/bin/perf || die | ||
fi | ||
fi | ||
|
||
if use perfscripts; then | ||
cd "${S}"/scripts/perf || die | ||
python_foreach_impl python_doexe rocfft-perf | ||
python_moduleinto ${PN}_perflib | ||
python_foreach_impl python_domodule perflib/*.py | ||
insinto /usr/share/${PN}-perflib | ||
doins *.asy suites.py | ||
fi | ||
} |