mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
sci-libs/hipFFT: ROCm FFT marshalling library
hipFFT is the front end of rocFFT, and is dependency of ROCm supported math/DL frameworks like pytorch. Bug: https://bugs.gentoo.org/705712 Closes: https://github.com/gentoo/gentoo/pull/22804 Package-Manager: Portage-3.0.20, Repoman-3.0.3 Signed-off-by: Yiyang Wu <xgreenlandforwyy@gmail.com> Signed-off-by: Benda Xu <heroxbd@gentoo.org>
This commit is contained in:
2
sci-libs/hipFFT/Manifest
Normal file
2
sci-libs/hipFFT/Manifest
Normal file
@@ -0,0 +1,2 @@
|
||||
DIST hipFFT-rocm-4.3.0.tar.gz 83355 BLAKE2B ee99b4cb685cbb846084d8a7c77982d75cf0d1597f9270260284bb26ae00702a31dd4d5ad9ae1885ab631c390f65c0f584f302be189701ba4f0dd9061b1bba5a SHA512 0d3100b054ff485eae06b13b8c568626b8e3a3286f36012c5a5f9bb4918e03c30c687a2714049bd797f6c3973f1730ad0936f02ad044cde1663c9c5750bbcf40
|
||||
DIST rocFFT-4.3.0.tar.gz 840748 BLAKE2B 236a5faa930751d35e501a9a32ecc8b4075448ef21a0ffb0bb7ec04f4ed1cb67b908aa153b5b424e0823d3e306cf375d7c01a77d687220ed79de6d374037e003 SHA512 765d41e4018a04a53e847c03de80eec830d3e8766187fb8cb493624afa2673175347c16e6eeeebd4ad7d88bb866e58f7e572708f22238723c710b98565a0cd3d
|
||||
11
sci-libs/hipFFT/files/hipFFT-4.3.0-add-complex-header.patch
Normal file
11
sci-libs/hipFFT/files/hipFFT-4.3.0-add-complex-header.patch
Normal file
@@ -0,0 +1,11 @@
|
||||
diff --color -uprN orig/clients/rider/rider.cpp hipFFT-rocm-4.3.0/clients/rider/rider.cpp
|
||||
--- orig/clients/rider/rider.cpp 2021-08-26 15:05:32.267279103 +0800
|
||||
+++ hipFFT-rocm-4.3.0/clients/rider/rider.cpp 2021-08-26 15:05:48.795279212 +0800
|
||||
@@ -22,6 +22,7 @@
|
||||
#include <cstddef>
|
||||
#include <iostream>
|
||||
#include <numeric>
|
||||
+#include <complex>
|
||||
#include <random>
|
||||
#include <sstream>
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
diff --color -uprN orig/CMakeLists.txt hipFFT-rocm-4.3.0/CMakeLists.txt
|
||||
--- orig/CMakeLists.txt 2021-08-26 14:38:31.051268348 +0800
|
||||
+++ hipFFT-rocm-4.3.0/CMakeLists.txt 2021-08-26 14:38:42.655268425 +0800
|
||||
@@ -143,7 +143,7 @@ endif( )
|
||||
add_subdirectory( library )
|
||||
|
||||
# force library install path to lib (CentOS 7 defaults to lib64)
|
||||
-set(CMAKE_INSTALL_LIBDIR "lib" CACHE INTERNAL "Installation directory for libraries" FORCE)
|
||||
+set(CMAKE_INSTALL_LIBDIR "lib64" CACHE INTERNAL "Installation directory for libraries" FORCE)
|
||||
|
||||
# Build clients of the library
|
||||
if( BUILD_CLIENTS )
|
||||
diff --color -uprN orig/library/CMakeLists.txt hipFFT-rocm-4.3.0/library/CMakeLists.txt
|
||||
--- orig/library/CMakeLists.txt 2021-08-26 14:38:31.051268348 +0800
|
||||
+++ hipFFT-rocm-4.3.0/library/CMakeLists.txt 2021-08-26 14:39:21.919268686 +0800
|
||||
@@ -77,7 +77,7 @@ target_include_directories(hipfft
|
||||
PUBLIC $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/library/include>
|
||||
$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include>
|
||||
$<BUILD_INTERFACE:${HIP_INCLUDE_DIRS}>
|
||||
- $<INSTALL_INTERFACE:include>
|
||||
+ $<INSTALL_INTERFACE:include/hipfft>
|
||||
)
|
||||
|
||||
if(BUILD_WITH_LIB STREQUAL "CUDA")
|
||||
@@ -112,13 +112,13 @@ if( ROCM_FOUND )
|
||||
rocm_install_targets( TARGETS hipfft
|
||||
INCLUDE
|
||||
${CMAKE_SOURCE_DIR}/library/include
|
||||
- ${CMAKE_BINARY_DIR}/include
|
||||
- PREFIX hipfft )
|
||||
+ ${CMAKE_BINARY_DIR}/include )
|
||||
+ #PREFIX hipfft )
|
||||
rocm_export_targets( TARGETS hip::hipfft
|
||||
- PREFIX hipfft
|
||||
+ #PREFIX hipfft
|
||||
DEPENDS PACKAGE hip
|
||||
NAMESPACE hip:: )
|
||||
- rocm_install_symlink_subdir( hipfft )
|
||||
+ #rocm_install_symlink_subdir( hipfft )
|
||||
|
||||
|
||||
# During transition to standalone hipFFT repository, don't install
|
||||
@@ -0,0 +1,33 @@
|
||||
diff --color -uprN orig/cmake/dependencies.cmake hipFFT-rocm-4.3.0/cmake/dependencies.cmake
|
||||
--- orig/cmake/dependencies.cmake 2021-08-26 14:48:57.867272506 +0800
|
||||
+++ hipFFT-rocm-4.3.0/cmake/dependencies.cmake 2021-08-26 14:51:02.571273334 +0800
|
||||
@@ -21,9 +21,6 @@
|
||||
#
|
||||
# #############################################################################
|
||||
|
||||
-# Git
|
||||
-find_package(Git REQUIRED)
|
||||
-
|
||||
# HIP
|
||||
if(NOT BUILD_WITH_LIB STREQUAL "CUDA")
|
||||
find_package(hip REQUIRED)
|
||||
diff --color -uprN orig/CMakeLists.txt hipFFT-rocm-4.3.0/CMakeLists.txt
|
||||
--- orig/CMakeLists.txt 2021-08-26 14:48:57.867272506 +0800
|
||||
+++ hipFFT-rocm-4.3.0/CMakeLists.txt 2021-08-26 14:49:15.247272622 +0800
|
||||
@@ -117,16 +117,6 @@ message(STATUS "BUILD_WITH_COMPILER = "
|
||||
include(cmake/dependencies.cmake)
|
||||
|
||||
if( BUILD_CLIENTS_TESTS )
|
||||
- if( GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git" )
|
||||
- message(STATUS "rocFFT submodule update")
|
||||
- execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive
|
||||
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
- RESULT_VARIABLE GIT_SUBMOD_RESULT)
|
||||
- if( NOT GIT_SUBMOD_RESULT EQUAL "0" )
|
||||
- message(FATAL_ERROR "git submodule update --init --recursive failed with ${GIT_SUBMOD_RESULT}, please checkout submodules manually.")
|
||||
- endif( )
|
||||
- endif( )
|
||||
-
|
||||
if( NOT EXISTS "${PROJECT_SOURCE_DIR}/rocFFT/CMakeLists.txt" )
|
||||
message(FATAL_ERROR "The rocFFT submodule is not present! Please update git submodules and try again.")
|
||||
endif( )
|
||||
75
sci-libs/hipFFT/hipFFT-4.3.0.ebuild
Normal file
75
sci-libs/hipFFT/hipFFT-4.3.0.ebuild
Normal file
@@ -0,0 +1,75 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit cmake flag-o-matic
|
||||
|
||||
DESCRIPTION="CU / ROCM agnostic hip FFT implementation"
|
||||
HOMEPAGE="https://github.com/ROCmSoftwarePlatform/hipFFT"
|
||||
SRC_URI="https://github.com/ROCmSoftwarePlatform/hipFFT/archive/refs/tags/rocm-${PV}.tar.gz -> hipFFT-rocm-${PV}.tar.gz
|
||||
test? ( https://github.com/ROCmSoftwarePlatform/rocFFT/archive/rocm-${PV}.tar.gz -> rocFFT-${PV}.tar.gz )"
|
||||
|
||||
LICENSE="MIT"
|
||||
KEYWORDS="~amd64"
|
||||
IUSE="benchmark test"
|
||||
SLOT="0/$(ver_cut 1-2)"
|
||||
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="dev-util/hip:${SLOT}
|
||||
sci-libs/rocFFT:${SLOT}"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="
|
||||
test? (
|
||||
dev-cpp/gtest
|
||||
dev-libs/boost
|
||||
)"
|
||||
|
||||
S="${WORKDIR}/hipFFT-rocm-${PV}"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-4.3.0-gentoo-install-locations.patch"
|
||||
"${FILESDIR}/${PN}-4.3.0-remove-git-dependency.patch"
|
||||
"${FILESDIR}/${PN}-4.3.0-add-complex-header.patch"
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
use test && rmdir rocFFT && ln -s ../rocFFT-rocm-${PV} rocFFT
|
||||
eapply_user
|
||||
cmake_src_prepare
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# Grant access to the device
|
||||
addwrite /dev/kfd
|
||||
addpredict /dev/dri/
|
||||
|
||||
local mycmakeargs=(
|
||||
-DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr"
|
||||
-DCMAKE_INSTALL_INCLUDEDIR="include/hipfft"
|
||||
-DCMAKE_SKIP_RPATH=ON
|
||||
-DBUILD_CLIENTS_TESTS=$(usex test ON OFF)
|
||||
-DBUILD_CLIENTS_RIDER=$(usex benchmark ON OFF)
|
||||
${AMDGPU_TARGETS+-DAMDGPU_TARGETS="${AMDGPU_TARGETS}"}
|
||||
-D__skip_rocmclang="ON" ## fix cmake-3.21 configuration issue caused by officialy support programming language "HIP"
|
||||
)
|
||||
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_test () {
|
||||
addwrite /dev/kfd
|
||||
addpredict /dev/dri
|
||||
cd "${BUILD_DIR}/clients/staging" || die
|
||||
einfo "Running hipfft-test"
|
||||
LD_LIBRARY_PATH=${BUILD_DIR}/library ./hipfft-test || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake_src_install
|
||||
if use benchmark; then
|
||||
cd "${BUILD_DIR}/clients/staging" || die
|
||||
dobin hipfft-rider
|
||||
fi
|
||||
}
|
||||
22
sci-libs/hipFFT/metadata.xml
Normal file
22
sci-libs/hipFFT/metadata.xml
Normal file
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="project">
|
||||
<email>sci@gentoo.org</email>
|
||||
<name>Gentoo Science Project</name>
|
||||
</maintainer>
|
||||
<maintainer type="person" proxied="yes">
|
||||
<email>gentoo@holzke.net</email>
|
||||
<name>Wilfried Holzke</name>
|
||||
</maintainer>
|
||||
<maintainer type="person" proxied="yes">
|
||||
<email>xgreenlandforwyy@gmail.com</email>
|
||||
<name>Yiyang Wu</name>
|
||||
</maintainer>
|
||||
<upstream>
|
||||
<remote-id type="github">ROCmSoftwarePlatform/hipFFT</remote-id>
|
||||
</upstream>
|
||||
<use>
|
||||
<flag name="benchmark">Build and install benchmark programs hipfft-rider.</flag>
|
||||
</use>
|
||||
</pkgmetadata>
|
||||
Reference in New Issue
Block a user