Kokkos/4.5.1-cpeGNU-24.03-rocm (Kokkos-4.5.1-cpeGNU-24.03-rocm.eb)
Install with the EasyBuild-user module:
To access module help after installation and get reminded for which stacks and partitions the module is installed, usemodule spider Kokkos/4.5.1-cpeGNU-24.03-rocm
.
EasyConfig:
#DOC This version offers only the serial host backend and not the OpenMP one for CPU, to avoid
#DOC a mismatch between the GNU and ROCm OpenMP libraries.
easyblock = 'CMakeMake'
name = 'Kokkos'
version = '4.5.01'
versionsuffix = '-rocm'
homepage = 'https://kokkos.org/'
whatis = [
"Description: Kokkos C++ Performance Portability Programming Ecosystem: The Programming Model - Parallel Execution and Memory Abstraction"
]
description = """
Kokkos C++ Performance Portability Programming Ecosystem: The Programming Model - Parallel Execution and Memory Abstraction
"""
# GNU toolchain recipe serves serial host backend only to avoid OpenMP runtime library mismatch between the toolchain and ROCm
toolchain = {'name': 'cpeGNU', 'version': '24.03'}
toolchainopts = {'verbose': False, 'openmp': True}
sources = [{
'filename': '%(name)s-%(version)s.tar.gz',
'git_config': {
'url': 'https://github.com/kokkos',
'repo_name': '%(namelower)s',
'commit': '%(version)s',
}
}]
builddependencies = [
('buildtools', '%(toolchain_version)s', '', True),
]
dependencies = [
('rocm', EXTERNAL_MODULE),
]
preconfigopts = 'module unload craype-accel-amd-gfx90a && '
configopts = '-D CMAKE_CXX_COMPILER=hipcc '
configopts += '-D CMAKE_CXX_FLAGS="-fPIC -g --offload-arch=gfx90a" '
configopts += '-D BUILD_SHARED_LIBS=ON '
configopts += '-D Kokkos_ENABLE_ROCM=ON '
configopts += '-D Kokkos_ENABLE_HIP=ON '
configopts += '-D Kokkos_ENABLE_SERIAL=ON '
configopts += '-D Kokkos_ARCH_ZEN3=ON '
configopts += '-D Kokkos_ARCH_AMD_GFX90A=ON '
configopts += '-D Kokkos_ENABLE_DEPRECATION_WARNINGS=ON '
configopts += '-D Kokkos_ENABLE_HIP_RELOCATABLE_DEVICE_CODE=OFF '
configopts += '-D Kokkos_ENABLE_HIP_MULTIPLE_KERNEL_INSTANTIATIONS=ON '
prebuildopts = 'module unload craype-accel-amd-gfx90a && '
sanity_check_paths = {
'files': ['lib/libkokkoscore.%s' % SHLIB_EXT,
'lib/libkokkoscontainers.%s' % SHLIB_EXT,
'include/KokkosCore_config.h'],
'dirs': ['lib', 'include'],
}
moduleclass = 'lib'