Skip to content

[hipSYCL] [package list]

hipSYCL/0.9.4-cpeAMD-22.12-rocm-5.2.3 (hipSYCL-0.9.4-cpeAMD-22.12-rocm-5.2.3.eb)

This software is archived in the LUMI-EasyBuild-contrib GitHub repository as easybuild/easyconfigs/__archive__/h/hipSYCL/hipSYCL-0.9.4-cpeAMD-22.12-rocm-5.2.3.eb. The corresponding module would be hipSYCL/0.9.4-cpeAMD-22.12-rocm-5.2.3.

easyblock = 'CMakeMake'

name =    'hipSYCL'
version = '0.9.4'
versionsuffix = '-rocm-5.2.3'

homepage = 'https://hipsycl.github.io/'

whatis = [
    "Description: hipSYCL is a modern SYCL implementation targeting CPUs and GPUs, with a focus on leveraging existing toolchains such as CUDA or HIP"
]

description = """
hipSYCL is a modern SYCL implementation targeting CPUs and
GPUs, with a focus on leveraging existing toolchains such as CUDA or HIP.

It targets any CPU via OpenMP, NVIDIA GPUs via CUDA, AMD GPUs via HIP/ROCm and 
Intel GPUs via oneAPI Level Zero and SPIR-V (experimental). However, this 
module is for LUMI and does not contain the NVIDIA and Intel GPU support.
"""

toolchain = {'name': 'cpeAMD', 'version': '22.12'}
toolchainopts = {'verbose': False, 'openmp': True}

source_urls = ["https://github.com/illuhad/hipSYCL/archive/refs/tags/"]
sources =     ["v%(version)s.tar.gz"]

dependencies = [
    ('cray-python/3.10.10', EXTERNAL_MODULE),
    ('rocm/5.2.3', EXTERNAL_MODULE),
    ('gcc-mixed/12.2.0', EXTERNAL_MODULE),
]

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

configopts  = '-DROCM_PATH=$ROCM_PATH '
configopts += '-DCMAKE_C_COMPILER=${ROCM_PATH}/llvm/bin/clang '
configopts += '-DCMAKE_CXX_COMPILER=${ROCM_PATH}/llvm/bin/clang++ '
configopts += '-DWITH_ACCELERATED_CPU=OFF '
configopts += '-DWITH_CPU_BACKEND=OFF '
configopts += '-DWITH_CUDA_BACKEND=OFF '
configopts += '-DWITH_ROCM_BACKEND=ON '
configopts += '-DDEFAULT_GPU_ARCH=gfx90a '
configopts += '-DAMDGPU_TARGETS="gfx90a" '
configopts += '-DGPU_TARGETS="gfx90a" ' 
configopts += '-DBoost_NO_BOOST_CMAKE=TRUE '
configopts += '-DBoost_NO_SYSTEM_PATHS=TRUE '
configopts += '-DWITH_SSCP_COMPILER=OFF ' 
configopts += '-DROCM_CXX_FLAGS="--gcc-toolchain=$GCC_PATH/snos/" '
configopts += '-DLLVM_DIR=${ROCM_PATH}/llvm/lib/cmake/llvm/ '

sanity_check_paths = {
    'files': ['bin/syclcc-clang', 'include/sycl/sycl.hpp',
              'lib/hipSYCL/librt-backend-omp.%s' % SHLIB_EXT,
              'lib/hipSYCL/librt-backend-hip.%s' % SHLIB_EXT,
              'lib/libhipSYCL_clang.%s' % SHLIB_EXT,
              'lib/libhipSYCL-rt.%s' % SHLIB_EXT],
    'dirs': ['include/CL', 'include/hipSYCL', 'include/SYCL'],
}
sanity_check_commands = [
    'syclcc --help'
]

modextravars = {
    'HIPSYCL_TARGETS': 'hip:gfx90a',
}

moduleclass = 'compiler'

[hipSYCL] [package list]