Skip to content

[Kokkos] [package list]

Kokkos/4.5.1-cpeGNU-24.03-rocm (Kokkos-4.5.1-cpeGNU-24.03-rocm.eb)

Install with the EasyBuild-user module:

eb Kokkos-4.5.1-cpeGNU-24.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 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'

[Kokkos] [package list]