Skip to content

[HeFFTe] [package list]

HeFFTe/2.4.1-cpeAMD-25.03-rocm (HeFFTe-2.4.1-cpeAMD-25.03-rocm.eb)

Install with the EasyBuild-user module:

eb HeFFTe-2.4.1-cpeAMD-25.03-rocm.eb -r
To access module help after installation and get reminded for which stacks and partitions the module is installed, use module spider HeFFTe/2.4.1-cpeAMD-25.03-rocm.

EasyConfig:

easyblock = 'CMakeMake'

local_HeFFTe_version =       '2.4.1'         # https://github.com/icl-utk-edu/heffte/releases

name =          'HeFFTe'
version =       local_HeFFTe_version
versionsuffix = '-rocm'

homepage = 'https://icl.utk.edu/fft'

whatis = [
    'Description: HeFFTe - Highly Efficient FFT for Exascale (HeFFTe) library'
]

description = """
The Highly Efficient FFT for Exascale (heFFTe) library is being developed as
part of the Exascale Computing Project (ECP), which is a joint project of the
U.S. Department of Energy's Office of Science and National Nuclear Security
Administration (NNSA). HeFFTe delivers algorithms for distributed fast-Fourier
transforms in on a heterogeneous systems, targeting the upcoming exascale 
machines.
"""

docurls = [
    'Web-based documentation on https://icl-utk-edu.github.io/heffte/',
]

toolchain = {'name': 'cpeAMD', 'version': '25.03'}

sources = {
        'download_filename': 'v%(version)s.tar.gz',
        'filename':          SOURCELOWER_TAR_GZ,
        'source_urls':       ['https://github.com/icl-utk-edu/heffte/archive/refs/tags/']
}

builddependencies = [
    ('buildtools', '%(toolchain_version)s', '', True), 
]

dependencies = [
    ('cray-python', EXTERNAL_MODULE),
    ('rocm',        EXTERNAL_MODULE),
]

build_shared_libs = True

configopts = ' '.join([
    '-D CMAKE_BUILD_TYPE=Release',
    '-D CMAKE_INSTALL_LIBDIR=lib',
    '-D Heffte_ENABLE_AVX=ON',
    '-D Heffte_ENABLE_ROCM=ON',
    '-D CMAKE_CXX_COMPILER=hipcc',
    '-D CMAKE_HIP_FLAGS="--offload-arch=gfx90a"',
    '-D MPI_CXX_COMPILER=CC'
]) 

postinstallcmds = [
    'mkdir -p %(installdir)s/share/licenses/%(name)s',
    'cd ../%(namelower)s-%(version)s && cp LICENSE README.md %(installdir)s/share/licenses/%(name)s',   
]

sanity_check_paths = {
    'files': ['lib/libheffte.%s' % SHLIB_EXT, 'share/licenses/HeFFTe/LICENSE'],
    'dirs':  ['include', 'lib/cmake/Heffte', 'share/heffte/examples'],
}

moduleclass = 'lib'

[HeFFTe] [package list]