summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYiyangWu <xgreenlandforwyy@gmail.com>2021-08-26 15:33:50 +0800
committerBenda Xu <heroxbd@gentoo.org>2021-11-30 14:32:54 +0800
commit02dc3ee11c5815bec6c60fe88285d8d446f7263f (patch)
tree0636f8c1911a11782fb53913349368e2c4e9a74a /sci-libs
parentmedia-fonts/fira-code: add 6 (diff)
downloadgentoo-02dc3ee11c5815bec6c60fe88285d8d446f7263f.tar.gz
gentoo-02dc3ee11c5815bec6c60fe88285d8d446f7263f.tar.bz2
gentoo-02dc3ee11c5815bec6c60fe88285d8d446f7263f.zip
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>
Diffstat (limited to 'sci-libs')
-rw-r--r--sci-libs/hipFFT/Manifest2
-rw-r--r--sci-libs/hipFFT/files/hipFFT-4.3.0-add-complex-header.patch11
-rw-r--r--sci-libs/hipFFT/files/hipFFT-4.3.0-gentoo-install-locations.patch42
-rw-r--r--sci-libs/hipFFT/files/hipFFT-4.3.0-remove-git-dependency.patch33
-rw-r--r--sci-libs/hipFFT/hipFFT-4.3.0.ebuild75
-rw-r--r--sci-libs/hipFFT/metadata.xml22
6 files changed, 185 insertions, 0 deletions
diff --git a/sci-libs/hipFFT/Manifest b/sci-libs/hipFFT/Manifest
new file mode 100644
index 000000000000..c756438b9383
--- /dev/null
+++ b/sci-libs/hipFFT/Manifest
@@ -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
diff --git a/sci-libs/hipFFT/files/hipFFT-4.3.0-add-complex-header.patch b/sci-libs/hipFFT/files/hipFFT-4.3.0-add-complex-header.patch
new file mode 100644
index 000000000000..200481788b95
--- /dev/null
+++ b/sci-libs/hipFFT/files/hipFFT-4.3.0-add-complex-header.patch
@@ -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>
+
diff --git a/sci-libs/hipFFT/files/hipFFT-4.3.0-gentoo-install-locations.patch b/sci-libs/hipFFT/files/hipFFT-4.3.0-gentoo-install-locations.patch
new file mode 100644
index 000000000000..891774eb5a47
--- /dev/null
+++ b/sci-libs/hipFFT/files/hipFFT-4.3.0-gentoo-install-locations.patch
@@ -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
diff --git a/sci-libs/hipFFT/files/hipFFT-4.3.0-remove-git-dependency.patch b/sci-libs/hipFFT/files/hipFFT-4.3.0-remove-git-dependency.patch
new file mode 100644
index 000000000000..563da3085ab9
--- /dev/null
+++ b/sci-libs/hipFFT/files/hipFFT-4.3.0-remove-git-dependency.patch
@@ -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( )
diff --git a/sci-libs/hipFFT/hipFFT-4.3.0.ebuild b/sci-libs/hipFFT/hipFFT-4.3.0.ebuild
new file mode 100644
index 000000000000..5f7d3a95f58a
--- /dev/null
+++ b/sci-libs/hipFFT/hipFFT-4.3.0.ebuild
@@ -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
+}
diff --git a/sci-libs/hipFFT/metadata.xml b/sci-libs/hipFFT/metadata.xml
new file mode 100644
index 000000000000..7839d343e80f
--- /dev/null
+++ b/sci-libs/hipFFT/metadata.xml
@@ -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>