diff --git a/Custom_EasyBlocks/llvm_amdgpu.py b/Custom_EasyBlocks/llvm_amdgpu.py new file mode 100644 index 0000000000000000000000000000000000000000..ff902a178d36bcd7f7917d67b3496284de740260 --- /dev/null +++ b/Custom_EasyBlocks/llvm_amdgpu.py @@ -0,0 +1,101 @@ +## +# Copyright 2020-2022 Ghent University +# +# This file is part of EasyBuild, +# originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), +# with support of Ghent University (http://ugent.be/hpc), +# the Flemish Supercomputer Centre (VSC) (https://www.vscentrum.be), +# Flemish Research Foundation (FWO) (http://www.fwo.be/en) +# and the Department of Economy, Science and Innovation (EWI) (http://www.ewi-vlaanderen.be/en). +# +# https://github.com/easybuilders/easybuild +# +# EasyBuild is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation v2. +# +# EasyBuild is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with EasyBuild. If not, see <http://www.gnu.org/licenses/>. +## +""" +EasyBuild support for building and installing LLVM, implemented as an easyblock + +@author: Simon Branford (University of Birmingham) +""" +from easybuild.easyblocks.clang import CLANG_TARGETS, DEFAULT_TARGETS_MAP +from easybuild.easyblocks.generic.cmakemake import CMakeMake +from easybuild.framework.easyconfig import CUSTOM +from easybuild.tools.build_log import EasyBuildError +from easybuild.tools.modules import get_software_root +from easybuild.tools.systemtools import get_cpu_architecture +from distutils.version import LooseVersion + + +class EB_LLVM_AMDGPU(CMakeMake): + """ + Support for building and installing LLVM + """ + + @staticmethod + def extra_options(): + extra_vars = CMakeMake.extra_options() + extra_vars.update({ + 'build_targets': [None, "Build targets for LLVM (host architecture if None). Possible values: " + + ', '.join(CLANG_TARGETS), CUSTOM], + 'enable_rtti': [True, "Enable RTTI", CUSTOM], + }) + + return extra_vars + + def __init__(self, *args, **kwargs): + """Initialize LLVM-specific variables.""" + super(EB_LLVM_AMDGPU, self).__init__(*args, **kwargs) + + self.build_shared = self.cfg.get('build_shared_libs', False) + if LooseVersion(self.version) >= LooseVersion('14'): + self.cfg['start_dir'] = '%s-%s.src' % (self.name.lower(), self.version) + # avoid using -DBUILD_SHARED_LIBS directly, use -DLLVM_{BUILD,LINK}_LLVM_DYLIB flags instead + if self.build_shared: + self.cfg['build_shared_libs'] = None + + def configure_step(self): + """ + Install extra tools in bin/; enable zlib if it is a dep; optionally enable rtti; and set the build target + """ + if LooseVersion(self.version) >= LooseVersion('14'): + self.cfg.update('configopts', '-DLLVM_INCLUDE_BENCHMARKS=OFF') + if self.build_shared: + self.cfg.update('configopts', '-DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON') + + self.cfg.update('configopts', '-DLLVM_INSTALL_UTILS=ON') + + if get_software_root('zlib'): + self.cfg.update('configopts', '-DLLVM_ENABLE_ZLIB=ON') + + if self.cfg["enable_rtti"]: + self.cfg.update('configopts', '-DLLVM_ENABLE_RTTI=ON') + + build_targets = self.cfg['build_targets'] + if build_targets is None: + arch = get_cpu_architecture() + try: + default_targets = DEFAULT_TARGETS_MAP[arch][:] + self.cfg['build_targets'] = build_targets = default_targets + self.log.debug("Using %s as default build targets for CPU architecture %s.", default_targets, arch) + except KeyError: + raise EasyBuildError("No default build targets defined for CPU architecture %s.", arch) + + unknown_targets = [target for target in build_targets if target not in CLANG_TARGETS+['AMDGPU']] + + if unknown_targets: + raise EasyBuildError("Some of the chosen build targets (%s) are not in %s.", + ', '.join(unknown_targets), ', '.join(CLANG_TARGETS+['AMDGPU'])) + + self.cfg.update('configopts', '-DLLVM_TARGETS_TO_BUILD="%s"' % ';'.join(build_targets)) + + super(EB_LLVM_AMDGPU, self).configure_step() diff --git a/Golden_Repo/f/fmt/fmt-8.1.1-GCCcore-11.2.0.eb b/Golden_Repo/f/fmt/fmt-8.1.1-GCCcore-11.2.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..188c4dbbb689b93bfd0a6409a022c85146523052 --- /dev/null +++ b/Golden_Repo/f/fmt/fmt-8.1.1-GCCcore-11.2.0.eb @@ -0,0 +1,30 @@ +easyblock = 'CMakeMake' + +name = 'fmt' +version = '8.1.1' + +homepage = 'http://fmtlib.net/' +description = "fmt (formerly cppformat) is an open-source formatting library." + +site_contacts = 's.nassyr@fz-juelich.de' + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/fmtlib/fmt/releases/download/%(version)s/'] +sources = ['fmt-%(version)s.zip'] +checksums = ['23778bad8edba12d76e4075da06db591f3b0e3c6c04928ced4a7282ca3400e5d'] + +builddependencies = [ + ('CMake', '3.21.1', '', SYSTEM), + ('binutils', '2.37') +] + +separate_build_dir = True + +sanity_check_paths = { + 'files': ['lib/libfmt.a'], + 'dirs': ['include/fmt', 'lib/cmake'], +} + +moduleclass = 'lib' diff --git a/Overlays/jureca_mi200_overlay/b/Blaze/Blaze-3.8.1-gomkl-2021b.eb b/Overlays/jureca_mi200_overlay/b/Blaze/Blaze-3.8.1-gomkl-2021b.eb new file mode 100644 index 0000000000000000000000000000000000000000..3d093603a0310243406a6e3e9f01434c289369f7 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/b/Blaze/Blaze-3.8.1-gomkl-2021b.eb @@ -0,0 +1,39 @@ +# Stepan Nassyr, JSC/Forschungszentrum Juelich GmbH, s.nassyr@fz-juelich.de, 2022/06 +easyblock = 'CMakeNinja' + +name = 'Blaze' +version = '3.8.1' + +homepage = 'https://bitbucket.org/blaze-lib/blaze' +description = """Blaze is an open-source, high-performance C++ math library for dense and sparse arithmetic.""" + +toolchain = {'name': 'gomkl', 'version': '2021b'} + +source_urls = ['https://bitbucket.org/blaze-lib/blaze/get'] +sources = ['v%(version)s.tar.gz'] +checksums = ['4ad32a786c45285a66a1375b39e65908e604d10596f5863c63b7ef9a13808187'] + +builddependencies = [ + ('CMake', '3.23.1'), + ('Ninja', '1.10.2'), + ('binutils', '2.37'), +] +# dependencies = [ +# ('imkl', '2021.4.0', '', 'gompi-2021b'), +# ] + +# BLAZE_CACHE_SIZE is calculated from /sys/devices/system/cpu/cpu0/cache/index3/size +configopts = (" -DBLAZE_CACHE_SIZE=33554432 " + " -DBLAZE_BLAS_MODE=ON " + " -DBLAZE_BLAS_IS_64BIT=1 " + " -DBLAZE_BLAS_IS_PARALLEL=1 " + " -DBLAZE_BLAS_INCLUDE_FILE=\"<mkl_cblas.h>\" ") + +sanity_check_paths = { + 'files': [ + ['include/blaze/Blaze.h'] + ], + 'dirs': ['share/blaze/cmake', 'include/blaze'], +} + +moduleclass = 'lib' diff --git a/Overlays/jureca_mi200_overlay/b/babeltrace/babeltrace-1.5.8-GCCcore-11.2.0.eb b/Overlays/jureca_mi200_overlay/b/babeltrace/babeltrace-1.5.8-GCCcore-11.2.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..006b04ed1a0826c681db55853fb5356efab42543 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/b/babeltrace/babeltrace-1.5.8-GCCcore-11.2.0.eb @@ -0,0 +1,52 @@ +easyblock = 'ConfigureMake' + +name = 'babeltrace' +version = '1.5.8' + +homepage = 'https://babeltrace.org/' +description = "Babeltrace /ˈbæbəltreɪs/ is an open-source trace manipulation toolkit. " + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} +toolchainopts = {'optarch': True, 'pic': True} + +github_account = 'efficios' +source_urls = [GITHUB_SOURCE] +sources = [{ + 'download_filename': 'v%(version)s.tar.gz', + 'filename': SOURCELOWER_TAR_GZ +}] +checksums = ['e76fcc4a4fd1001281ee90532a078e9ccc2f71673966d28dbebb05eca8a0febe'] + +builddependencies = [ + ('flex', '2.6.4'), + ('Bison', '3.7.6'), + ('Autotools', '20210726'), + ('pkg-config', '0.29.2'), +] + +dependencies = [ + ('popt', '1.18', '', SYSTEM), + ('Python', '3.9.6'), + ('elfutils', '0.185'), + ('GLib', '2.69.1'), + ('SWIG', '4.0.2'), +] + +preconfigopts = "autoreconf --install; PYTHON=$EBROOTPYTHON/bin/python3 PYTHON_CONFIG=$EBROOTPYTHON/bin/python3-config " +configopts = "--enable-python-bindings --disable-man-pages" + +local_libs = ["libbabeltrace", "libbabeltrace-ctf", "libbabeltrace-ctf-metadata", + "libbabeltrace-ctf-text", "libbabeltrace-dummy", "libbabeltrace-lttng-live"] +sanity_check_paths = { + 'files': ["bin/babeltrace"] + + ["lib/%s.a" % library for library in local_libs] + + ["lib/%s.%s" % (library, SHLIB_EXT) for library in local_libs] + + ["include/babeltrace/babeltrace.h"], + 'dirs': ["lib/pkgconfig"], +} + +modextrapaths = { + 'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages'] +} + +moduleclass = 'tools' diff --git a/Overlays/jureca_mi200_overlay/c/CppHeaderParser/CppHeaderParser-2.7.4-GCCcore-11.2.0.eb b/Overlays/jureca_mi200_overlay/c/CppHeaderParser/CppHeaderParser-2.7.4-GCCcore-11.2.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..b590bc839c48d8894ada3c27d857492fb1f6b899 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/c/CppHeaderParser/CppHeaderParser-2.7.4-GCCcore-11.2.0.eb @@ -0,0 +1,33 @@ +easyblock = 'PythonPackage' + +name = 'CppHeaderParser' +version = '2.7.4' + +homepage = 'http://senexcanis.com/open-source/cppheaderparser/' +description = """CppHeaderParser is a pure python C++ header parser that parses C++ headers + and creates a data structure that you can use to do many types of things.""" + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = [ + # CppHeaderParser-2.7.4.tar.gz + '382b30416d95b0a5e8502b214810dcac2a56432917e2651447d3abe253e3cc42', +] + +builddependencies = [('binutils', '2.37')] +dependencies = [('Python', '3.9.6')] + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +options = {'modulename': 'CppHeaderParser'} + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +moduleclass = 'tools' diff --git a/Overlays/jureca_mi200_overlay/g/gfxreconstruct/gfxreconstruct-1.3.213-GCCcore-11.2.0.eb b/Overlays/jureca_mi200_overlay/g/gfxreconstruct/gfxreconstruct-1.3.213-GCCcore-11.2.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..f8577c86a320864bb760e3a144636dafad2e3dce --- /dev/null +++ b/Overlays/jureca_mi200_overlay/g/gfxreconstruct/gfxreconstruct-1.3.213-GCCcore-11.2.0.eb @@ -0,0 +1,53 @@ +easyblock = 'CMakeNinja' + +name = 'gfxreconstruct' +version = '1.3.213' + +homepage = 'https://www.khronos.org/registry/SPIR-V/' +description = """Graphics API Capture and Replay Tools for Reconstructing Graphics Application Behavior """ + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} + +github_account = 'LunarG' + +source_urls = [GITHUB_SOURCE] +sources = [{ + 'filename': SOURCELOWER_TAR_GZ, + # 'download_filename': 'sdk-%(version)s.tar.gz' + 'download_filename': '365757b47e32cf8346c00300fc82deb47969b76f.tar.gz' +}] +checksums = ['1a72841d57cb81efea0a47797c6d4d64be449ba304e471341137d3a90a94917a'] + +builddependencies = [ + ('CMake', '3.21.1'), + ('Ninja', '1.10.2'), +] + +dependencies = [ + ('Vulkan-Headers', version), + ('Vulkan-Loader', version), +] + +configopts = '-DVULKAN_HEADER=$EBROOTVULKANMINHEADERS/include/vulkan/vulkan_core.h' + +modextrapaths = { + 'VK_LAYER_PATH': ['share/vulkan/explicit_layer.d/'] +} + + +sanity_check_paths = { + 'files': [ + 'bin/gfxrecon-info', + 'bin/gfxrecon-compress', + 'bin/gfxrecon-capture.py', + 'bin/gfxrecon.py', + 'bin/gfxrecon-extract', + 'bin/gfxrecon-optimize', + 'bin/gfxrecon-replay', + 'share/vulkan/explicit_layer.d/VkLayer_gfxreconstruct.json', + 'lib64/libVkLayer_gfxreconstruct.so', + ], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/Overlays/jureca_mi200_overlay/g/glslang/glslang-1.3.213-GCCcore-11.2.0.eb b/Overlays/jureca_mi200_overlay/g/glslang/glslang-1.3.213-GCCcore-11.2.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..6ae18fbca8cb76df1ba57ee47070476fb7be9815 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/g/glslang/glslang-1.3.213-GCCcore-11.2.0.eb @@ -0,0 +1,41 @@ +easyblock = 'CMakeNinja' + +name = 'glslang' +version = '1.3.213' + +homepage = 'https://github.com/KhronosGroup/glslang' +description = """Khronos-reference front end for GLSL/ESSL, partial front end for HLSL, and a SPIR-V generator.""" + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} + +github_account = 'KhronosGroup' + +source_urls = [GITHUB_SOURCE] +sources = [{ + 'filename': SOURCELOWER_TAR_GZ, + 'download_filename': '2439e6d56dff55d1c9e0fc2dbfe70a0f44c26832.tar.gz' +}] +checksums = ['f2fffa32a2e7744123b5d7a50df354854c2a5d6ca779a1525dbb35e12a74abcb'] + +builddependencies = [ + ('CMake', '3.21.1'), + ('Python', '3.9.6'), + ('Ninja', '1.10.2'), +] + +sanity_check_paths = { + 'files': [ + 'include/glslang/Include/glslang_c_interface.h', + 'bin/glslangValidator', + 'bin/spirv-remap', + 'lib/libSPVRemapper.a', + 'lib/libglslang-default-resource-limits.a', + 'lib/libOSDependent.a', + 'lib/libHLSL.a', + 'lib/libglslang.a', + 'lib/libSPIRV.a', + ], + 'dirs': ['lib/cmake'], +} + +moduleclass = 'devel' diff --git a/Overlays/jureca_mi200_overlay/l/LLVM/LLVM-14.0.3-GCCcore-11.2.0.eb b/Overlays/jureca_mi200_overlay/l/LLVM/LLVM-14.0.3-GCCcore-11.2.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..cdc91ac09d06b3abd51d2f2a45d78d5937730655 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/l/LLVM/LLVM-14.0.3-GCCcore-11.2.0.eb @@ -0,0 +1,44 @@ +name = 'LLVM' +easyblock = 'EB_LLVM_AMDGPU' +version = '14.0.3' + +homepage = "https://llvm.org/" +description = """The LLVM Core libraries provide a modern source- and target-independent +optimizer, along with code generation support for many popular CPUs +(as well as some less common ones!) These libraries are built around a well +specified code representation known as the LLVM intermediate representation +("LLVM IR"). The LLVM Core libraries are well documented, and it is +particularly easy to invent your own language (or port an existing compiler) +to use LLVM as an optimizer and code generator.""" + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} +toolchainopts = {'cstd': 'gnu++11', 'pic': 'True'} + +source_urls = [ + 'https://github.com/llvm/llvm-project/releases/download/llvmorg-%(version)s/'] +sources = ['llvm-%(version)s.src.tar.xz'] +checksums = ['1e09e8c26e1b67bc94a128b62e9b9c24b70c697a2436a479c9e5eedc4ae29654'] + +builddependencies = [ + ('binutils', '2.37'), + ('CMake', '3.21.1', '', SYSTEM), + ('Python', '3.9.6'), +] + +dependencies = [ + ('ncurses', '6.2'), + ('zlib', '1.2.11'), +] + +build_shared_libs = True + +build_targets = ["AMDGPU", "X86"] + +sanity_check_paths = { + 'files': ['bin/llvm-ar', 'bin/FileCheck'], + 'dirs': ['include/llvm', 'include/llvm-c'], +} + +sanity_check_commands = ["llvm-ar --help"] + +moduleclass = 'compiler' diff --git a/Overlays/jureca_mi200_overlay/l/libdrm/libdrm-2.4.107-GCCcore-11.2.0.eb b/Overlays/jureca_mi200_overlay/l/libdrm/libdrm-2.4.107-GCCcore-11.2.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..842abee08703a443339a995a6959e1dba6762ffe --- /dev/null +++ b/Overlays/jureca_mi200_overlay/l/libdrm/libdrm-2.4.107-GCCcore-11.2.0.eb @@ -0,0 +1,32 @@ +easyblock = 'MesonNinja' + +name = 'libdrm' +version = '2.4.107' + +homepage = 'https://dri.freedesktop.org' +description = """Direct Rendering Manager runtime library.""" + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} + +source_urls = ['https://dri.freedesktop.org/libdrm/'] +sources = [SOURCELOWER_TAR_XZ] +checksums = ['c554cef03b033636a975543eab363cc19081cb464595d3da1ec129f87370f888'] + +builddependencies = [ + ('binutils', '2.37'), + ('pkg-config', '0.29.2'), + ('Meson', '0.58.2'), + ('Ninja', '1.10.2'), +] +dependencies = [('X11', '20210802')] + +# installing manpages requires an extra build dependency (docbook xsl) +configopts = '-Dman-pages=false' + +sanity_check_paths = { + 'files': ['lib/libdrm.%s' % SHLIB_EXT, 'include/libdrm/drm.h'], + 'dirs': ['include', 'lib'], +} + + +moduleclass = 'lib' diff --git a/Overlays/jureca_mi200_overlay/l/libdrm/libdrm-2.4.108-GCCcore-11.2.0.eb b/Overlays/jureca_mi200_overlay/l/libdrm/libdrm-2.4.108-GCCcore-11.2.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..6ecd87421d3828bae8fd495d516649e25f4dd60d --- /dev/null +++ b/Overlays/jureca_mi200_overlay/l/libdrm/libdrm-2.4.108-GCCcore-11.2.0.eb @@ -0,0 +1,34 @@ +easyblock = 'MesonNinja' + +name = 'libdrm' +version = '2.4.108' + +homepage = 'https://dri.freedesktop.org' +description = """Direct Rendering Manager runtime library.""" + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} + +source_urls = ['https://dri.freedesktop.org/libdrm/'] +sources = [SOURCELOWER_TAR_XZ] +checksums = ['a1d7948cbc536763fde14b4beb5e4da7867607966d4cf46301087e8b8fe3d6a0'] + +# checksums = ['92d8ac54429b171e087e61c2894dc5399fe6a549b1fbba09fa6a3cb9d4e57bd4'] + +builddependencies = [ + ('binutils', '2.37'), + ('pkg-config', '0.29.2'), + ('Meson', '0.58.2'), + ('Ninja', '1.10.2'), +] +dependencies = [('X11', '20210802')] + +# installing manpages requires an extra build dependency (docbook xsl) +configopts = '-Dman-pages=false' + +sanity_check_paths = { + 'files': ['lib/libdrm.%s' % SHLIB_EXT, 'include/libdrm/drm.h'], + 'dirs': ['include', 'lib'], +} + + +moduleclass = 'lib' diff --git a/Overlays/jureca_mi200_overlay/l/libdrm/libdrm-2.4.110-GCCcore-11.2.0.eb b/Overlays/jureca_mi200_overlay/l/libdrm/libdrm-2.4.110-GCCcore-11.2.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..528f057686a7d3fcc37de802669496c5dab367b6 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/l/libdrm/libdrm-2.4.110-GCCcore-11.2.0.eb @@ -0,0 +1,34 @@ +easyblock = 'MesonNinja' + +name = 'libdrm' +version = '2.4.110' + +homepage = 'https://dri.freedesktop.org' +description = """Direct Rendering Manager runtime library.""" + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} + +source_urls = ['https://dri.freedesktop.org/libdrm/'] +sources = [SOURCELOWER_TAR_XZ] +checksums = ['eecee4c4b47ed6d6ce1a9be3d6d92102548ea35e442282216d47d05293cf9737'] + +# checksums = ['92d8ac54429b171e087e61c2894dc5399fe6a549b1fbba09fa6a3cb9d4e57bd4'] + +builddependencies = [ + ('binutils', '2.37'), + ('pkg-config', '0.29.2'), + ('Meson', '0.58.2'), + ('Ninja', '1.10.2'), +] +dependencies = [('X11', '20210802')] + +# installing manpages requires an extra build dependency (docbook xsl) +configopts = '-Dman-pages=false' + +sanity_check_paths = { + 'files': ['lib/libdrm.%s' % SHLIB_EXT, 'include/libdrm/drm.h'], + 'dirs': ['include', 'lib'], +} + + +moduleclass = 'lib' diff --git a/Overlays/jureca_mi200_overlay/m/msgpack-c/msgpack-c-4.0.0-GCCcore-11.2.0.eb b/Overlays/jureca_mi200_overlay/m/msgpack-c/msgpack-c-4.0.0-GCCcore-11.2.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..48810f4559f5e3a6067b82872fd3da2351580029 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/m/msgpack-c/msgpack-c-4.0.0-GCCcore-11.2.0.eb @@ -0,0 +1,34 @@ +# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2021/04 +# Stepan Nassyr, JSC/Forschungszentrum Juelich GmbH, s.nassyr@fz-juelich.de, 2022/05 +easyblock = 'CMakeNinja' + +name = 'msgpack-c' +version = '4.0.0' + +homepage = 'http://msgpack.org/' +description = """MessagePack is an efficient binary serialization format, which lets you exchange +data among multiple languages like JSON, except that it's faster and smaller. +Small integers are encoded into a single byte while typical short strings +require only one extra byte in addition to the strings themselves.""" + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} + +source_urls = ['https://github.com/msgpack/msgpack-c/archive'] +sources = ['c-%(version)s.tar.gz'] +checksums = ['656ebe4566845e7bda9c097b625ba59ac72ddfd45df6017172d46d9ac7365aa3'] + +builddependencies = [ + ('CMake', '3.23.1'), + ('Ninja', '1.10.2'), + ('binutils', '2.37'), +] + +sanity_check_paths = { + 'files': [ + ['lib/libmsgpackc.%s' % x for x in ['a', '%s' % SHLIB_EXT]], + ['include/msgpack.%s' % x for x in ['h', 'hpp']] # check for both, C and C++ headers + ], + 'dirs': ['lib/pkgconfig', 'include/msgpack'], +} + +moduleclass = 'lib' diff --git a/Overlays/jureca_mi200_overlay/m/msgpack-cpp/msgpack-cpp-4.1.1-GCCcore-11.2.0.eb b/Overlays/jureca_mi200_overlay/m/msgpack-cpp/msgpack-cpp-4.1.1-GCCcore-11.2.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..ada77bc8143cc3926523066a99ef0faf89a6b39c --- /dev/null +++ b/Overlays/jureca_mi200_overlay/m/msgpack-cpp/msgpack-cpp-4.1.1-GCCcore-11.2.0.eb @@ -0,0 +1,44 @@ +# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2021/04 +# Stepan Nassyr, JSC/Forschungszentrum Juelich GmbH, s.nassyr@fz-juelich.de, 2022/05 +easyblock = 'CMakeNinja' + +name = 'msgpack-cpp' +version = '4.1.1' + +homepage = 'http://msgpack.org/' +description = """MessagePack is an efficient binary serialization format, which lets you exchange +data among multiple languages like JSON, except that it's faster and smaller. +Small integers are encoded into a single byte while typical short strings +require only one extra byte in addition to the strings themselves.""" + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} + +source_urls = ['https://github.com/msgpack/msgpack-c/archive'] +sources = ['cpp-%(version)s.tar.gz'] +checksums = ['221cc539e77f5ca02f4f0bbb1edafa9ca8c08de7ba8072d7baf2139930d99182'] + +builddependencies = [ + ('CMake', '3.23.1'), + ('Ninja', '1.10.2'), + ('binutils', '2.37'), +] + +dependencies = [ + ('Boost', '1.78.0') +] + +configopts = ( + "-DBUILD_SHARED_LIBS=ON " + "-DMSGPACK_CXX17=ON " + "-DMSGPACK_BUILD_EXAMPLES=OFF " + "-DMSGPACK_BUILD_TESTS=ON " +) + +sanity_check_paths = { + 'files': [ + ['include/msgpack.%s' % x for x in ['h', 'hpp']] # check for both, C and C++ headers + ], + 'dirs': ['lib/cmake', 'include/msgpack'], +} + +moduleclass = 'lib' diff --git a/Overlays/jureca_mi200_overlay/o/OpenCL-Headers/OpenCL-Headers-2022.05.18-GCCcore-11.2.0.eb b/Overlays/jureca_mi200_overlay/o/OpenCL-Headers/OpenCL-Headers-2022.05.18-GCCcore-11.2.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..a28b5f3159574937a9b6bc3a7427627f67ee8e9e --- /dev/null +++ b/Overlays/jureca_mi200_overlay/o/OpenCL-Headers/OpenCL-Headers-2022.05.18-GCCcore-11.2.0.eb @@ -0,0 +1,31 @@ +easyblock = 'CMakeNinja' + +name = 'OpenCL-Headers' +version = '2022.05.18' + +homepage = 'https://github.com/KhronosGroup/OpenCL-Headers' +description = "Headers for Khronos' OpenCL API" + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} +toolchainopts = {'pic': True} + +github_account = 'KhronosGroup' + +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['88a1177853b279eaf574e2aafad26a84be1a6f615ab1b00c20d5af2ace95c42e'] + +builddependencies = [ + ('CMake', '3.23.1'), + ('Ninja', '1.10.2'), + ('binutils', '2.37') +] + +separate_build_dir = True + +sanity_check_paths = { + 'files': ['include/CL/cl.h'], + 'dirs': ['include/CL', 'share/cmake'], +} + +moduleclass = 'lib' diff --git a/Overlays/jureca_mi200_overlay/o/OpenCL-ICD-Loader/OpenCL-ICD-Loader-2022.05.18-GCCcore-11.2.0.eb b/Overlays/jureca_mi200_overlay/o/OpenCL-ICD-Loader/OpenCL-ICD-Loader-2022.05.18-GCCcore-11.2.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..5c9bb793b6659af3c3c4e8abc2f747e3741fd14a --- /dev/null +++ b/Overlays/jureca_mi200_overlay/o/OpenCL-ICD-Loader/OpenCL-ICD-Loader-2022.05.18-GCCcore-11.2.0.eb @@ -0,0 +1,37 @@ +easyblock = 'CMakeNinja' + +name = 'OpenCL-ICD-Loader' +version = '2022.05.18' + +homepage = 'https://github.com/KhronosGroup/OpenCL-ICD-Loader' +description = """ OpenCL defines an Installable Client Driver (ICD) mechanism to allow developers to build + applications against an Installable Client Driver loader (ICD loader) rather than linking their + applications against a specific OpenCL implementation.""" + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} +toolchainopts = {'pic': True} + +github_account = 'KhronosGroup' + +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['71f70bba797a501b13b6b0905dc852f3fd6e264d74ce294f2df98d29914c4303'] + +builddependencies = [ + ('CMake', '3.23.1'), + ('Ninja', '1.10.2'), + ('binutils', '2.37') +] + +dependencies = [ + ('OpenCL-Headers', version) +] + +separate_build_dir = True + +sanity_check_paths = { + 'files': ['lib/libOpenCL.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/Overlays/jureca_mi200_overlay/o/OpenGL/OpenGL-2021b-GCCcore-11.2.0.eb b/Overlays/jureca_mi200_overlay/o/OpenGL/OpenGL-2021b-GCCcore-11.2.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..3cbf88df80207f5fb75f4c5ceca03775c81de456 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/o/OpenGL/OpenGL-2021b-GCCcore-11.2.0.eb @@ -0,0 +1,210 @@ +easyblock = 'Bundle' + +name = 'OpenGL' +version = '2021b' + +homepage = 'http://www.opengl.org/' +description = """ +Open Graphics Library (OpenGL) is a cross-language, cross-platform application programming interface (API) for rendering +2D and 3D vector graphics. Mesa is an open-source implementation of the OpenGL specification - a system for rendering +interactive 3D graphics. NVIDIA supports OpenGL and a complete set of OpenGL extensions, designed to give a maximum +performance on NVIDIA GPUs. + +This is a GL vendor neutral dispatch (GLVND) installation with Mesa and NVIDIA in the same lib-directory. Mesa or NVIDIA +OpenGL is set individually for each XScreen. +""" + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} +# swr detects and builds parts specific for AVX and AVX2. If we use +# -xHost, this always gets overwritten and will fail. +toolchainopts = {'optarch': False} + +builddependencies = [ + ('Python', '3.9.6'), + ('binutils', '2.37'), + ('flex', '2.6.4'), + ('Bison', '3.7.6'), + ('Autotools', '20210726'), + ('pkg-config', '0.29.2'), + ('expat', '2.4.1'), + ('libxml2', '2.9.10'), + ('Meson', '0.58.2'), + ('Ninja', '1.10.2'), + ('CMake', '3.21.1', '', SYSTEM), +] + +dependencies = [ + ('zlib', '1.2.11'), + ('nettle', '3.7.3'), + ('libdrm', '2.4.110'), + ('LLVM', '14.0.3'), + ('X11', '20210802'), + ('libunwind', '1.5.0'), + ('Vulkan-Headers', '1.3.213'), + ('Vulkan-Loader', '1.3.213'), +] + +default_easyblock = 'ConfigureMake' + +default_component_specs = { + 'sources': [SOURCE_TAR_GZ], + 'start_dir': '%(name)s-%(version)s', +} + +local_pkg_config = ('export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:%(installdir)s/lib/pkgconfig && ' + 'export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:%(installdir)s/lib64/pkgconfig && ') + +components = [ + # A vendor neutral dispatch layer + ('libglvnd', '1.3.4', { + 'source_urls': [ + 'https://gitlab.freedesktop.org/glvnd/libglvnd/-/archive/v%(version)s/' + ], + 'sources': ['%(name)s-v%(version)s.tar.gz'], + 'start_dir': '%(name)s-v%(version)s', + 'checksums': ['c42061da999f75234f9bca501c21144d9a5768c5911d674eceb8650ce3fb94bb'], + 'preconfigopts': './autogen.sh && ' + }), + # Mesa for software rendering, not hardware rendering. + ('Mesa', '22.1.0', { + # We build: + # - llvmpipe: the high-performance Gallium LLVM driver (only possible with glx=gallium-xlib) + # - swr: Intel's OpenSWR + 'easyblock': 'MesonNinja', + 'source_urls': [ + 'https://mesa.freedesktop.org/archive/', + 'https://mesa.freedesktop.org/archive/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/older-versions/%(version_major)s.x/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/older-versions/%(version_major)s.x', + ], + 'sources': [SOURCELOWER_TAR_XZ], + 'checksums': [ + 'df6270c1371eaa2aa6eb65b95cbbb2a98b14fa4b7ba0ed45e4ca2fd32df60477', + ], + 'start_dir': '%(namelower)s-%(version)s', + 'separate_build_dir': True, + 'preconfigopts': local_pkg_config, + # https://gitlab.freedesktop.org/mesa/mesa/-/blob/master/meson_options.txt + 'configopts': (' -D libdir=%(installdir)s/lib' + ' -D gbm=enabled' + ' -D glx=auto' + ' -D osmesa=true' + ' -D llvm=enabled' + ' -D shared-llvm=enabled' + ' -D dri-drivers=""' + ' -D vulkan-drivers="amd,swrast"' + ' -D gallium-drivers="radeonsi,zink,swrast"' + ' -D platforms=x11' # surfaceless taken automatically, see logs + ' -D glvnd=true' + ' -D libunwind=disabled' + ' -D valgrind=disabled' + ' -D egl=enabled' + ' -D gles1=enabled -Dgles2=enabled' + ' -D shared-glapi=enabled' + ' -D gallium-vdpau=disabled' # only for r300, r600, radeonsi, nouveau + ' -D buildtype=release'), + }), + # OpenGL Utility Library - offers higher level GL-graphics functions + ('glu', '9.0.2', { + 'preconfigopts': local_pkg_config, + 'source_urls': [ + 'ftp://ftp.freedesktop.org/pub/mesa/glu/' + ], + 'sources': [ + 'glu-%(version)s.tar.gz' + ], + 'checksums': [ + '24effdfb952453cc00e275e1c82ca9787506aba0282145fff054498e60e19a65', + ], + }), + # OpenGL Extension Wrangler Library - determines which OpenGL extensions are supported at run-time + # This is just GLEW for GLX (which requires DISPLAY to be set) and not GLEW for EGL as GLEW selects GLX/EGL at + # compile-time and not run-time (https://github.com/nigels-com/glew/issues/172#issuecomment-357400019) + # Compile+Load GLEW-EGL on top to enable GLEW for EGL + ('glew', '2.2.0', { + 'source_urls': [ + 'https://sourceforge.net/projects/glew/files/glew/snapshots/', + ], + 'sources': [ + 'glew-20200115.tgz', + ], + 'checksums': [ + '314219ba1db50d49b99705e8eb00e83b230ee7e2135289a00b5b570e4a4db43a', + ], + 'skipsteps': ['configure'], + 'buildopts': ('GLEW_PREFIX=%(installdir)s GLEW_DEST=%(installdir)s LIBDIR=%(installdir)s/lib ' + 'LDFLAGS.EXTRA="-L${EBROOTX11}/lib/ -lX11" LDFLAGS.GL="-L%(installdir)s/lib -lGL"'), + 'installopts': 'GLEW_PREFIX=%(installdir)s GLEW_DEST=%(installdir)s LIBDIR=%(installdir)s/lib ', + 'install_cmd': 'make install.all ', + }), + # MESA demos - offers the important command 'eglinfo' + ('demos', '95c1a57cfdd1ef2852c828cba4659a72575c5c5d', { + 'source_urls': [ + 'https://gitlab.freedesktop.org/mesa/demos/-/archive/%(version)s/', + ], + 'sources': [SOURCELOWER_TAR_GZ], + 'checksums': [ + '7738beca8f6f6981ba04c8a22fde24d69d6b2aaab1758ac695c9475bf704249c', + ], + 'preconfigopts': ('./autogen.sh && ' + + local_pkg_config + + 'GLEW_CFLAGS="-I%(installdir)s/include/" GLEW_LIBS="-L%(installdir)s/lib/ -lGLEW -lGL" ' + 'EGL_CFLAGS="-I%(installdir)s/include/" EGL_LIBS="-L%(installdir)s/lib/ -lEGL" '), + 'configopts': '--disable-osmesa ', + }), +] + +postinstallcmds = [ + 'cd %(installdir)s/lib && ln -sf libGL.so.1.7.0 libGL.so.1', + 'rm %(installdir)s/lib/*.la', + 'cd %(installdir)s/lib && ln -sf libGLX_mesa.so.0 libGLX_indirect.so.0', + # EGL vendor ICDs + ( + '{ cat > %(installdir)s/share/glvnd/egl_vendor.d/50_mesa.json; } << \'EOF\'\n' + '{\n' + ' \"file_format_version\" : \"1.0.0\",\n' + ' \"ICD\" : {\n' + ' \"library_path\" : \"libEGL_mesa.so.0\"\n' + ' }\n' + '}\n' + 'EOF' + ), + # correct pkg-config of GLEW + 'sed -i "/^libdir=/c\\libdir=\\${exec_prefix}\\/lib" %(installdir)s/lib/pkgconfig/glew.pc', + 'sed -i "/^prefix=/c\\prefix=%(installdir)s" %(installdir)s/lib/pkgconfig/glew.pc', +] + +modextravars = { + # '__GLX_VENDOR_LIBRARY_NAME': 'mesa' + '__EGL_VENDOR_LIBRARY_FILENAMES': ('%(installdir)s/share/glvnd/egl_vendor.d/50_mesa.json'), + 'EGL_PLATFORM': 'surfaceless', + 'EGL_DRIVER': 'radeonsi', + 'EGL_LOG_LEVEL': 'fatal', + 'GALLIUM_DRIVER': 'radeonsi', + 'KNOB_MAX_WORKER_THREADS': '65535', +} + +modluafooter = ''' +add_property("arch","gpu") + +conflict("Mesa") +conflict("libGLU") +''' + +sanity_check_paths = { + 'files': [ + 'lib/libEGL_mesa.%s' % SHLIB_EXT, 'lib/libOSMesa.%s' % SHLIB_EXT, + 'lib/libGLESv1_CM.%s' % SHLIB_EXT, 'lib/libGLESv2.%s' % SHLIB_EXT, + 'include/GL/glext.h', 'include/GL/glx.h', + 'include/GL/osmesa.h', 'include/GL/gl.h', 'include/GL/glxext.h', + 'include/GLES/gl.h', 'include/GLES2/gl2.h', 'include/GLES3/gl3.h', + 'lib/libOpenGL.%s' % SHLIB_EXT, + 'lib/libGLEW.a', 'lib/libGLEW.%s' % SHLIB_EXT, + 'bin/glewinfo', 'bin/visualinfo', + 'include/GL/glew.h', 'include/GL/glxew.h', 'include/GL/wglew.h', + ], + 'dirs': [] +} + +moduleclass = 'vis' diff --git a/Overlays/jureca_mi200_overlay/r/ROCm/MIOpen-disable-pch-until-5.3.patch b/Overlays/jureca_mi200_overlay/r/ROCm/MIOpen-disable-pch-until-5.3.patch new file mode 100644 index 0000000000000000000000000000000000000000..1c404693472d95cb4d896a34bf075ce7c4eb010a --- /dev/null +++ b/Overlays/jureca_mi200_overlay/r/ROCm/MIOpen-disable-pch-until-5.3.patch @@ -0,0 +1,13 @@ +diff --git a/src/comgr.cpp b/src/comgr.cpp +index cf108f247..0a1d3791f 100644 +--- a/src/comgr.cpp ++++ b/src/comgr.cpp +@@ -119,7 +119,7 @@ MIOPEN_DECLARE_ENV_VAR(MIOPEN_DEBUG_OPENCL_WAVE64_NOWGP) + + // '__hipGetPCH' is not available in [4.4, 5.0). See SWDEV-308265. + #if HIP_SUPPORTS_PCH && (HIP_PACKAGE_VERSION_FLAT >= 4004000000ULL) && \ +- (HIP_PACKAGE_VERSION_FLAT < 5000000000ULL) ++ (HIP_PACKAGE_VERSION_FLAT < 5003000000ULL) + #undef HIP_SUPPORTS_PCH + #define HIP_SUPPORTS_PCH 0 + #endif diff --git a/Overlays/jureca_mi200_overlay/r/ROCm/ROCm-5.1.3-GCCcore-11.2.0.eb b/Overlays/jureca_mi200_overlay/r/ROCm/ROCm-5.1.3-GCCcore-11.2.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..17e9a0cb3fa9d455a8abacf65df54b96f19776d0 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/r/ROCm/ROCm-5.1.3-GCCcore-11.2.0.eb @@ -0,0 +1,1070 @@ +# Bundle containing ROCm framework and libraries +# +# The Arch Linux AUR recipes are the reference: https://github.com/rocm-arch/rocm-arch +# +# TODO: hipify-clang needs CUDA (headers?), right now CUDA is excluded in the mi200 partition. Maybe hidden CUDA or +# allow installation or make a custom package? +# TODO: missing: hipify-clang (see above) +# miopen-opencl (I think it's either miopen-hip or miopen-opencl but not both) +# mivisionx (started writing component, but it needs Qt5,OpenCV,FFmpeg and would pull in +# CUDA which is disallowed) +# rocm-validation-suite (started writing component, but need to install pciutils-devel rpm) +# gpufort (github.com/RocmSoftwarePlatform/openacc-fortran-interfaces.git is required but +# is private, ask AMD for access? ) +# NOTE: This might actually be outdated, but gpufort seems like just a python script? +# +# TODO: missing pkgs that just provide some version numbers: +# rocm-core +# rocm-hip-libraries +# rocm-hip-runtime +# rocm-hip-sdk +# rocm-language-runtime +# rocm-opencl-sdk +# TODO: sanity-check existence of all the libraries +# TODO: some modextrapaths, modextravars might need to be set? +# TODO: Some components are a bit hacked together, writing an easyblock might be better (hipamd, openmp-extras, ...) +# TODO: check if any package is unusable when not compiled on a system with a GPU (code auto-detects GPU). +# There are some tricks wrt rocm_agent_enumerator (ROCM_TARGET_LST env. var. or target.lst in the same dir) +# +# Other notes: +# - MIOpen __hipGetPCH missing might be due to some flag in hipamd, for now the patch disables PCH until v5.3 +# - AMDMIGraphX is made to link explicitly against mkl through configopts - this should be handled by cmake +# either in Blaze or AMDMIGraphX. maybe a patch? + +easyblock = 'Bundle' +name = 'ROCm' +version = '5.1.3' + +homepage = 'https://github.com/RadeonOpenCompute/ROCm' +description = """AMD ROCm - Open Source Platform for HPC and Ultrascale GPU Computing.""" + +site_contacts = 's.nassyr@fz-juelich.de' + +# toolchain = {'name': 'GCCcore', 'version': '11.2.0'} +# rocALUTION asks for mpi (I think it can build without it though) +# OpenMPI needs ROCm at compile time to support it, so this might be problematic ("ROCm-Bare" package containing only +# what OpenMPI needs?) +toolchain = {'name': 'gompi', 'version': '2021b'} + + +builddependencies = [ + ("binutils", "2.37"), + ("CMake", "3.23.1"), + ("Ninja", "1.10.2"), + ("makeinfo", "6.8"), # ROCgdb complains about it missing + # roctracer breaks without this (also the newer robotpy-cppheaderparser doesn't seem to work) + ("CppHeaderParser", "2.7.4"), +] + +dependencies = [ + ("libdrm", "2.4.110"), # ROCT complains about libdrm not being found + ("OpenGL", "2021b"), # hip needs mesa + ("Python", "3.9.6"), # rocFFT asks for python headers + ("guile", "2.0.14"), # ROCgdb wants guile-2.0 + ("MPFR", "4.1.0"), # also ROCgdb + ("source-highlight", "3.1.9"), # also ROCgdb + ("babeltrace", "1.5.8"), # also ROCgdb + ("fmt", "8.1.1"), # rocSOLVER uses fmt for something + ("protobuf", "3.17.3"), # AMDMIGraphX and some others + ("nlohmann-json", "3.10.4"), # AMDMIGraphX + ("msgpack-c", "4.0.0"), # AMDMIGraphX + ("msgpack-cpp", "4.1.1"), # AMDMIGraphX + ("pybind11", "2.7.1"), # AMDMIGraphX + ("Blaze", "3.8.1", + '', ('gomkl', '2021b')), # AMDMIGraphX + # AMDMIGraphX, probably getting it from Blaze, but better to put explicit + ("imkl", "2021.4.0"), + # dependency + # ("FFmpeg", "4.4.1"), # MIVisionX + # ("OpenCV", "4.5.4", '', ('gcccoremkl','2021b')), # MIVisionX + # ("Qt5", "5.15.2"), # MIVisionX + ("OpenCL-Headers", "2022.05.18"), # OpenCL runtime and miopengemm + ("OpenCL-ICD-Loader", "2022.05.18"), # OpenCL runtime and miopengemm +] + +default_easyblock = 'CMakeNinja' +github_account = "RadeonOpenCompute" + +local_amdgpu_targets = "gfx90a" + +components = [ + ('ROCT-Thunk-Interface', version, + { + 'source_urls': [GITHUB_SOURCE], + 'sources': [{ + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': ['3c66b1aa7451571ce8bee10e601d34b93c9416b9be476610ee5685dbad81034a'], + 'srcdir': '%(name)s-rocm-%(version)s' + }), + ('rocm-cmake', version, + { + 'source_urls': [GITHUB_SOURCE], + 'sources': [{ + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': ['19b2da0d56300aab454655b57435ab3ed9e101ecb96561336ea8865bbd993c23'], + 'srcdir': '%(name)s-rocm-%(version)s' + }), + ('llvm-project', version, + { + 'source_urls': [GITHUB_SOURCE], + 'sources': [{ + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': 'rocm-llvm-%(version)s.tar.gz', + }], + 'checksums': ['d236a2064363c0278f7ba1bb2ff1545ee4c52278c50640e8bb2b9cfef8a2f128'], + 'srcdir': '%(name)s-rocm-%(version)s/llvm', + 'install_target_subdir': 'llvm', + 'configopts': (" -DLLVM_HOST_TRIPLE=x86_64-linux-gnu " + " -DLLVM_BUILD_UTILS=ON " + " -DLLVM_ENABLE_BINDINGS=OFF " + " -DOCAMLFIND=NO " + " -DLLVM_ENABLE_OCAMLDOC=OFF " + " -DLLVM_INCLUDE_BENCHMARKS=OFF " + " -DLLVM_BUILD_TESTS=OFF " + " -DLLVM_ENABLE_PROJECTS='llvm;clang;compiler-rt;lld' " + " -DLLVM_TARGETS_TO_BUILD='AMDGPU;X86' " + " -DLLVM_BINUTILS_INCDIR=$EBROOTBINUTILS/include ") + }), + ('ROCm-Device-Libs', version, + { + 'source_urls': [GITHUB_SOURCE], + 'sources': [{ + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': ['c41958560ec29c8bf91332b9f668793463904a2081c330c0d828bf2f91d4f04e'], + 'srcdir': '%(name)s-rocm-%(version)s', + 'configopts': " -DLLVM_DIR=%(installdir)s/llvm/lib/cmake/llvm " + }), + ('ROCm-CompilerSupport', version, + { + 'source_urls': [GITHUB_SOURCE], + 'sources': [{ + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': ['3078c10e9a852fe8357712a263ad775b15944e083f93a879935c877511066ac9'], + 'srcdir': '%(name)s-rocm-%(version)s/lib/comgr', + 'configopts': " -DCMAKE_PREFIX_PATH=\"%(installdir)s/llvm;%(installdir)s\" " + }), + ('hsa-amd-aqlprofile', version, + { + 'easyblock': "Binary", + 'source_urls': ['http://repo.radeon.com/rocm/apt/%(version)s/pool/main/h/hsa-amd-aqlprofile/'], + 'sources': [{ + 'download_filename': 'hsa-amd-aqlprofile_1.0.0.50103-66_amd64.deb', + 'filename': '%(name)s-%(version)s.deb', + 'extract_cmd': 'ar x %s' + }], + 'checksums': ['ba76a30f078cfd2d4927fd43840f22265ebc0dfd1c03ac3bc36f637b67ec4119'], + 'install_cmd': """ + mkdir -p %(builddir)s/%(name)s + tar -C "%(builddir)s/%(name)s" -xf data.tar.gz; + cp -r %(builddir)s/%(name)s/opt/rocm-%(version)s/%(name)s/ %(installdir)s/hsa + cp -r %(builddir)s/%(name)s/opt/rocm-%(version)s/lib/ %(installdir)s/lib + cp -r %(builddir)s/%(name)s/opt/rocm-%(version)s/share/ %(installdir)s/share + ln -sf %(installdir)s/hsa/lib/lib%(name)s64.so %(installdir)s/lib/lib%(name)s64.so + """ + }), + ('ROCR-Runtime', version, + { + 'source_urls': [GITHUB_SOURCE], + 'sources': [{ + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': ['479340ec34cdffbbdb1002c85a47d1fccd23e8394631a1f001ef6130be08287d'], + 'srcdir': '%(name)s-rocm-%(version)s/src', + 'configopts': (" -DCMAKE_PREFIX_PATH=\"%(installdir)s/llvm;%(installdir)s\" " + " -DCMAKE_CXX_FLAGS='-DNDEBUG' ") + }), + ('rocminfo', version, + { + 'source_urls': [GITHUB_SOURCE], + 'sources': [{ + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'patches': [ + ('https://patch-diff.githubusercontent.com/raw/RadeonOpenCompute/rocminfo/pull/53.patch', + '%(name)s-rocm-%(version)s')], + 'checksums': [ + '7aecd7b189e129b77c8f2af70be2926a0f3a5ee89814879bc8477924a7e6f2ae', + '95d6f679a7ad45ee663222c85dd5e7d456c9cf5da3cd43455c3c2fe2ee36f0a0', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'configopts': (" -DCMAKE_PREFIX_PATH=\"%(installdir)s/llvm;%(installdir)s\" " + " -DROCRTST_BLD_TYPE=Release " + " -DCMAKE_INSTALL_LIBDIR=lib ") + }), + ('hipamd', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCm-Developer-Tools/HIP/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': 'hip-%(version)s.tar.gz', + }, { + 'source_urls': ['https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': 'rocm-opencl-%(version)s.tar.gz', + }, { + 'source_urls': ['https://github.com/ROCm-Developer-Tools/ROCclr/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': 'rocclr-%(version)s.tar.gz', + }, { + 'source_urls': ['https://github.com/ROCm-Developer-Tools/hipamd/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': 'hipamd-%(version)s.tar.gz', + }], + 'patches': [ + ('https://github.com/ROCm-Developer-Tools/HIP/commit/d221fb6ebbe24d66855af8160687aa01b0112dec.patch', + 'HIP-rocm-%(version)s'), + ('hipamd-5.1.3-git-hash.patch', 'hipamd-rocm-%(version)s') + ], + 'checksums': [ + 'ce755ee6e407904eba3f6b3c9efcdd48eb4f58a26b06e1892166d05f19a75973', + '44a7fac721abcd93470e1a7e466bdea0c668c253dee93e4f1ea9a72dbce4ba31', + 'ddee63cdc6515c90bab89572b13e1627b145916cb8ede075ef8446cbb83f0a48', + '707f2217f0e7aeb62d7b76830a271056d665542bf5f7a54e40adf4d5f299ca93', + 'a7991885288152633f2d058c874278fd4e61eafa1992771b8d122c3a3ad9da35', + 'bf5429dfb95e11844c14fe4d2aced3a023ff4bcc7dd5ded78d81ce3df1f08249', + ], + 'srcdir': 'hipamd-rocm-%(version)s/', + 'install_target_subdir': 'hip', + 'configopts': (" -DCMAKE_PREFIX_PATH=\"%(installdir)s/llvm;%(installdir)s\" " + " -DHIP_COMMON_DIR=%(builddir)s/HIP-rocm-%(version)s/ " + " -DAMD_OPENCL_PATH=%(builddir)s/ROCm-OpenCL-Runtime-rocm-%(version)s/ " + " -DROCCLR_PATH=%(builddir)s/ROCclr-rocm-%(version)s/ " + " -DROCCLR_INCLUDE_PATH=%(builddir)s/ROCclr-rocm-%(version)s " + " -DHIP_PLATFORM=amd " + " -DCMAKE_INSTALL_LIBDIR=lib "), + 'installopts': "install && " + "\n".join([ + "sed -i '/__noinline__/d' %(installdir)s/hip/include/hip/amd_detail/host_defines.h", + "install -d %(installdir)s/bin", + "install -d %(installdir)s/include", + "install -d %(installdir)s/lib/cmake", + ("for binary in hipcc hipconfig hipcc.pl hipconfig.pl; " + " do ln -s %(installdir)s/hip/bin/$binary %(installdir)s/bin/$binary; " + "done"), + "ln -s %(installdir)s/hip/lib/libamdhip64.so %(installdir)s/lib/libamdhip64.so", + "ln -s %(installdir)s/hip/include/hip %(installdir)s/include/hip", + "ln -s %(installdir)s/hip/lib/cmake/hip %(installdir)s/lib/cmake/hip", + "ln -s %(installdir)s/hip/lib/cmake/hip-lang %(installdir)s/lib/cmake/hip-lang", + ]) + "\n echo " + }), + ('llvm-project-mlir', version, + { + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'sources': [{ + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + # fix stray ";" in linker flags + 'patches': [('llvm-project-mlir-fix-rpath-flags.patch', '%(name)s-rocm-%(version)s')], + 'checksums': [ + '936f92707ffe9a1973728503db6365bb7f14e5aeccfaef9f0924e54d25080c69', + '53c05fab666019860a60e8a32fdc99046177a1f0dd76a4a5ec9fc3dab7b5bba5', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': 'export ROCM_PATH=%(installdir)s; export HIP_PATH=%(installdir)s/hip; ', + 'prebuildopts': 'export ROCM_PATH=%(installdir)s; export HIP_PATH=%(installdir)s/hip; ', + 'preinstallopts': 'export ROCM_PATH=%(installdir)s; export HIP_PATH=%(installdir)s/hip; ', + 'configopts': ( + " -DMLIR_MIOPEN_SQLITE_ENABLED=On " + " -DBUILD_FAT_LIBMLIRMIOPEN=1 " + " -DROCM_PATH=%(installdir)s " + " -DLLVM_TARGETS_TO_BUILD='AMDGPU;X86' ") + }), + ('rocm_smi_lib', version, + { + 'source_urls': [GITHUB_SOURCE], + 'sources': [{ + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'patches': [ + ('https://patch-diff.githubusercontent.com/raw/RadeonOpenCompute/rocm_smi_lib/pull/107.patch', + '%(name)s-rocm-%(version)s')], + 'checksums': [ + '8a19ce60dc9221545aa50e83e88d8c4be9bf7cde2425cefb13710131dc1d7b1b', + 'f1d66af131833a55bcfcac63e9af7194cc38cb1bb583fb74427e4f0f89719910', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'configopts': (" -DCMAKE_SHARED_LINKER_FLAGS=\"-fuse-ld=bfd\" " + " -DCMAKE_MODULE_LINKER_FLAGS=\"-fuse-ld=bfd\" " + " -DCMAKE_EXE_LINKER_FLAGS=\"-fuse-ld=bfd\" ") + }), + ('atmi', version, + { + 'easyblock': 'CMakeMake', # Uses cmake in a crappy way breaking ninja + 'sources': [{ + 'source_urls': [GITHUB_SOURCE], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': [ + 'a43448d77705b2b07e1758ffe8035aa6ba146abc2167984e8cb0f1615797b341', + ], + 'srcdir': '%(name)s-rocm-%(version)s/src', + 'install_target_subdir': 'atmi', + 'preconfigopts': "export ROCM_PATH=%(installdir)s; ", + 'configopts': " -DROCM_VERSION=\"%(version)s\" " +\ + " -DAMDGPU_TARGETS=%s " % local_amdgpu_targets, + 'prebuildopts': "export ROCM_PATH=%(installdir)s; " + }), + ('ROCdbgapi', version, + { + 'source_urls': ['https://github.com/ROCm-Developer-Tools/%(name)s/archive'], + 'sources': [{ + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'patches': [ + ('https://patch-diff.githubusercontent.com/raw/ROCm-Developer-Tools/ROCdbgapi/pull/4.patch', + '%(name)s-rocm-%(version)s')], + 'checksums': [ + '880f80ebf741e3451676837f720551e02cffd0b9346ca4dfa6cf7f7043282f2b', + '91b29cafec79441e6c311d50ca5653ec8315c401b1cc0f93ce65bfdfdda2e04e', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + }), + ('rocr_debug_agent', version, + { + 'source_urls': ['https://github.com/ROCm-Developer-Tools/%(name)s/archive'], + 'sources': [{ + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': ['ef26130829f3348d503669467ab1ea39fb67d943d88d64e7ac04b9617ec6067d'], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': 'export ROCM_PATH=%(installdir)s; export HIP_PATH=%(installdir)s/hip; ', + 'prebuildopts': 'export ROCM_PATH=%(installdir)s; export HIP_PATH=%(installdir)s/hip; ', + 'preinstallopts': 'export ROCM_PATH=%(installdir)s; export HIP_PATH=%(installdir)s/hip; ', + 'configopts': " -DCMAKE_HIP_ARCHITECTURES=\"%s\" " % local_amdgpu_targets +\ + (" -DCMAKE_PREFIX_PATH=\"%(installdir)s;%(installdir)s/hip\" " + " -DCMAKE_MODULE_PATH=\"%(installdir)s/hip/cmake\" ") + }), + ('ROCgdb', version, + { + 'easyblock': 'ConfigureMake', + 'source_urls': ['https://github.com/ROCm-Developer-Tools/%(name)s/archive'], + 'sources': [{ + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': ['81f5e368facdcc424a37cb5809f0b436bedb9a6d9af4d17785b3c446ab0a7821'], + 'preconfigopts': 'cd %(name)s-rocm-%(version)s && ', + 'prebuildopts': 'cd %(name)s-rocm-%(version)s && ', + 'preinstallopts': 'cd %(name)s-rocm-%(version)s && ', + 'configopts': ( + " --program-prefix=roc " + " --disable-shared " + " --disable-nls " + " --enable-source-highlight " + " --enable-tui " + " --enable-64-bit-bfd " + " --enable-targets=\"x86_64-linux-gnu,amdgcn-amd-amdhsa\" " + " --with-system-readline " + " --with-python=$EBROOTPYTHON/bin/python3 " + " --with-rocm-dbgapi=%(installdir)s " + " --with-guile=guile-2.0 " + " --with-expat " + " --with-system-zlib " + " --with-babeltrace " + " --with-lzma " + " --disable-gdbtk " + " --disable-ld " + " --disable-gas " + " --disable-gdbserver " + " --disable-sim " + ) + }), + ('rocprofiler', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCm-Developer-Tools/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }, { + 'source_urls': ['https://github.com/ROCm-Developer-Tools/roctracer/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': 'roctracer-%(version)s.tar.gz', + }], + 'checksums': [ + 'eca7be451c7bf000fd9c75683e7f5dfbed32dbb385b5ac685d2251ee8c3abc96', + '45f19875c15eb609b993788b47fd9c773b4216074749d7744f3a671be17ef33c', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': 'export ROCM_PATH=%(installdir)s; export HIP_PATH=%(installdir)s/hip; ', + 'prebuildopts': 'export ROCM_PATH=%(installdir)s; export HIP_PATH=%(installdir)s/hip; ', + 'configopts': " -DPROF_API_HEADER_PATH=%(builddir)s/roctracer-rocm-%(version)s/inc/ext", + 'installopts': "install && " + "\n".join([ + "install -d %(installdir)s/bin", + "ln -s %(installdir)s/rocprofiler/bin/rocprof %(installdir)s/bin/rocprof", + ]) + "\n echo " + }), + ('roctracer', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCm-Developer-Tools/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'patches': [ + ('https://patch-diff.githubusercontent.com/raw/ROCm-Developer-Tools/roctracer/pull/63.patch', + '%(name)s-rocm-%(version)s'), + ('roctracer-hsa_ostream_ops-include.patch', + '%(name)s-rocm-%(version)s'), + ], + 'checksums': [ + '45f19875c15eb609b993788b47fd9c773b4216074749d7744f3a671be17ef33c', + '937e040a045eceddb609f18df1106f17fbe69b0ca479dea43fb794d58cacf7c2', + '1a614b3416a50ddcd6fcfa80730a9beb856ca3314b522aef353f0ad7baf593da', + ], + 'preconfigopts': 'export ROCM_PATH=%(installdir)s; export HIP_PATH=%(installdir)s/hip; ', + 'prebuildopts': 'export ROCM_PATH=%(installdir)s; export HIP_PATH=%(installdir)s/hip; ', + 'srcdir': '%(name)s-rocm-%(version)s', + }), + ('rccl', version, + { + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/rccl/archive'], + 'sources': [{ + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': ['56491257f27b48bf85f4b91434a2a6e49a448337c889db181b02c8a4a260a4bc'], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': "export ROCM_PATH=%(installdir)s; ", + 'configopts': " -DCMAKE_CXX_COMPILER=%(installdir)s/hip/bin/hipcc " +\ + " -DAMDGPU_TARGETS=%s " % local_amdgpu_targets, + 'prebuildopts': "export ROCM_PATH=%(installdir)s; " + }), + ('ROCclr', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': 'rocm-opencl-%(version)s.tar.gz', + }, { + 'source_urls': ['https://github.com/ROCm-Developer-Tools/ROCclr/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': 'rocclr-%(version)s.tar.gz', + }], + 'checksums': [ + '44a7fac721abcd93470e1a7e466bdea0c668c253dee93e4f1ea9a72dbce4ba31', + 'ddee63cdc6515c90bab89572b13e1627b145916cb8ede075ef8446cbb83f0a48', + ], + 'srcdir': '%(name)s-rocm-%(version)s/', + 'configopts': (" -DAMD_OPENCL_PATH=%(builddir)s/ROCm-OpenCL-Runtime-rocm-%(version)s/ "), + 'installopts': ' && echo ', # install nothing, just build and use for OpenCL later + }), + ('ROCm-OpenCL-Runtime', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': 'rocm-opencl-%(version)s.tar.gz', + }], + 'checksums': [ + '44a7fac721abcd93470e1a7e466bdea0c668c253dee93e4f1ea9a72dbce4ba31', + ], + 'srcdir': '%(name)s-rocm-%(version)s/', + 'configopts': (" -DCMAKE_PREFIX_PATH=\"%(builddir)s/ROCclr-rocm-%(version)s/;%(installdir)s\" " + " -DROCCLR_PATH=%(builddir)s/ROCclr-rocm-%(version)s/ " + " -DROCCLR_INCLUDE_PATH=%(builddir)s/ROCclr-rocm-%(version)s " + " -DROCM_PATH=%(installdir)s" + " -DAMD_OPENCL_PATH=%(builddir)s/ROCm-OpenCL-Runtime-rocm-%(version)s/ "), + }), + ('clang-ocl', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/RadeonOpenCompute/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': [ + 'e19ee15f26fc03309398ac73cc738508c0e1617deccfd667d369a3948b5d3552', + ], + 'srcdir': '%(name)s-rocm-%(version)s/', + 'configopts': (" -DCLANG_BIN=\"%(installdir)s/llvm/bin\" " + " -DBITCODE_DIR=\"%(installdir)s/amdgcn/bitcode\" "), + }), + ('MIOpenGEMM', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'patches': [ + ('https://patch-diff.githubusercontent.com/raw/ROCmSoftwarePlatform/MIOpenGEMM/pull/46.patch', + '%(name)s-rocm-%(version)s'), + ], + 'checksums': [ + 'c70fc9e2a6d47356a612e24f5757bf16fdf26e671bd53a0975c1a0978da740b6', + '4d54249ca45623328721ec0648b7ba18697ad9f7ef0c0bd01c96b9ed5670fa33', + ], + 'srcdir': '%(name)s-rocm-%(version)s/', + }), + ('openmp-extras', version, + # Very hacky, needs easyblock + { + 'easyblock': 'ConfigureMake', + 'sources': [{ + 'source_urls': ['https://github.com/ROCm-Developer-Tools/aomp/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': 'aomp-%(version)s.tar.gz', + }, { + 'source_urls': ['https://github.com/RadeonOpenCompute/llvm-project/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': 'rocm-llvm-%(version)s.tar.gz', + }, { + 'source_urls': ['https://github.com/RadeonOpenCompute/ROCm-Device-Libs/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': 'rocm-device-libs-%(version)s.tar.gz', + }, { + 'source_urls': ['https://github.com/ROCm-Developer-Tools/flang/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': 'flang-%(version)s.tar.gz', + }, { + 'source_urls': ['https://github.com/ROCm-Developer-Tools/aomp-extras/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': 'aomp-extras-%(version)s.tar.gz', + }], + 'patches': [ + ('llvm-project-hostrpc-fprintf-decl.patch', + 'llvm-project-rocm-%(version)s'), + ('aomp-gcc8-only-for-cuda.patch', + 'aomp-rocm-%(version)s'), + ('aomp-openmp-buildpath.patch', + 'aomp-rocm-%(version)s'), + ('aomp-openmp-llvm.patch', + 'aomp-rocm-%(version)s'), + ('aomp-flang-decouple-out-dir-and-rocm-install.patch', + 'aomp-rocm-%(version)s'), + ('aomp-flang-libomp-path.patch', + 'aomp-rocm-%(version)s'), + ('aomp-flang-alarm-signature.patch', + 'flang-rocm-%(version)s'), + ('aomp-extras-compiler-in-rocm-dir.patch', + 'aomp-extras-rocm-%(version)s'), + ], + 'checksums': [ + '8bab3d621343f419b29043ac0cb56e062f114991dc3ec1e33e786f771deecc8f', + 'd236a2064363c0278f7ba1bb2ff1545ee4c52278c50640e8bb2b9cfef8a2f128', + 'c41958560ec29c8bf91332b9f668793463904a2081c330c0d828bf2f91d4f04e', + 'd7847b5c6e1344dc0b4723dbe76a859257b4c242644dedb34e425f07738530d4', + '2e3151a47d77166d071213af2a1691487691aae0abd5c1718d818a6d7d09cb2d', + + 'c846bac17580e939492b843bee092c2e1b2b414a683bdb6be2973ae044642424', + '705a7103c3aeff514e5645c130786172961c54673dfdd772caece3b5e7536088', + 'f7ed1704ffb095bbe8512b1c567a111936685d35f64123c786194e4239277251', + '6efb9538e016e1e6e2fb6ce52408bb6317c213ebdd46a60925447d0b43f42ee6', + 'e82a4f065cc259095bf96778b913b97fe39d7c207e4e25ccf59d8fa264014262', + 'ff3c3e56bfc11c0c9a6ab5c5392168da06aed3b4a21cdfcf7a149d12a69e2906', + '7c796d44952da8f089dc3ee013970dba7be43c60eb90131f86ce7d15c67b4b9b', + 'f8f57cdcc4ddf535323f4f84a4a4a4fa830fbad72b19c7ea45d74fa5579ee72f', + ], + 'configure_cmd': ("ln -fs %(builddir)s/llvm-project-rocm-%(version)s %(builddir)s/llvm-project;" + "ln -fs %(builddir)s/flang-rocm-%(version)s %(builddir)s/flang;" + "ln -fs %(builddir)s/aomp-extras-rocm-%(version)s %(builddir)s/aomp-extras;" + " echo "), # echo --prefix=... + 'build_cmd': ("export OMPEXTRA_DIR=\"%(builddir)s/openmp-extras\";" + "export OUT_DIR=\"$OMPEXTRA_DIR\";" + "export AOMP=\"$OUT_DIR/llvm\";" + "export AOMP_STANDALONE_BUILD=0;" + "export AOMP_REPOS=\"%(builddir)s\";" + "export ROCM_DIR=\"%(installdir)s\";" + "export DEVICELIBS_ROOT=\"%(builddir)s/ROCm-Device-Libs-rocm-%(version)s\";" + "export LLVM_PROJECT_ROOT=\"%(builddir)s/llvm-project\";" + "cd \"%(builddir)s/aomp-rocm-%(version)s/bin\";" + "./build_extras.sh && " + "./build_extras.sh install && " + "./build_openmp.sh && " + "./build_openmp.sh install && " + "./build_pgmath.sh && " + "./build_pgmath.sh install && " + "./build_flang.sh && " + "./build_flang.sh install && " + "./build_flang_runtime.sh && " + "./build_flang_runtime.sh install && echo "), # echo -j 64 ... + # echo install ? + 'install_cmd': "cp -r %(builddir)s/openmp-extras/* %(installdir)s/; echo " + }), + ('rocPRIM', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': [ + 'b5a08d2e76388bd1ffa6c946009928fe95de846ab6b65a6475998070c0cf6dc1', + ], + 'srcdir': '%(name)s-rocm-%(version)s/', + 'preconfigopts': "export ROCM_PATH=%(installdir)s; ", + 'configopts': (" -Damd_comgr_DIR=%(installdir)s/lib/cmake/amd_comgr " + " -DCMAKE_CXX_COMPILER=%(installdir)s/hip/bin/hipcc " + " -DBUILD_TEST=OFF " + " -DBUILD_BENCHMARK=OFF ") +\ + " -DAMDGPU_TARGETS=%s " % local_amdgpu_targets, + 'prebuildopts': "export ROCM_PATH=%(installdir)s; " + }), + ('rocFFT', version, + { + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'sources': [{ + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'patches': [ + ('https://github.com/ROCmSoftwarePlatform/rocFFT/commit/31589ce749a7dc27158e98dcbfbb33ab0a288fa5.patch', + '%(name)s-rocm-%(version)s')], + 'checksums': [ + 'b4fcd03c1b07d465bb307ec33cc7fb50036dff688e497c5e52b2dec37f4cb618', + '9a8a7eae7d529eab197e3df0c6553d952633ef38ab805857140a7f98e856b030', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': "export ROCM_PATH=%(installdir)s; ", + 'configopts': " -DCMAKE_CXX_COMPILER=%(installdir)s/hip/bin/hipcc " +\ + " -DAMDGPU_TARGETS=%s " % local_amdgpu_targets, + 'prebuildopts': "export ROCM_PATH=%(installdir)s; " + }), + ('rocRAND', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }, { + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/hipRAND/archive'], + 'download_filename': '20ac3db9d7462c15a3e96a6f0507cd5f2ee089c4.tar.gz', + 'filename': 'hiprand-%(version)s.tar.gz', + }], + 'checksums': [ + '4a19e1bcb60955a02a73ad64594c23886d6749afe06b0104e2b877dbe02c8d1c', + 'ee38a68c9e88056b7ecd41553e496e455dbb3fe08871ff3545430d6733070e6b', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': ("export ROCM_PATH=%(installdir)s; " + "rm -rf %(builddir)s/%(name)s-rocm-%(version)s/hipRAND; " + "ln -sf %(builddir)s/hipRAND-20ac3db9d7462c15a3e96a6f0507cd5f2ee089c4 " + " %(builddir)s/%(name)s-rocm-%(version)s/hipRAND && "), + 'configopts': " -DCMAKE_CXX_COMPILER=%(installdir)s/hip/bin/hipcc " +\ + " -DAMDGPU_TARGETS=%s " % local_amdgpu_targets +\ + " -DBUILD_TEST=OFF ", + 'prebuildopts': "export ROCM_PATH=%(installdir)s; ", + 'installopts': "install && " + "\n".join([ + "install -d %(installdir)s/include", + "ln -s %(installdir)s/hiprand/include %(installdir)s/include/hiprand", + "ln -s %(installdir)s/rocrand/include %(installdir)s/include/rocrand", + ]) + "\n echo " + }), + ('rocBLAS', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': [ + '915374431db8f0cecdc2bf318a0ad33c3a8eceedc461d7a06b92ccb02b07313c', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': "export ROCM_PATH=%(installdir)s; ", + 'configopts': " -DAMDGPU_TARGETS=%s " % local_amdgpu_targets +\ + (" -DCMAKE_PREFIX_PATH=%(installdir)s/llvm/lib/cmake/llvm " + " -DCMAKE_CXX_COMPILER=%(installdir)s/hip/bin/hipcc " + " -Damd_comgr_DIR=%(installdir)s/lib/cmake/amd_comgr " + " -DBUILD_WITH_TENSILE=ON " + " -DBUILD_WITH_TENSILE_HOST=ON " + " -DTensile_LIBRARY_FORMAT=yaml " + " -DTensile_COMPILER=hipcc " + " -DTensile_LOGIC=asm_full " + " -DTensile_CODE_OBJECT_VERSION=V3 " + " -DBUILD_CLIENTS_TESTS=OFF " + " -DBUILD_CLIENTS_BENCHMARKS=OFF " + " -DBUILD_CLIENTS_SAMPLES=OFF " + " -DBUILD_TESTING=OFF "), + 'prebuildopts': "export ROCM_PATH=%(installdir)s; ", + }), + ('MIOpen', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }, { + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/half/archive'], + 'download_filename': '1.12.0.tar.gz', + 'filename': 'half-1.12.0.tar.gz', + }], + 'patches': [ + ('https://github.com/ROCmSoftwarePlatform/MIOpen/pull/1490.patch', + '%(name)s-rocm-%(version)s'), + ('https://github.com/ROCmSoftwarePlatform/MIOpen/pull/1469.patch', + '%(name)s-rocm-%(version)s'), + # This might actually be some missing flag in hipamd, but disable for now + ('MIOpen-disable-pch-until-5.3.patch', + '%(name)s-rocm-%(version)s'), + ], + 'checksums': [ + '510461f5c5bdbcf8dc889099d1e5960b9f84bd845a9fc9154588a9898c701c1d', + '0a08660b68abb176ebc2a0cdf8de46e3182a7f46c66443bb80dbfaaec98cf969', + + '1d909db4a12832b4024ba3fdd709f6f1dc0e76078dae37c395ceb5edccd1b073', + '31202f23f001a27abf274d08dcfa50aee6c77f7efe8a74c800b9773ce2d7916a', + '2241a0ff476336947c9eccbe144169a23c7da0734737b40372d499d980bf924f', + ], + 'preconfigopts': ( + # This is just completely broken. I think the only dependency missing as of 5.1.3 is "half", + # which is a single header, so download and copy it + # " sed -i 's|^sqlite|#\\0|' " + # " %(builddir)s/%(name)s-rocm-%(version)s/{,min-}requirements.txt; " + # " sed -i 's|^boost|#\\0|' " + # " %(builddir)s/%(name)s-rocm-%(version)s/{,min-}requirements.txt; " + # " sed -i 's|^ROCmSoftwarePlatform/llvm-project-mlir|#\\0|' " + # " %(builddir)s/%(name)s-rocm-%(version)s/{,min-}requirements.txt; " + # " cmake -P %(builddir)s/%(name)s-rocm-%(version)s/install_deps.cmake " + # "--minimum --prefix \"%(builddir)s/%(name)s-rocm-%(version)s/deps\"; " + " install -d %(builddir)s/%(name)s-rocm-%(version)s/deps/half/include; " + " cp %(builddir)s/half-1.12.0/include/half.hpp %(builddir)s/%(name)s-rocm-%(version)s/deps/half/include/; " + " export ROCM_PATH=%(installdir)s; " + " export MIOPEN_DEBUG_COMGR_HIP_PCH_ENFORCE=0; " + ), + 'srcdir': '%(name)s-rocm-%(version)s/', + 'configopts': " -DAMDGPU_TARGETS=%s " % local_amdgpu_targets +\ + (" -DCMAKE_CXX_COMPILER=%(installdir)s/llvm/bin/clang++ " + " -DCMAKE_C_COMPILER=%(installdir)s/llvm/bin/clang " + " -DHALF_INCLUDE_DIR=%(builddir)s/%(name)s-rocm-%(version)s/deps/half/include " + " -DMIOPEN_BACKEND=HIP "), + 'prebuildopts': "export ROCM_PATH=%(installdir)s; ", + }), + ('AMDMIGraphX', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }, { + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/half/archive'], + 'download_filename': '1.12.0.tar.gz', + 'filename': 'half-1.12.0.tar.gz', + }], + 'checksums': [ + '686e068774500a46b6e6488370bbf5bd0bba6d19ecdb00636f951704d19c9ef2', + '0a08660b68abb176ebc2a0cdf8de46e3182a7f46c66443bb80dbfaaec98cf969', + ], + 'preconfigopts': ( + " install -d %(builddir)s/%(name)s-rocm-%(version)s/deps/half/include; " + " cp %(builddir)s/half-1.12.0/include/half.hpp %(builddir)s/%(name)s-rocm-%(version)s/deps/half/include/; " + " export ROCM_PATH=%(installdir)s; " + ), + 'srcdir': '%(name)s-rocm-%(version)s/', + 'configopts': " -DAMDGPU_TARGETS=%s " % local_amdgpu_targets +\ + (" -DHALF_INCLUDE_DIR=%(builddir)s/%(name)s-rocm-%(version)s/deps/half/include " + " -DCMAKE_SHARED_LINKER_FLAGS=\"$LDFLAGS " + "$EBROOTIMKL/mkl/$EBVERSIONIMKL/lib/intel64/libmkl_avx2.so.1\" "), # explicitly link mkl + 'prebuildopts': "export ROCM_PATH=%(installdir)s; ", + }), + # ('MIVisionX', version, + # { + # 'sources' : [{ + # 'source_urls' : ['https://github.com/GPUOpen-ProfessionalCompute-Libraries/%(name)s/archive'], + # 'download_filename' : 'rocm-%(version)s.tar.gz', + # 'filename' : '%(namelower)s-%(version)s.tar.gz', + # }], + # 'checksums' : [ + # '62591d5caedc13832c3ccef629a88d9c2a43c884daad1124ddcb9c5f7d5470e9', + # ], + # 'preconfigopts' : ( + # " install -d %(builddir)s/%(name)s-rocm-%(version)s/deps/half/include; " + # " cp %(builddir)s/half-1.12.0/include/half.hpp " + # " %(builddir)s/%(name)s-rocm-%(version)s/deps/half/include/; " + # " export ROCM_PATH=%(installdir)s; " + # ), + # 'srcdir' : '%(name)s-rocm-%(version)s/', + # 'install_target_subdir' : 'mivisionx', + # 'configopts' : " -DAMDGPU_TARGETS=%s " % local_amdgpu_targets +\ + # ( + # " -DHALF_INCLUDE_DIR=%(builddir)s/%(name)s-rocm-%(version)s/deps/half/include " + # " -DBACKEND=HIP " + # " -DCMAKE_CXX_FLAGS=\"$CXXFLAGS -isystem $EBROOTFFMPEG/include/ffmpeg4.4\" " + # # Not sure why explicit ffmpeg include dir is necessary + # ), + # 'prebuildopts' : "export ROCM_PATH=%(installdir)s; ", + # }), + ('rocSOLVER', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'patches': [ + ('https://github.com/acxz/rocSOLVER/commit/0f4658e04ac7b48fea213f29b209a0206b67c43f.patch', + '%(name)s-rocm-%(version)s')], + 'checksums': [ + '5a8f3b95ac9a131c31538196e954ea53b863009c092cce0c0ef869a0cd5dd554', + '1f2ad0256013dcc3f3d6a494b864326d2ac0e79b528102cd5b235f55f8069c61', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': "export ROCM_PATH=%(installdir)s; ", + 'configopts': " -DCMAKE_CXX_COMPILER=%(installdir)s/hip/bin/hipcc " +\ + " -DAMDGPU_TARGETS=%s " % local_amdgpu_targets, + 'prebuildopts': "export ROCM_PATH=%(installdir)s; ", + }), + ('rocSPARSE', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': [ + 'ef9641045b36c9aacc87e4fe7717b41b1e29d97e21432678dce7aca633a8edc2', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': "export ROCM_PATH=%(installdir)s; ", + 'configopts': " -DAMDGPU_TARGETS=%s " % local_amdgpu_targets +\ + (" -Drocprim_DIR=\"%(installdir)s/rocprim/rocprim/lib/cmake/rocprim\" " + " -DCMAKE_CXX_COMPILER=%(installdir)s/hip/bin/hipcc " + " -DBUILD_CLIENT_SAMPLES=OFF "), + 'prebuildopts': "export ROCM_PATH=%(installdir)s; ", + }), + ('rocThrust', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': [ + '8d92de1e69815d92a423b7657f2f37c90f1d427f5bc92915c202d4c266254dad', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': "export ROCM_PATH=%(installdir)s; ", + 'configopts': " -DAMDGPU_TARGETS=%s " % local_amdgpu_targets +\ + (" -Damd_comgr_DIR=\"%(installdir)s/lib/cmake/amd_comgr\" " + " -DCMAKE_CXX_COMPILER=%(installdir)s/hip/bin/hipcc " + " -DBUILD_TEST=OFF "), + 'prebuildopts': "export ROCM_PATH=%(installdir)s; ", + }), + ('rocALUTION', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'patches': [('rocALUTION-complex.patch', '%(name)s-rocm-%(version)s')], + 'checksums': [ + '7febe8179f120cbe58ea255bc233ad5d1b4c106f3934eb8e670135a8b7bd09c7', + '870c69bca23a3cff3741a54e8222fefb329f9ab62fd9d0f47a3f14bfabda76b8', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': "export ROCM_PATH=%(installdir)s; ", + 'configopts': " -DAMDGPU_TARGETS=%s " % local_amdgpu_targets +\ + " -DROCM_PATH=\"%(installdir)s\" ", + 'prebuildopts': "export ROCM_PATH=%(installdir)s; ", + 'preinstallopts': "export ROCM_PATH=%(installdir)s; ", + }), + ('hipCUB', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': [ + 'dc75640689b6a5e15dd3acea643266bdf114ea63efc60be8272f484cf8f04494', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': "export ROCM_PATH=%(installdir)s; ", + 'configopts': " -DAMDGPU_TARGETS=%s " % local_amdgpu_targets +\ + (" -DROCM_PATH=\"%(installdir)s\" " + " -DCMAKE_CXX_COMPILER=%(installdir)s/hip/bin/hipcc " + " -Damd_comgr_DIR=\"%(installdir)s/lib/cmake/amd_comgr\" "), + 'prebuildopts': "export ROCM_PATH=%(installdir)s; ", + 'preinstallopts': "export ROCM_PATH=%(installdir)s; ", + }), + ('hipBLAS', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': [ + 'f0fdaa851971b41b48ec2e7d640746fbd6f9f433da2020c5fd95c91a7473d9e1', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': "export ROCM_PATH=%(installdir)s; ", + 'configopts': " -DAMDGPU_TARGETS=%s " % local_amdgpu_targets +\ + (" -DROCM_PATH=\"%(installdir)s\" " + " -DCMAKE_CXX_COMPILER=%(installdir)s/hip/bin/hipcc " + " -Damd_comgr_DIR=\"%(installdir)s/lib/cmake/amd_comgr\" " + " -DBUILD_CLIENTS_TESTS=OFF " + " -DBUILD_CLIENTS_SAMPLES=OFF "), + 'prebuildopts': "export ROCM_PATH=%(installdir)s; ", + 'preinstallopts': "export ROCM_PATH=%(installdir)s; ", + }), + ('hipFFT', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': [ + 'c26fa64499293b25d0686bed04feb61378c878a4bb4a6d559e6cb7be1f6bf2ec', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': "export ROCM_PATH=%(installdir)s; ", + 'configopts': " -DAMDGPU_TARGETS=%s " % local_amdgpu_targets +\ + (" -DROCM_PATH=\"%(installdir)s\" " + " -DCMAKE_CXX_COMPILER=%(installdir)s/hip/bin/hipcc " + " -Damd_comgr_DIR=\"%(installdir)s/lib/cmake/amd_comgr\" " + " -DCMAKE_MODULE_PATH=\"%(installdir)s/hip/cmake\" " + " -DBUILD_CLIENTS_TESTS=OFF " + " -DBUILD_CLIENTS_SAMPLES=OFF "), + 'prebuildopts': "export ROCM_PATH=%(installdir)s; ", + 'preinstallopts': "export ROCM_PATH=%(installdir)s; ", + }), + ('hipfort', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': [ + '8f8849d8d0972366bafa41be35cf6a7a59480ed584d1ddff39768cb14247e9d4', + ], + 'install_target_subdir': 'hipfort', + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': "export ROCM_PATH=%(installdir)s; ", + 'configopts': " -DAMDGPU_TARGETS=%s " % local_amdgpu_targets +\ + " -DROCM_PATH=\"%(installdir)s\" ", + 'prebuildopts': "export ROCM_PATH=%(installdir)s; ", + 'preinstallopts': "export ROCM_PATH=%(installdir)s; ", + }), + ('hipSOLVER', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': [ + '96faa799a2db8078b72f9c3b5c199179875a7c20dc1064371b22a6a63397c145', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': "export ROCM_PATH=%(installdir)s; ", + 'configopts': " -DAMDGPU_TARGETS=%s " % local_amdgpu_targets +\ + (" -DROCM_PATH=\"%(installdir)s\" " + " -DCMAKE_CXX_COMPILER=%(installdir)s/hip/bin/hipcc "), + 'prebuildopts': "export ROCM_PATH=%(installdir)s; ", + 'preinstallopts': "export ROCM_PATH=%(installdir)s; ", + }), + ('hipSPARSE', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': [ + '6e6a0752654f0d391533df8cedf4b630a78ad34c99087741520c582963ce1602', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': "export ROCM_PATH=%(installdir)s; ", + 'configopts': " -DAMDGPU_TARGETS=%s " % local_amdgpu_targets +\ + (" -DROCM_PATH=\"%(installdir)s\" " + " -DCMAKE_CXX_COMPILER=%(installdir)s/hip/bin/hipcc " + " -DCMAKE_CXX_STANDARD=20 " + " -Damd_comgr_DIR=\"%(installdir)s/lib/cmake/amd_comgr\" " + " -DAMDDeviceLibs_DIR=\"%(installdir)s/lib/cmake/AMDDeviceLibs\" " + " -Dhip_DIR=\"%(installdir)s/hip/lib/cmake/hip\" " + " -Drocsparse_DIR=\"%(installdir)s/rocsparse/lib/cmake/rocsparse\" " + " -DBUILD_CLIENTS_TESTS=OFF " + " -DBUILD_CLIENTS_SAMPLES=OFF "), + 'prebuildopts': "export ROCM_PATH=%(installdir)s; ", + 'preinstallopts': "export ROCM_PATH=%(installdir)s; ", + }), + # ('ROCmValidationSuite', version, + # { + # 'sources' : [{ + # 'source_urls' : ['https://github.com/ROCm-Developer-Tools/%(name)s/archive'], + # 'download_filename' : 'rocm-%(version)s.tar.gz', + # 'filename' : '%(namelower)s-%(version)s.tar.gz', + # }], + # # This just adds detection of Arch Linux, so probably not important? + # 'patches' : [ + # ('https://github.com/acxz/ROCmValidationSuite/commit/eb1a4bf5de8d8ba25f21ee13d6af1c46416e3961.patch', + # '%(name)s-rocm-%(version)s')], + # 'checksums' : [ + # '0140a4128c31749c078d9e1dc863cbbd690efc65843c34a4b80f0056e5b8c7b6', + # ], + # 'srcdir' : '%(name)s-rocm-%(version)s', + # 'preconfigopts' : ("export ROCM_PATH=%(installdir)s; " + # ), + # 'configopts' : " -DAMDGPU_TARGETS=%s " % local_amdgpu_targets +\ + # (" -DROCM_PATH=\"%(installdir)s\" " + # ), + # 'prebuildopts' : "export ROCM_PATH=%(installdir)s; ", + # 'preinstallopts': "export ROCM_PATH=%(installdir)s; ", + # }), +] + +modextrapaths = { + 'PATH': [ + # TODO: more binaries + 'mivisionx/bin', + 'rvs/bin', + ], + 'LD_LIBRARY_PATH': [ + 'hip/lib', + 'hipblas/lib', + 'hipfft/lib', + 'hipfort/lib', + 'hipsolver/lib', + 'hipsparse/lib', + 'hsa/lib', + 'llvm/lib', + 'miopen/lib', + 'oam/lib', + 'rccl/lib', + 'rocblas/lib', + 'rocfft/lib', + 'rocm_smi/lib', + 'rocprim/lib', + 'rocsolver/lib', + 'rocsparse/lib', + ], + 'LIBRARY_PATH': [ + 'hip/lib', + 'hipblas/lib', + 'hipfft/lib', + 'hipfort/lib', + 'hipsolver/lib', + 'hipsparse/lib', + 'hsa/lib', + 'llvm/lib', + 'miopen/lib', + 'oam/lib', + 'rccl/lib', + 'rocblas/lib', + 'rocfft/lib', + 'rocm_smi/lib', + 'rocprim/lib', + 'rocsolver/lib', + 'rocsparse/lib', + ], +} + +moduleclass = 'devel' diff --git a/Overlays/jureca_mi200_overlay/r/ROCm/ROCm-5.2.0-GCCcore-11.2.0.eb b/Overlays/jureca_mi200_overlay/r/ROCm/ROCm-5.2.0-GCCcore-11.2.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..14cc1d05457061bdc0af62dfd3c7bb44519a7fe7 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/r/ROCm/ROCm-5.2.0-GCCcore-11.2.0.eb @@ -0,0 +1,1098 @@ +# Bundle containing ROCm framework and libraries +# +# The Arch Linux AUR recipes are the reference: https://github.com/rocm-arch/rocm-arch +# +# TODO: hipify-clang needs CUDA (headers?), right now CUDA is excluded in the mi200 partition. Maybe hidden CUDA or +# allow installation or make a custom package? +# TODO: missing: hipify-clang (see above) +# miopen-opencl (I think it's either miopen-hip or miopen-opencl but not both) +# mivisionx (started writing component, but it needs Qt5,OpenCV,FFmpeg and would pull in +# CUDA which is disallowed) +# rocm-validation-suite (started writing component, but need to install pciutils-devel rpm) +# gpufort (github.com/RocmSoftwarePlatform/openacc-fortran-interfaces.git is required but +# is private, ask AMD for access? ) +# NOTE: This might actually be outdated, but gpufort seems like just a python script? +# +# TODO: missing pkgs that just provide some version numbers: +# rocm-core +# rocm-hip-libraries +# rocm-hip-runtime +# rocm-hip-sdk +# rocm-language-runtime +# rocm-opencl-sdk +# TODO: sanity-check existence of all the libraries +# TODO: some modextrapaths, modextravars might need to be set? +# TODO: Some components are a bit hacked together, writing an easyblock might be better (hipamd, openmp-extras, ...) +# TODO: check if any package is unusable when not compiled on a system with a GPU (code auto-detects GPU). +# There are some tricks wrt rocm_agent_enumerator (ROCM_TARGET_LST env. var. or target.lst in the same dir) +# +# Other notes: +# - MIOpen __hipGetPCH missing might be due to some flag in hipamd, for now the patch disables PCH until v5.3 +# - AMDMIGraphX is made to link explicitly against mkl through configopts - this should be handled by cmake +# either in Blaze or AMDMIGraphX. maybe a patch? + +easyblock = 'Bundle' +name = 'ROCm' +version = '5.2.0' + +homepage = 'https://github.com/RadeonOpenCompute/ROCm' +description = """AMD ROCm - Open Source Platform for HPC and Ultrascale GPU Computing.""" + +site_contacts = 's.nassyr@fz-juelich.de' + +# toolchain = {'name': 'GCCcore', 'version': '11.2.0'} +# rocALUTION asks for mpi (I think it can build without it though) +# OpenMPI needs ROCm at compile time to support it, so this might be problematic ("ROCm-Bare" package containing only +# what OpenMPI needs?) +toolchain = {'name': 'gompi', 'version': '2021b'} + + +builddependencies = [ + ("binutils", "2.37"), + ("CMake", "3.23.1"), + ("Ninja", "1.10.2"), + ("makeinfo", "6.8"), # ROCgdb complains about it missing + # roctracer breaks without this (also the newer robotpy-cppheaderparser doesn't seem to work) + ("CppHeaderParser", "2.7.4"), +] + +dependencies = [ + ("libdrm", "2.4.110"), # ROCT complains about libdrm not being found + ("OpenGL", "2021b"), # hip needs mesa + ("Python", "3.9.6"), # rocFFT asks for python headers + ("guile", "2.0.14"), # ROCgdb wants guile-2.0 + ("MPFR", "4.1.0"), # also ROCgdb + ("source-highlight", "3.1.9"), # also ROCgdb + ("babeltrace", "1.5.8"), # also ROCgdb + ("fmt", "8.1.1"), # rocSOLVER uses fmt for something + ("protobuf", "3.17.3"), # AMDMIGraphX and some others + ("nlohmann-json", "3.10.4"), # AMDMIGraphX + ("msgpack-c", "4.0.0"), # AMDMIGraphX + ("msgpack-cpp", "4.1.1"), # AMDMIGraphX + ("pybind11", "2.7.1"), # AMDMIGraphX + ("Blaze", "3.8.1", + '', ('gomkl', '2021b')), # AMDMIGraphX + # AMDMIGraphX, probably getting it from Blaze, but better to put explicit + ("imkl", "2021.4.0"), + # dependency + # ("FFmpeg", "4.4.1"), # MIVisionX + # ("OpenCV", "4.5.4", '', ('gcccoremkl','2021b')), # MIVisionX + # ("Qt5", "5.15.2"), # MIVisionX + ("OpenCL-Headers", "2022.05.18"), # OpenCL runtime and miopengemm + ("OpenCL-ICD-Loader", "2022.05.18"), # OpenCL runtime and miopengemm +] + +default_easyblock = 'CMakeNinja' +github_account = "RadeonOpenCompute" + +local_gpus = ["gfx90a:xnack-", "gfx90a:xnack+"] +local_amdgpu_targets = ";".join(local_gpus) +local_hip_targets = " ".join(local_gpus) + +components = [ + ('ROCT-Thunk-Interface', version, + { + 'source_urls': [GITHUB_SOURCE], + 'sources': [{ + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': ['3797cb0eafbec3fd3d4a2b53f789eb8cdbab30729f13dbcca0a10bc1bafd2187'], + 'srcdir': '%(name)s-rocm-%(version)s' + }), + ('rocm-cmake', version, + { + 'source_urls': [GITHUB_SOURCE], + 'sources': [{ + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': ['be8646c4f7babfe9a103c97d0e9f369322f8ac6cfa528edacdbdcf7f3ef44943'], + 'srcdir': '%(name)s-rocm-%(version)s' + }), + ('llvm-project', version, + { + 'source_urls': [GITHUB_SOURCE], + 'sources': [{ + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': 'rocm-llvm-%(version)s.tar.gz', + }], + 'checksums': ['0f892174111b78a02d1a00f8f46d9f80b9abb95513a7af38ecf2a5a0882fe87f'], + 'srcdir': '%(name)s-rocm-%(version)s/llvm', + 'install_target_subdir': 'llvm', + 'configopts': (" -DLLVM_HOST_TRIPLE=x86_64-linux-gnu " + " -DLLVM_BUILD_UTILS=ON " + " -DLLVM_ENABLE_BINDINGS=OFF " + " -DOCAMLFIND=NO " + " -DLLVM_ENABLE_OCAMLDOC=OFF " + " -DLLVM_INCLUDE_BENCHMARKS=OFF " + " -DLLVM_BUILD_TESTS=OFF " + " -DLLVM_ENABLE_PROJECTS='llvm;clang;compiler-rt;lld' " + " -DLLVM_TARGETS_TO_BUILD='AMDGPU;X86' " + " -DLLVM_BINUTILS_INCDIR=$EBROOTBINUTILS/include ") + }), + ('ROCm-Device-Libs', version, + { + 'source_urls': [GITHUB_SOURCE], + 'sources': [{ + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': ['901674bc941115c72f82c5def61d42f2bebee687aefd30a460905996f838e16c'], + 'srcdir': '%(name)s-rocm-%(version)s', + 'configopts': " -DLLVM_DIR=%(installdir)s/llvm/lib/cmake/llvm " + }), + ('ROCm-CompilerSupport', version, + { + 'source_urls': [GITHUB_SOURCE], + 'sources': [{ + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': ['5f63fa93739ee9230756ef93c53019474b6cdddea3b588492d785dae1b08c087'], + 'srcdir': '%(name)s-rocm-%(version)s/lib/comgr', + 'configopts': " -DCMAKE_PREFIX_PATH=\"%(installdir)s/llvm;%(installdir)s\" " + }), + ('hsa-amd-aqlprofile', version, + { + 'easyblock': "Binary", + 'source_urls': ['http://repo.radeon.com/rocm/apt/%(version_major_minor)s/pool/main/h/hsa-amd-aqlprofile/'], + 'sources': [{ + 'download_filename': 'hsa-amd-aqlprofile_1.0.0.50200-65_amd64.deb', + 'filename': '%(name)s-%(version)s.deb', + 'extract_cmd': 'ar x %s' + }], + 'checksums': ['4730b61c61d7caf349a3fe82f93acca708e2da760762213111e0b3100f0bc3f4'], + 'install_cmd': """ + mkdir -p %(builddir)s/%(name)s + tar -C "%(builddir)s/%(name)s" -xf data.tar.gz; + cp -r %(builddir)s/%(name)s/opt/rocm-%(version)s/%(name)s/ %(installdir)s/hsa + cp -r %(builddir)s/%(name)s/opt/rocm-%(version)s/lib/ %(installdir)s/lib + cp -r %(builddir)s/%(name)s/opt/rocm-%(version)s/share/ %(installdir)s/share + ln -sf %(installdir)s/hsa/lib/lib%(name)s64.so %(installdir)s/lib/lib%(name)s64.so + """ + }), + ('ROCR-Runtime', version, + { + 'source_urls': [GITHUB_SOURCE], + 'sources': [{ + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': ['529e49693dd9f6459586dd0a26f14dd77dbdf8c0b45fb54830b294eba7babd27'], + 'srcdir': '%(name)s-rocm-%(version)s/src', + 'configopts': (" -DCMAKE_PREFIX_PATH=\"%(installdir)s/llvm;%(installdir)s\" " + " -DCMAKE_CXX_FLAGS='-DNDEBUG' ") + }), + ('rocminfo', version, + { + 'source_urls': [GITHUB_SOURCE], + 'sources': [{ + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'patches': [ + ('https://patch-diff.githubusercontent.com/raw/RadeonOpenCompute/rocminfo/pull/53.patch', + '%(name)s-rocm-%(version)s')], + 'checksums': [ + 'e721eb81efd384abd22ff01cdcbb6245b11084dc11a867c74c8ad6b028aa0404', + '95d6f679a7ad45ee663222c85dd5e7d456c9cf5da3cd43455c3c2fe2ee36f0a0', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'configopts': (" -DCMAKE_PREFIX_PATH=\"%(installdir)s/llvm;%(installdir)s\" " + " -DROCRTST_BLD_TYPE=Release " + " -DCMAKE_INSTALL_LIBDIR=lib ") + }), + ('hipamd', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCm-Developer-Tools/HIP/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': 'hip-%(version)s.tar.gz', + }, { + 'source_urls': ['https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': 'rocm-opencl-%(version)s.tar.gz', + }, { + 'source_urls': ['https://github.com/ROCm-Developer-Tools/ROCclr/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': 'rocclr-%(version)s.tar.gz', + }, { + 'source_urls': ['https://github.com/ROCm-Developer-Tools/hipamd/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': 'hipamd-%(version)s.tar.gz', + }], + 'patches': [ + ('hipamd-5.1.3-git-hash.patch', 'hipamd-rocm-%(version)s') + ], + 'checksums': [ + 'a6e0515d4d25865c037b546035df9c51f0882cd2700e759c266ff7e199f37c3a', + '80f73387effdcd987a150978775a87049a976aa74f5770d4420847b004dd59f0', + '37f5fce04348183bce2ece8bac1117f6ef7e710ca68371ff82ab08e93368bafb', + '8774958bebc29a4b7eb9dc2d38808d79d9a24bf9c1f44e801ff99d2d5ba82240', + 'bf5429dfb95e11844c14fe4d2aced3a023ff4bcc7dd5ded78d81ce3df1f08249', + ], + 'srcdir': 'hipamd-rocm-%(version)s/', + 'install_target_subdir': 'hip', + 'configopts': (" -DCMAKE_PREFIX_PATH=\"%(installdir)s/llvm;%(installdir)s\" " + " -DHIP_COMMON_DIR=%(builddir)s/HIP-rocm-%(version)s/ " + " -DAMD_OPENCL_PATH=%(builddir)s/ROCm-OpenCL-Runtime-rocm-%(version)s/ " + " -DROCCLR_PATH=%(builddir)s/ROCclr-rocm-%(version)s/ " + " -DROCCLR_INCLUDE_PATH=%(builddir)s/ROCclr-rocm-%(version)s " + " -DHIP_PLATFORM=amd " + " -DCMAKE_INSTALL_LIBDIR=lib "), + 'installopts': "install && " + "\n".join([ + "sed -i '/__noinline__/d' %(installdir)s/hip/include/hip/amd_detail/host_defines.h", + "install -d %(installdir)s/bin", + "install -d %(installdir)s/include", + "install -d %(installdir)s/lib/cmake", + ("for binary in hipcc hipconfig hipcc.pl hipconfig.pl; " + " do ln -s %(installdir)s/hip/bin/$binary %(installdir)s/bin/$binary; " + "done"), + "ln -s %(installdir)s/hip/lib/libamdhip64.so %(installdir)s/lib/libamdhip64.so", + "ln -s %(installdir)s/hip/include/hip %(installdir)s/include/hip", + "ln -s %(installdir)s/hip/lib/cmake/hip %(installdir)s/lib/cmake/hip", + "ln -s %(installdir)s/hip/lib/cmake/hip-lang %(installdir)s/lib/cmake/hip-lang", + ]) + "\n echo " + }), + ('llvm-project-mlir', version, + { + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'sources': [{ + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + # fix stray ";" in linker flags + 'patches': [ + ('llvm-project-mlir-fix-rpath-flags.patch', + '%(name)s-rocm-%(version)s') + ], + 'checksums': [ + '546121f203e7787d3501fbaf6673bdbeefbb39e0446b02c480454338362a1f01', + '53c05fab666019860a60e8a32fdc99046177a1f0dd76a4a5ec9fc3dab7b5bba5', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': 'export ROCM_PATH=%(installdir)s; export HIP_PATH=%(installdir)s/hip; ', + 'prebuildopts': 'export ROCM_PATH=%(installdir)s; export HIP_PATH=%(installdir)s/hip; ', + 'preinstallopts': 'export ROCM_PATH=%(installdir)s; export HIP_PATH=%(installdir)s/hip; ', + 'configopts': ( + " -DMLIR_MIOPEN_SQLITE_ENABLED=On " + " -DBUILD_FAT_LIBMLIRMIOPEN=1 " + " -DROCM_PATH=%(installdir)s " + " -DLLVM_TARGETS_TO_BUILD='AMDGPU;X86' ") + }), + ('rocm_smi_lib', version, + { + 'source_urls': [GITHUB_SOURCE], + 'sources': [{ + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'patches': [ + ('https://patch-diff.githubusercontent.com/raw/RadeonOpenCompute/rocm_smi_lib/pull/107.patch', + '%(name)s-rocm-%(version)s')], + 'checksums': [ + '7bce567ff4e087598eace2cae72d24c98b2bcc93af917eafa61ec9d1e8ef4477', + 'f1d66af131833a55bcfcac63e9af7194cc38cb1bb583fb74427e4f0f89719910', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'configopts': (" -DCMAKE_SHARED_LINKER_FLAGS=\"-fuse-ld=bfd\" " + " -DCMAKE_MODULE_LINKER_FLAGS=\"-fuse-ld=bfd\" " + " -DCMAKE_EXE_LINKER_FLAGS=\"-fuse-ld=bfd\" ") + }), + ('atmi', version, + { + 'easyblock': 'CMakeMake', # Uses cmake in a crappy way breaking ninja + 'sources': [{ + 'source_urls': [GITHUB_SOURCE], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': [ + '33e77905a607734157d46c736c924c7c50b6b13f2b2ddbf711cb08e37f2efa4f', + ], + 'srcdir': '%(name)s-rocm-%(version)s/src', + 'install_target_subdir': 'atmi', + 'preconfigopts': "export ROCM_PATH=%(installdir)s; ", + 'configopts': " -DROCM_VERSION=\"%(version)s\" " +\ + " -DAMDGPU_TARGETS=\"%s\" " % local_amdgpu_targets, + 'prebuildopts': "export ROCM_PATH=%(installdir)s; " + }), + ('ROCdbgapi', version, + { + 'source_urls': ['https://github.com/ROCm-Developer-Tools/%(name)s/archive'], + 'sources': [{ + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'patches': [ + ('https://patch-diff.githubusercontent.com/raw/ROCm-Developer-Tools/ROCdbgapi/pull/4.patch', + '%(name)s-rocm-%(version)s')], + 'checksums': [ + '44f0528a7583bc59b6585166d2289970b20115c4c70e3bcc218aff19fc242b3f', + '91b29cafec79441e6c311d50ca5653ec8315c401b1cc0f93ce65bfdfdda2e04e', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + }), + ('rocr_debug_agent', version, + { + 'source_urls': ['https://github.com/ROCm-Developer-Tools/%(name)s/archive'], + 'sources': [{ + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': ['f8e8d5ad691033d0c0f1850d69f35c98ba9722ab4adc66c4251f22257f56f0a2'], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': 'export ROCM_PATH=%(installdir)s; export HIP_PATH=%(installdir)s/hip; ', + 'prebuildopts': 'export ROCM_PATH=%(installdir)s; export HIP_PATH=%(installdir)s/hip; ', + 'preinstallopts': 'export ROCM_PATH=%(installdir)s; export HIP_PATH=%(installdir)s/hip; ', + 'configopts': " -DCMAKE_HIP_ARCHITECTURES=\"%s\" " % local_hip_targets +\ + (" -DCMAKE_PREFIX_PATH=\"%(installdir)s;%(installdir)s/hip\" " + " -DCMAKE_MODULE_PATH=\"%(installdir)s/hip/cmake;%(installdir)s/hip/lib/cmake/hip\" ") + }), + ('ROCgdb', version, + { + 'easyblock': 'ConfigureMake', + 'source_urls': ['https://github.com/ROCm-Developer-Tools/%(name)s/archive'], + 'sources': [{ + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': ['70c5b443292b9bb114844eb63b72cfab1b65f083511ee39d55db7a633c63bf5a'], + 'preconfigopts': 'cd %(name)s-rocm-%(version)s && ', + 'prebuildopts': 'cd %(name)s-rocm-%(version)s && ', + 'preinstallopts': 'cd %(name)s-rocm-%(version)s && ', + 'configopts': ( + " --program-prefix=roc " + " --disable-shared " + " --disable-nls " + " --enable-source-highlight " + " --enable-tui " + " --enable-64-bit-bfd " + " --enable-targets=\"x86_64-linux-gnu,amdgcn-amd-amdhsa\" " + " --with-system-readline " + " --with-python=$EBROOTPYTHON/bin/python3 " + " --with-rocm-dbgapi=%(installdir)s " + " --with-guile=guile-2.0 " + " --with-expat " + " --with-system-zlib " + " --with-babeltrace " + " --with-lzma " + " --disable-gdbtk " + " --disable-ld " + " --disable-gas " + " --disable-gdbserver " + " --disable-sim " + ) + }), + ('rocprofiler', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCm-Developer-Tools/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }, { + 'source_urls': ['https://github.com/ROCm-Developer-Tools/roctracer/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': 'roctracer-%(version)s.tar.gz', + }], + 'checksums': [ + '1f4db27b56ef1863d4c9e1d96bac9117d66be45156d0637cfe4fd38cae61a23a', + '9747356ce61c57d22c2e0a6c90b66a055e435d235ba3459dc3e3f62aabae6a03', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': 'export ROCM_PATH=%(installdir)s; export HIP_PATH=%(installdir)s/hip; ', + 'prebuildopts': 'export ROCM_PATH=%(installdir)s; export HIP_PATH=%(installdir)s/hip; ', + 'configopts': " -DPROF_API_HEADER_PATH=%(builddir)s/roctracer-rocm-%(version)s/inc/ext", + 'installopts': "install && " + "\n".join([ + "install -d %(installdir)s/bin", + "ln -s %(installdir)s/rocprofiler/bin/rocprof %(installdir)s/bin/rocprof", + ]) + "\n echo " + }), + ('roctracer', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCm-Developer-Tools/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'patches': [ + ('roctracer-hsa_ostream_ops-include.patch', + '%(name)s-rocm-%(version)s'), + ], + 'checksums': [ + '9747356ce61c57d22c2e0a6c90b66a055e435d235ba3459dc3e3f62aabae6a03', + '1a614b3416a50ddcd6fcfa80730a9beb856ca3314b522aef353f0ad7baf593da', + ], + 'preconfigopts': 'export ROCM_PATH=%(installdir)s; export HIP_PATH=%(installdir)s/hip; ', + 'prebuildopts': 'export ROCM_PATH=%(installdir)s; export HIP_PATH=%(installdir)s/hip; ', + 'srcdir': '%(name)s-rocm-%(version)s', + }), + ('rccl', version, + { + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/rccl/archive'], + 'sources': [{ + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': ['6ee3a04da0d16eb53f768a088633a7d8ecc4416a2d0c07f7ba8426ab7892b060'], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': "export ROCM_PATH=%(installdir)s; ", + 'configopts': " -DCMAKE_CXX_COMPILER=%(installdir)s/hip/bin/hipcc " +\ + " -DAMDGPU_TARGETS=\"%s\" " % local_amdgpu_targets, + 'prebuildopts': "export ROCM_PATH=%(installdir)s; " + }), + ('ROCclr', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': 'rocm-opencl-%(version)s.tar.gz', + }, { + 'source_urls': ['https://github.com/ROCm-Developer-Tools/ROCclr/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': 'rocclr-%(version)s.tar.gz', + }], + 'checksums': [ + '80f73387effdcd987a150978775a87049a976aa74f5770d4420847b004dd59f0', + '37f5fce04348183bce2ece8bac1117f6ef7e710ca68371ff82ab08e93368bafb', + ], + 'srcdir': '%(name)s-rocm-%(version)s/', + 'configopts': (" -DAMD_OPENCL_PATH=%(builddir)s/ROCm-OpenCL-Runtime-rocm-%(version)s/ "), + 'installopts': ' && echo ', # install nothing, just build and use for OpenCL later + }), + ('ROCm-OpenCL-Runtime', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': 'rocm-opencl-%(version)s.tar.gz', + }], + 'checksums': [ + '80f73387effdcd987a150978775a87049a976aa74f5770d4420847b004dd59f0', + ], + 'srcdir': '%(name)s-rocm-%(version)s/', + 'configopts': (" -DCMAKE_PREFIX_PATH=\"%(builddir)s/ROCclr-rocm-%(version)s/;%(installdir)s\" " + " -DROCCLR_PATH=%(builddir)s/ROCclr-rocm-%(version)s/ " + " -DROCCLR_INCLUDE_PATH=%(builddir)s/ROCclr-rocm-%(version)s " + " -DROCM_PATH=%(installdir)s" + " -DAMD_OPENCL_PATH=%(builddir)s/ROCm-OpenCL-Runtime-rocm-%(version)s/ "), + }), + ('clang-ocl', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/RadeonOpenCompute/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': [ + 'a2059f6aeccc119abbd444cb37128e00e4854e22a88a47f120f8f8b947d862c5', + ], + 'srcdir': '%(name)s-rocm-%(version)s/', + 'configopts': (" -DCLANG_BIN=\"%(installdir)s/llvm/bin\" " + " -DBITCODE_DIR=\"%(installdir)s/amdgcn/bitcode\" "), + }), + ('MIOpenGEMM', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'patches': [ + ('https://patch-diff.githubusercontent.com/raw/ROCmSoftwarePlatform/MIOpenGEMM/pull/46.patch', + '%(name)s-rocm-%(version)s'), + ], + 'checksums': [ + '10458fb07b56a7fbe165595d588b7bf5f1300c57bda2f3133c3687c7bae39ea8', + '4d54249ca45623328721ec0648b7ba18697ad9f7ef0c0bd01c96b9ed5670fa33', + ], + 'srcdir': '%(name)s-rocm-%(version)s/', + }), + ('openmp-extras', version, + # Very hacky, needs easyblock + { + 'easyblock': 'ConfigureMake', + 'sources': [{ + 'source_urls': ['https://github.com/ROCm-Developer-Tools/aomp/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': 'aomp-%(version)s.tar.gz', + }, { + 'source_urls': ['https://github.com/RadeonOpenCompute/llvm-project/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': 'rocm-llvm-%(version)s.tar.gz', + }, { + 'source_urls': ['https://github.com/RadeonOpenCompute/ROCm-Device-Libs/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': 'rocm-device-libs-%(version)s.tar.gz', + }, { + 'source_urls': ['https://github.com/ROCm-Developer-Tools/flang/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': 'flang-%(version)s.tar.gz', + }, { + 'source_urls': ['https://github.com/ROCm-Developer-Tools/aomp-extras/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': 'aomp-extras-%(version)s.tar.gz', + }], + 'patches': [ + ('llvm-project-hostrpc-fprintf-decl.patch', + 'llvm-project-rocm-%(version)s'), + ('aomp-openmp-buildpath.patch', + 'aomp-rocm-%(version)s'), + ('aomp-5.2.0-openmp-rocm_dir.patch', + 'aomp-rocm-%(version)s'), + ('aomp-flang-decouple-out-dir-and-rocm-install.patch', + 'aomp-rocm-%(version)s'), + ('aomp-flang-libomp-path.patch', + 'aomp-rocm-%(version)s'), + # ('aomp-flang-alarm-signature.patch', + # 'flang-rocm-%(version)s'), + ('aomp-extras-5.2.0-rocm-dir-llvm.patch', + 'aomp-extras-rocm-%(version)s'), + ('aomp-5.2.0-extras-version-string.patch', + 'aomp-rocm-%(version)s'), + ], + 'checksums': [ + '20e21312816272222d1f427ea72a99a9a67077078552f5e2638a40860d161d25', + '0f892174111b78a02d1a00f8f46d9f80b9abb95513a7af38ecf2a5a0882fe87f', + '901674bc941115c72f82c5def61d42f2bebee687aefd30a460905996f838e16c', + '20f48cac9b58496230fa2428eba4e15ec0a6e92d429569b154a328b7a8c5da17', + '817c2e8975e56a8875ff56f9d1ea34d5e7e50f1b541b7f1236e3e5c8d9eee47f', + + 'c846bac17580e939492b843bee092c2e1b2b414a683bdb6be2973ae044642424', + 'f7ed1704ffb095bbe8512b1c567a111936685d35f64123c786194e4239277251', + '0d91c5408192dcceacde986c3419592efc67ad40d359d127604ee9bfbdba477a', + 'e82a4f065cc259095bf96778b913b97fe39d7c207e4e25ccf59d8fa264014262', + 'ff3c3e56bfc11c0c9a6ab5c5392168da06aed3b4a21cdfcf7a149d12a69e2906', + # '7c796d44952da8f089dc3ee013970dba7be43c60eb90131f86ce7d15c67b4b9b', + 'bae31efe2dd3f6813e9198c210ba3390028ed89e0d47e86366bef741c70c4db7', + '7c5372078c74facbd7cae451c3a717bf281344dcd5c4103e1c837d980e79ccc9', + ], + 'configure_cmd': ("ln -fs %(builddir)s/llvm-project-rocm-%(version)s %(builddir)s/llvm-project;" + "ln -fs %(builddir)s/flang-rocm-%(version)s %(builddir)s/flang;" + "ln -fs %(builddir)s/aomp-extras-rocm-%(version)s %(builddir)s/aomp-extras;" + " echo "), # echo --prefix=... + 'build_cmd': ("export OMPEXTRA_DIR=\"%(builddir)s/openmp-extras\";" + "export OUT_DIR=\"$OMPEXTRA_DIR\";" + "export AOMP=\"$OUT_DIR/llvm\";" + "export AOMP_STANDALONE_BUILD=0;" + "export AOMP_REPOS=\"%(builddir)s\";" + "export ROCM_DIR=\"%(installdir)s\";" + "export DEVICELIBS_ROOT=\"%(builddir)s/ROCm-Device-Libs-rocm-%(version)s\";" + "export LLVM_PROJECT_ROOT=\"%(builddir)s/llvm-project\";" + "cd \"%(builddir)s/aomp-rocm-%(version)s/bin\";" + "./build_extras.sh && " + "./build_extras.sh install && " + "./build_openmp.sh && " + "./build_openmp.sh install && " + "./build_pgmath.sh && " + "./build_pgmath.sh install && " + "./build_flang.sh && " + "./build_flang.sh install && " + "./build_flang_runtime.sh && " + "./build_flang_runtime.sh install && echo "), # echo -j 64 ... + # echo install ? + 'install_cmd': "cp -r %(builddir)s/openmp-extras/* %(installdir)s/; echo " + }), + ('rocPRIM', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': [ + 'f99eb7d2f6b1445742fba631a0dc8bb0d464a767a9c4fb79ac865d9570fe747b', + ], + 'srcdir': '%(name)s-rocm-%(version)s/', + 'preconfigopts': "export ROCM_PATH=%(installdir)s; ", + 'configopts': (" -Damd_comgr_DIR=%(installdir)s/lib/cmake/amd_comgr " + " -DCMAKE_CXX_COMPILER=%(installdir)s/hip/bin/hipcc " + " -DBUILD_TEST=OFF " + " -DBUILD_BENCHMARK=OFF ") +\ + " -DAMDGPU_TARGETS=\"%s\" " % local_amdgpu_targets, + 'prebuildopts': "export ROCM_PATH=%(installdir)s; " + }), + ('rocFFT', version, + { + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'sources': [{ + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'patches': [], + 'checksums': [ + 'ebba280b7879fb4bc529a68072b98d4e815201f90d24144d672094bc241743d4', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': "export ROCM_PATH=%(installdir)s; ", + 'configopts': " -DCMAKE_CXX_COMPILER=%(installdir)s/hip/bin/hipcc " +\ + " -DAMDGPU_TARGETS=\"%s\" " % local_amdgpu_targets, + 'prebuildopts': "export ROCM_PATH=%(installdir)s; " + }), + ('rocRAND', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }, { + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/hipRAND/archive'], + 'download_filename': '12e2f070337945318295c330bf69c6c060928b9e.tar.gz', + 'filename': 'hiprand-%(version)s.tar.gz', + }], + 'checksums': [ + 'ab3057e7c17a9fbe584f89ef98ec92a74d638a98d333e7d0f64daf7bc9051e38', + '6a891b7a420ee629776b2eca792b0f0cf92a35e99f7046515ecc9fd2359eadd3', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': ("export ROCM_PATH=%(installdir)s; " + "rm -rf %(builddir)s/%(name)s-rocm-%(version)s/hipRAND; " + "ln -sf %(builddir)s/hipRAND-12e2f070337945318295c330bf69c6c060928b9e " + " %(builddir)s/%(name)s-rocm-%(version)s/hipRAND && "), + 'configopts': " -DCMAKE_CXX_COMPILER=%(installdir)s/hip/bin/hipcc " +\ + " -DAMDGPU_TARGETS=\"%s\" " % local_amdgpu_targets +\ + " -DBUILD_TEST=OFF ", + 'prebuildopts': "export ROCM_PATH=%(installdir)s; ", + 'installopts': "install && " + "\n".join([ + "install -d %(installdir)s/include", + "ln -s %(installdir)s/hiprand/include %(installdir)s/include/hiprand", + "ln -s %(installdir)s/rocrand/include %(installdir)s/include/rocrand", + ]) + "\n echo " + }), + ('rocBLAS', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'patches': [ + ('rocBLAS-5.2.0-find-python-if-undefined.patch', + '%(name)s-rocm-%(version)s'), + ('rocblas-5.2.0-internal-rocblas-include-fix.patch', + '%(name)s-rocm-%(version)s') + ], + 'checksums': [ + 'b178b7db5f0af55b21b5f744b8825f5e002daec69b4688e50df2bca2fac155bd', + 'c01d9235e055a00859bf3571e5afe33e296959296ff895d89a36cd1627d15d71', + '97a068c162f5f3117150cb81ebe9d0f96cc96f5b2be2de6594afb25d6cceae3b', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': "export ROCM_PATH=%(installdir)s; ", + 'configopts': " -DAMDGPU_TARGETS=\"%s\" " % local_amdgpu_targets +\ + (" -DCMAKE_PREFIX_PATH=%(installdir)s/llvm/lib/cmake/llvm " + " -DCMAKE_CXX_COMPILER=%(installdir)s/hip/bin/hipcc " + " -Damd_comgr_DIR=%(installdir)s/lib/cmake/amd_comgr " + " -DBUILD_WITH_TENSILE=ON " + " -DBUILD_WITH_TENSILE_HOST=ON " + " -DTensile_LIBRARY_FORMAT=yaml " + " -DTensile_COMPILER=hipcc " + " -DTensile_LOGIC=asm_full " + " -DTensile_CODE_OBJECT_VERSION=V3 " + " -DBUILD_CLIENTS_TESTS=OFF " + " -DBUILD_CLIENTS_BENCHMARKS=OFF " + " -DBUILD_CLIENTS_SAMPLES=OFF " + " -DBUILD_TESTING=OFF "), + 'prebuildopts': "export ROCM_PATH=%(installdir)s; ", + }), + ('rocWMMA', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'patches': [], + 'checksums': [ + '257ccd1cf2bc1d8064e72e78d276ef7446b2cb7e2dec05ff8331bb44eff2b7cb', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': "export ROCM_PATH=%(installdir)s; ", + 'configopts': (" -DROCWMMA_BUILD_TESTS=OFF " + " -DROCWMMA_BUILD_SAMPLES=OFF " + " -DCMAKE_CXX_COMPILER=%(installdir)s/hip/bin/hipcc ") +\ + " -DAMDGPU_TARGETS=\"%s\" " % local_amdgpu_targets, + 'prebuildopts': "export ROCM_PATH=%(installdir)s; ", + }), + ('MIOpen', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }, { + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/half/archive'], + 'download_filename': '1.12.0.tar.gz', + 'filename': 'half-1.12.0.tar.gz', + }], + 'patches': [ + # This might actually be some missing flag in hipamd, but disable for now + ('MIOpen-disable-pch-until-5.3.patch', + '%(name)s-rocm-%(version)s'), + ('miopen-5.2.0-rocblas-include-fix.patch', + '%(name)s-rocm-%(version)s'), + ], + 'checksums': [ + '5fda69426e81df9f8fb6658e579176b9c4fcce3516fc8488d3cfd2b6f6f2b3b4', + '0a08660b68abb176ebc2a0cdf8de46e3182a7f46c66443bb80dbfaaec98cf969', + + '2241a0ff476336947c9eccbe144169a23c7da0734737b40372d499d980bf924f', + 'f2c98f50cf9a7c1468f563987c7a86047dfadfc01e4004a1323a39d7b8d592ab', + ], + 'preconfigopts': ( + # This is just completely broken. I think the only dependency missing as of 5.1.3 is "half", + # which is a single header, so download and copy it + # " sed -i 's|^sqlite|#\\0|' " + # " %(builddir)s/%(name)s-rocm-%(version)s/{,min-}requirements.txt; " + # " sed -i 's|^boost|#\\0|' " + # " %(builddir)s/%(name)s-rocm-%(version)s/{,min-}requirements.txt; " + # " sed -i 's|^ROCmSoftwarePlatform/llvm-project-mlir|#\\0|' " + # " %(builddir)s/%(name)s-rocm-%(version)s/{,min-}requirements.txt; " + # " cmake -P %(builddir)s/%(name)s-rocm-%(version)s/install_deps.cmake " + # "--minimum --prefix \"%(builddir)s/%(name)s-rocm-%(version)s/deps\"; " + " install -d %(builddir)s/%(name)s-rocm-%(version)s/deps/half/include; " + " cp %(builddir)s/half-1.12.0/include/half.hpp %(builddir)s/%(name)s-rocm-%(version)s/deps/half/include/; " + " export ROCM_PATH=%(installdir)s; " + " export MIOPEN_DEBUG_COMGR_HIP_PCH_ENFORCE=0; " + ), + 'srcdir': '%(name)s-rocm-%(version)s/', + 'configopts': " -DAMDGPU_TARGETS=\"%s\" " % local_amdgpu_targets +\ + (" -DCMAKE_CXX_COMPILER=%(installdir)s/llvm/bin/clang++ " + " -DCMAKE_C_COMPILER=%(installdir)s/llvm/bin/clang " + " -DHALF_INCLUDE_DIR=%(builddir)s/%(name)s-rocm-%(version)s/deps/half/include " + " -DMIOPEN_BACKEND=HIP "), + 'prebuildopts': "export ROCM_PATH=%(installdir)s; ", + }), + ('AMDMIGraphX', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }, { + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/half/archive'], + 'download_filename': '1.12.0.tar.gz', + 'filename': 'half-1.12.0.tar.gz', + }], + 'checksums': [ + '33afcdf52c6e0e3a2f939fcf30e87f712b8e8ef3633a3dc03a19fea359704925', + '0a08660b68abb176ebc2a0cdf8de46e3182a7f46c66443bb80dbfaaec98cf969', + ], + 'preconfigopts': ( + " install -d %(builddir)s/%(name)s-rocm-%(version)s/deps/half/include; " + " cp %(builddir)s/half-1.12.0/include/half.hpp %(builddir)s/%(name)s-rocm-%(version)s/deps/half/include/; " + " export ROCM_PATH=%(installdir)s; " + ), + 'srcdir': '%(name)s-rocm-%(version)s/', + 'configopts': " -DAMDGPU_TARGETS=\"%s\" " % local_amdgpu_targets +\ + (" -DHALF_INCLUDE_DIR=%(builddir)s/%(name)s-rocm-%(version)s/deps/half/include " + " -DCMAKE_SHARED_LINKER_FLAGS=\"$LDFLAGS " + "$EBROOTIMKL/mkl/$EBVERSIONIMKL/lib/intel64/libmkl_avx2.so.1\" "), # explicitly link mkl + 'prebuildopts': "export ROCM_PATH=%(installdir)s; ", + }), + # ('MIVisionX', version, + # { + # 'sources' : [{ + # 'source_urls' : ['https://github.com/GPUOpen-ProfessionalCompute-Libraries/%(name)s/archive'], + # 'download_filename' : 'rocm-%(version)s.tar.gz', + # 'filename' : '%(namelower)s-%(version)s.tar.gz', + # }], + # 'checksums' : [ + # '62591d5caedc13832c3ccef629a88d9c2a43c884daad1124ddcb9c5f7d5470e9', + # ], + # 'preconfigopts' : ( + # " install -d %(builddir)s/%(name)s-rocm-%(version)s/deps/half/include; " + # " cp %(builddir)s/half-1.12.0/include/half.hpp " + # " %(builddir)s/%(name)s-rocm-%(version)s/deps/half/include/; " + # " export ROCM_PATH=%(installdir)s; " + # ), + # 'srcdir' : '%(name)s-rocm-%(version)s/', + # 'install_target_subdir' : 'mivisionx', + # 'configopts' : " -DAMDGPU_TARGETS=\"%s\" " % local_amdgpu_targets +\ + # ( + # " -DHALF_INCLUDE_DIR=%(builddir)s/%(name)s-rocm-%(version)s/deps/half/include " + # " -DBACKEND=HIP " + # " -DCMAKE_CXX_FLAGS=\"$CXXFLAGS -isystem $EBROOTFFMPEG/include/ffmpeg4.4\" " + # # Not sure why explicit ffmpeg include dir is necessary + # ), + # 'prebuildopts' : "export ROCM_PATH=%(installdir)s; ", + # }), + ('rocSOLVER', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'patches': [], + 'checksums': [ + '94d46ebe1266eaa05df50c1789dc27d3f2dbf3cb5af156e757777a82ed6ef356', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': "export ROCM_PATH=%(installdir)s; ", + 'configopts': " -DCMAKE_CXX_COMPILER=%(installdir)s/hip/bin/hipcc " +\ + " -DAMDGPU_TARGETS=\"%s\" " % local_amdgpu_targets, + 'prebuildopts': "export ROCM_PATH=%(installdir)s; ", + }), + ('rocSPARSE', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': [ + '7ed929af16d2502135024a6463997d9a95f03899b8a33aa95db7029575c89572', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': "export ROCM_PATH=%(installdir)s; ", + 'configopts': " -DAMDGPU_TARGETS=\"%s\" " % local_amdgpu_targets +\ + (" -Drocprim_DIR=\"%(installdir)s/rocprim/rocprim/lib/cmake/rocprim\" " + " -DCMAKE_CXX_COMPILER=%(installdir)s/hip/bin/hipcc " + " -DBUILD_CLIENTS_SAMPLES=OFF "), + 'prebuildopts': "export ROCM_PATH=%(installdir)s; ", + }), + ('rocThrust', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': [ + 'afa126218485586682c78e97df8025ae4efd32f3751c340e84c436e08868c326', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': "export ROCM_PATH=%(installdir)s; ", + 'configopts': " -DAMDGPU_TARGETS=\"%s\" " % local_amdgpu_targets +\ + (" -Damd_comgr_DIR=\"%(installdir)s/lib/cmake/amd_comgr\" " + " -DCMAKE_CXX_COMPILER=%(installdir)s/hip/bin/hipcc " + " -DBUILD_TEST=OFF "), + 'prebuildopts': "export ROCM_PATH=%(installdir)s; ", + }), + ('rocALUTION', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'patches': [ + ('rocALUTION-5.2.0-rocblas-include-fix.patch', + '%(name)s-rocm-%(version)s'), + ('rocALUTION-5.2.0-fix-complex-device-operators.patch', + '%(name)s-rocm-%(version)s'), + ], + 'checksums': [ + 'a5aac471bbec87d019ad7c6db779c73327ad40ecdea09dc5ab2106e62cd6b7eb', + '030a7bfe49aeb20b0f72f7e4a1aed9ac2e1d9a901355ebfb58042409f3eebae9', + 'ae7fb5eeba68f7e8af2b81a1b1587c33efeee7d67d3b91cbad8886130e107720', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': "export ROCM_PATH=%(installdir)s; ", + 'configopts': " -DAMDGPU_TARGETS=\"%s\" " % local_amdgpu_targets +\ + " -DROCM_PATH=\"%(installdir)s\" ", + 'prebuildopts': "export ROCM_PATH=%(installdir)s; ", + 'preinstallopts': "export ROCM_PATH=%(installdir)s; ", + }), + ('hipCUB', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': [ + 'ac4dc2310f0eb657e1337c93d8cc4a5d8396f9544a7336eeceb455678a1f9139', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': "export ROCM_PATH=%(installdir)s; ", + 'configopts': " -DAMDGPU_TARGETS=\"%s\" " % local_amdgpu_targets +\ + (" -DROCM_PATH=\"%(installdir)s\" " + " -DCMAKE_CXX_COMPILER=%(installdir)s/hip/bin/hipcc " + " -Damd_comgr_DIR=\"%(installdir)s/lib/cmake/amd_comgr\" "), + 'prebuildopts': "export ROCM_PATH=%(installdir)s; ", + 'preinstallopts': "export ROCM_PATH=%(installdir)s; ", + }), + ('hipBLAS', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'patches': [ + ('hipBLAS-5.2.0-rocblas-include-fix.patch', + '%(name)s-rocm-%(version)s'), + ], + 'checksums': [ + '5e9091dc4ef83896f5c3bc5ade1cb5db8e1a6afc451dbba4da19d8a7ec2b6f29', + 'a499d593cf4186be9236895df470610e26791ea27cf498eb03900e884e1f23ca', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': "export ROCM_PATH=%(installdir)s; ", + 'configopts': " -DAMDGPU_TARGETS=\"%s\" " % local_amdgpu_targets +\ + (" -DROCM_PATH=\"%(installdir)s\" " + " -DCMAKE_CXX_COMPILER=%(installdir)s/hip/bin/hipcc " + " -Damd_comgr_DIR=\"%(installdir)s/lib/cmake/amd_comgr\" " + " -DBUILD_CLIENTS_TESTS=OFF " + " -DBUILD_CLIENTS_SAMPLES=OFF "), + 'prebuildopts': "export ROCM_PATH=%(installdir)s; ", + 'preinstallopts': "export ROCM_PATH=%(installdir)s; ", + }), + ('hipFFT', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': [ + 'ec37edcd61837281c403802ccc1cb01ec3fa3ba135b5ab16617961b66d4cc3e2', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': "export ROCM_PATH=%(installdir)s; ", + 'configopts': " -DAMDGPU_TARGETS=\"%s\" " % local_amdgpu_targets +\ + (" -DROCM_PATH=\"%(installdir)s\" " + " -DCMAKE_CXX_COMPILER=%(installdir)s/hip/bin/hipcc " + " -Damd_comgr_DIR=\"%(installdir)s/lib/cmake/amd_comgr\" " + " -DCMAKE_MODULE_PATH=\"%(installdir)s/hip/cmake\" " + " -DBUILD_CLIENTS_TESTS=OFF " + " -DBUILD_CLIENTS_SAMPLES=OFF "), + 'prebuildopts': "export ROCM_PATH=%(installdir)s; ", + 'preinstallopts': "export ROCM_PATH=%(installdir)s; ", + }), + ('hipfort', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': [ + 'a0af1fe62757993600a41af6bb6c4b8c6cfdfba650389645ac1f995f7623785c', + ], + 'install_target_subdir': 'hipfort', + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': "export ROCM_PATH=%(installdir)s; ", + 'configopts': " -DAMDGPU_TARGETS=\"%s\" " % local_amdgpu_targets +\ + " -DROCM_PATH=\"%(installdir)s\" ", + 'prebuildopts': "export ROCM_PATH=%(installdir)s; ", + 'preinstallopts': "export ROCM_PATH=%(installdir)s; ", + }), + ('hipSOLVER', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': [ + '96927410e0a2cc0f50172604ef6437e15d2cf4b62d22b2035f13aae21f43dc82', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': "export ROCM_PATH=%(installdir)s; ", + 'configopts': " -DAMDGPU_TARGETS=\"%s\" " % local_amdgpu_targets +\ + (" -DROCM_PATH=\"%(installdir)s\" " + " -DCMAKE_CXX_COMPILER=%(installdir)s/hip/bin/hipcc "), + 'prebuildopts': "export ROCM_PATH=%(installdir)s; ", + 'preinstallopts': "export ROCM_PATH=%(installdir)s; ", + }), + ('hipSPARSE', version, + { + 'sources': [{ + 'source_urls': ['https://github.com/ROCmSoftwarePlatform/%(name)s/archive'], + 'download_filename': 'rocm-%(version)s.tar.gz', + 'filename': '%(namelower)s-%(version)s.tar.gz', + }], + 'checksums': [ + '4fdab6ec953c6d2d000687c5979077deafd37208cd722554b5a6ede1e5ba170c', + ], + 'srcdir': '%(name)s-rocm-%(version)s', + 'preconfigopts': "export ROCM_PATH=%(installdir)s; ", + 'configopts': " -DAMDGPU_TARGETS=\"%s\" " % local_amdgpu_targets +\ + (" -DROCM_PATH=\"%(installdir)s\" " + " -DCMAKE_CXX_COMPILER=%(installdir)s/hip/bin/hipcc " + " -DCMAKE_CXX_STANDARD=20 " + " -Damd_comgr_DIR=\"%(installdir)s/lib/cmake/amd_comgr\" " + " -DAMDDeviceLibs_DIR=\"%(installdir)s/lib/cmake/AMDDeviceLibs\" " + " -Dhip_DIR=\"%(installdir)s/hip/lib/cmake/hip\" " + " -Drocsparse_DIR=\"%(installdir)s/rocsparse/lib/cmake/rocsparse\" " + " -DBUILD_CLIENTS_TESTS=OFF " + " -DBUILD_CLIENTS_SAMPLES=OFF "), + 'prebuildopts': "export ROCM_PATH=%(installdir)s; ", + 'preinstallopts': "export ROCM_PATH=%(installdir)s; ", + }), + # ('ROCmValidationSuite', version, + # { + # 'sources' : [{ + # 'source_urls' : ['https://github.com/ROCm-Developer-Tools/%(name)s/archive'], + # 'download_filename' : 'rocm-%(version)s.tar.gz', + # 'filename' : '%(namelower)s-%(version)s.tar.gz', + # }], + # # This just adds detection of Arch Linux, so probably not important? + # 'patches' : [ + # ('https://github.com/acxz/ROCmValidationSuite/commit/eb1a4bf5de8d8ba25f21ee13d6af1c46416e3961.patch', + # '%(name)s-rocm-%(version)s')], + # 'checksums' : [ + # '0140a4128c31749c078d9e1dc863cbbd690efc65843c34a4b80f0056e5b8c7b6', + # ], + # 'srcdir' : '%(name)s-rocm-%(version)s', + # 'preconfigopts' : ("export ROCM_PATH=%(installdir)s; " + # ), + # 'configopts' : " -DAMDGPU_TARGETS=\"%s\" " % local_amdgpu_targets +\ + # (" -DROCM_PATH=\"%(installdir)s\" " + # ), + # 'prebuildopts' : "export ROCM_PATH=%(installdir)s; ", + # 'preinstallopts': "export ROCM_PATH=%(installdir)s; ", + # }), +] + +modextrapaths = { + 'PATH': [ + # TODO: more binaries + 'mivisionx/bin', + 'rvs/bin', + ], + 'LD_LIBRARY_PATH': [ + 'hip/lib', + 'hipblas/lib', + 'hipfft/lib', + 'hipfort/lib', + 'hipsolver/lib', + 'hipsparse/lib', + 'hsa/lib', + 'llvm/lib', + 'miopen/lib', + 'oam/lib', + 'rccl/lib', + 'rocblas/lib', + 'rocfft/lib', + 'rocm_smi/lib', + 'rocprim/lib', + 'rocsolver/lib', + 'rocsparse/lib', + ], + 'LIBRARY_PATH': [ + 'hip/lib', + 'hipblas/lib', + 'hipfft/lib', + 'hipfort/lib', + 'hipsolver/lib', + 'hipsparse/lib', + 'hsa/lib', + 'llvm/lib', + 'miopen/lib', + 'oam/lib', + 'rccl/lib', + 'rocblas/lib', + 'rocfft/lib', + 'rocm_smi/lib', + 'rocprim/lib', + 'rocsolver/lib', + 'rocsparse/lib', + ], +} + +moduleclass = 'devel' diff --git a/Overlays/jureca_mi200_overlay/r/ROCm/aomp-5.2.0-extras-version-string.patch b/Overlays/jureca_mi200_overlay/r/ROCm/aomp-5.2.0-extras-version-string.patch new file mode 100644 index 0000000000000000000000000000000000000000..8d2b26be3fd4d111d00ae30cce2bb9fc0e6cd3e3 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/r/ROCm/aomp-5.2.0-extras-version-string.patch @@ -0,0 +1,12 @@ +diff --git a/bin/build_extras.sh b/bin/build_extras.sh +index c8f35e3e..e98422c6 100755 +--- a/bin/build_extras.sh ++++ b/bin/build_extras.sh +@@ -121,6 +121,7 @@ if [ "$1" != "nocmake" ] && [ "$1" != "install" ] ; then + -DCMAKE_BUILD_TYPE=Release \ + -DROCM_DIR=$ROCM_DIR \ + -DAOMP_STANDALONE_BUILD=0 \ ++ -DAOMP_VERSION_STRING=\"5.2.0\" \ + -DDEVICELIBS_ROOT=$DEVICELIBS_ROOT \ + -DNEW_BC_PATH=1 \ + -DCMAKE_INSTALL_PREFIX=$INSTALL_EXTRAS \ diff --git a/Overlays/jureca_mi200_overlay/r/ROCm/aomp-5.2.0-openmp-rocm_dir.patch b/Overlays/jureca_mi200_overlay/r/ROCm/aomp-5.2.0-openmp-rocm_dir.patch new file mode 100644 index 0000000000000000000000000000000000000000..e9aa2267fc6eabf732ab8397b41c855c668fd381 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/r/ROCm/aomp-5.2.0-openmp-rocm_dir.patch @@ -0,0 +1,24 @@ +diff --git a/bin/build_openmp.sh b/bin/build_openmp.sh +index 99b58ea6..d456bd8c 100755 +--- a/bin/build_openmp.sh ++++ b/bin/build_openmp.sh +@@ -91,14 +91,14 @@ COMMON_CMAKE_OPTS="-DDEVICELIBS_ROOT=$DEVICELIBS_ROOT + -DROCM_DIR=$ROCM_DIR + -DLIBOMPTARGET_ENABLE_DEBUG=ON + -DCMAKE_INSTALL_PREFIX=$INSTALL_OPENMP +--DLLVM_INSTALL_PREFIX=$OUT_DIR/llvm ++-DLLVM_INSTALL_PREFIX=$ROCM_DIR/llvm + -DLLVM_MAIN_INCLUDE_DIR=$LLVM_PROJECT_ROOT/llvm/include + -DLIBOMPTARGET_LLVM_INCLUDE_DIRS=$LLVM_PROJECT_ROOT/llvm/include + -DCMAKE_PREFIX_PATH=$OUT_DIR/build/devicelibs;$ROCM_DIR;$ROCM_DIR/include/hsa +--DCMAKE_C_COMPILER=$OUT_DIR/llvm/bin/clang +--DCMAKE_CXX_COMPILER=$OUT_DIR/llvm/bin/clang++ +--DOPENMP_TEST_C_COMPILER=$OUT_DIR/llvm/bin/clang +--DOPENMP_TEST_CXX_COMPILER=$OUT_DIR/llvm/bin/clang++" ++-DCMAKE_C_COMPILER=$ROCM_DIR/llvm/bin/clang ++-DCMAKE_CXX_COMPILER=$ROCM_DIR/llvm/bin/clang++ ++-DOPENMP_TEST_C_COMPILER=$ROCM_DIR/llvm/bin/clang ++-DOPENMP_TEST_CXX_COMPILER=$ROCM_DIR/llvm/bin/clang++" + + if [ "$AOMP_BUILD_CUDA" == 1 ] ; then + COMMON_CMAKE_OPTS="$COMMON_CMAKE_OPTS diff --git a/Overlays/jureca_mi200_overlay/r/ROCm/aomp-extras-5.2.0-rocm-dir-llvm.patch b/Overlays/jureca_mi200_overlay/r/ROCm/aomp-extras-5.2.0-rocm-dir-llvm.patch new file mode 100644 index 0000000000000000000000000000000000000000..5acba29e82250088f034e1f75278035515ffde29 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/r/ROCm/aomp-extras-5.2.0-rocm-dir-llvm.patch @@ -0,0 +1,13 @@ +diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt +index 4f9208a..ca46a91 100644 +--- a/utils/CMakeLists.txt ++++ b/utils/CMakeLists.txt +@@ -19,7 +19,7 @@ add_custom_target(aomputils ALL) + + find_package(LLVM QUIET CONFIG + PATHS +- $ENV{AOMP} ++ $ENV{ROCM_DIR}/llvm + ${LLVM_DIR} + NO_DEFAULT_PATH + ) diff --git a/Overlays/jureca_mi200_overlay/r/ROCm/aomp-extras-compiler-in-rocm-dir.patch b/Overlays/jureca_mi200_overlay/r/ROCm/aomp-extras-compiler-in-rocm-dir.patch new file mode 100644 index 0000000000000000000000000000000000000000..d5a26d9a232d16a1fff1bbd9eebeedc2b7dd96a9 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/r/ROCm/aomp-extras-compiler-in-rocm-dir.patch @@ -0,0 +1,22 @@ +--- aomp-extras-rocm-4.5.0/aomp-device-libs/aompextras/CMakeLists.txt 2021-08-09 23:36:08.000000000 +0200 ++++ aomp-extras-rocm-4.5.0-patched/aomp-device-libs/aompextras/CMakeLists.txt 2021-11-19 19:56:06.737469951 +0100 +@@ -13,7 +13,7 @@ + # Try to get LLVM_COMPILER from HIP, then AOMP , then default /usr/local/hip + set(AOMP $ENV{AOMP}) + if(AOMP) +- set(LLVM_COMPILER ${AOMP}) ++ set(LLVM_COMPILER ${ROCM_DIR}/llvm) + else() + set(LLVM_COMPILER "$ENV{HOME}/rocm/aomp") + endif() +--- aomp-extras-rocm-4.5.0/utils/CMakeLists.txt 2021-08-09 23:36:08.000000000 +0200 ++++ aomp-extras-rocm-4.5.0-patched/utils/CMakeLists.txt 2021-11-19 19:39:53.406512322 +0100 +@@ -19,7 +19,7 @@ + + find_package(LLVM QUIET CONFIG + PATHS +- $ENV{AOMP} ++ $ENV{ROCM_DIR}/llvm + ${LLVM_DIR} + NO_DEFAULT_PATH + ) diff --git a/Overlays/jureca_mi200_overlay/r/ROCm/aomp-flang-alarm-signature.patch b/Overlays/jureca_mi200_overlay/r/ROCm/aomp-flang-alarm-signature.patch new file mode 100644 index 0000000000000000000000000000000000000000..abb1655979bd69b8f588341c0cd901398ba9e923 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/r/ROCm/aomp-flang-alarm-signature.patch @@ -0,0 +1,12 @@ +diff --color -urN flang-rocm-5.0.1-unpatched/runtime/flang/alarm3f.c flang-rocm-5.0.1/runtime/flang/alarm3f.c +--- flang-rocm-5.0.1-unpatched/runtime/flang/alarm3f.c 2022-03-01 13:57:36.463305752 +0100 ++++ flang-rocm-5.0.1/runtime/flang/alarm3f.c 2022-03-01 13:59:55.300264387 +0100 +@@ -16,7 +16,7 @@ + /* + extern void (*signal(int, void (*)(int)))(int); + */ +-extern int alarm(); ++extern unsigned int alarm(unsigned int __seconds); + + int ENT3F(ALARM, alarm)(int *time, void (*proc)()) + { diff --git a/Overlays/jureca_mi200_overlay/r/ROCm/aomp-flang-decouple-out-dir-and-rocm-install.patch b/Overlays/jureca_mi200_overlay/r/ROCm/aomp-flang-decouple-out-dir-and-rocm-install.patch new file mode 100644 index 0000000000000000000000000000000000000000..ae47c7ea62f83df633b47e90cbefa547055f85b8 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/r/ROCm/aomp-flang-decouple-out-dir-and-rocm-install.patch @@ -0,0 +1,57 @@ +diff --color -urN aomp-rocm-4.5.0-unpatched/bin/build_flang_runtime.sh aomp-rocm-4.5.0/bin/build_flang_runtime.sh +--- aomp-rocm-4.5.0-unpatched/bin/build_flang_runtime.sh 2021-11-16 16:50:07.010969269 +0100 ++++ aomp-rocm-4.5.0/bin/build_flang_runtime.sh 2021-11-16 16:57:38.658874349 +0100 +@@ -59,10 +59,10 @@ + MYCMAKEOPTS="-DCMAKE_BUILD_TYPE=$BUILD_TYPE \ + -DCMAKE_INSTALL_PREFIX=$INSTALL_FLANG \ + -DLLVM_ENABLE_ASSERTIONS=ON \ +--DLLVM_CONFIG=$OUT_DIR/llvm/bin/llvm-config \ +--DCMAKE_CXX_COMPILER=$OUT_DIR/llvm/bin/clang++ \ +--DCMAKE_C_COMPILER=$OUT_DIR/llvm/bin/clang \ +--DCMAKE_Fortran_COMPILER=$OUT_DIR/llvm/bin/flang \ ++-DLLVM_CONFIG=$ROCM_DIR/llvm/bin/llvm-config \ ++-DCMAKE_CXX_COMPILER=$ROCM_DIR/llvm/bin/clang++ \ ++-DCMAKE_C_COMPILER=$ROCM_DIR/llvm/bin/clang \ ++-DCMAKE_Fortran_COMPILER=$ROCM_DIR/llvm/bin/flang \ + -DLLVM_TARGETS_TO_BUILD=$TARGETS_TO_BUILD \ + -DLLVM_INSTALL_RUNTIME=ON \ + -DFLANG_BUILD_RUNTIME=ON \ +diff --color -urN aomp-rocm-4.5.0-unpatched/bin/build_flang.sh aomp-rocm-4.5.0/bin/build_flang.sh +--- aomp-rocm-4.5.0-unpatched/bin/build_flang.sh 2021-11-16 16:50:07.010969269 +0100 ++++ aomp-rocm-4.5.0/bin/build_flang.sh 2021-11-16 16:55:45.538909397 +0100 +@@ -50,9 +50,9 @@ + MYCMAKEOPTS="-DCMAKE_BUILD_TYPE=$BUILD_TYPE \ + -DCMAKE_INSTALL_PREFIX=$INSTALL_FLANG \ + -DLLVM_ENABLE_ASSERTIONS=ON \ +--DLLVM_CONFIG=$OUT_DIR/llvm/bin/llvm-config \ +--DCMAKE_CXX_COMPILER=$OUT_DIR/llvm/bin/clang++ \ +--DCMAKE_C_COMPILER=$OUT_DIR/llvm/bin/clang \ ++-DLLVM_CONFIG=$ROCM_DIR/llvm/bin/llvm-config \ ++-DCMAKE_CXX_COMPILER=$ROCM_DIR/llvm/bin/clang++ \ ++-DCMAKE_C_COMPILER=$ROCM_DIR/llvm/bin/clang \ + -DCMAKE_Fortran_COMPILER=gfortran \ + -DLLVM_TARGETS_TO_BUILD=$TARGETS_TO_BUILD \ + -DCMAKE_C_FLAGS=-I$COMP_INC_DIR \ +diff --color -urN aomp-rocm-4.5.0-unpatched/bin/build_pgmath.sh aomp-rocm-4.5.0/bin/build_pgmath.sh +--- aomp-rocm-4.5.0-unpatched/bin/build_pgmath.sh 2021-11-16 18:52:19.761286900 +0100 ++++ aomp-rocm-4.5.0/bin/build_pgmath.sh 2021-11-16 18:53:21.787423127 +0100 +@@ -41,7 +41,7 @@ + fi + fi + +-COMP_INC_DIR=$(ls -d $OUT_DIR/llvm/lib/clang/*/include ) ++COMP_INC_DIR=$(ls -d $ROCM_DIR/llvm/lib/clang/*/include ) + + if [ "$AOMP_PROC" == "ppc64le" ] ; then + MYCMAKEOPTS="-DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_INSTALL_PREFIX=$INSTALL_FLANG -DLLVM_ENABLE_ASSERTIONS=ON $AOMP_ORIGIN_RPATH -DCMAKE_Fortran_COMPILER=$AOMP_INSTALL_DIR/bin/flang -DLLVM_TARGETS_TO_BUILD=$TARGETS_TO_BUILD -DCMAKE_C_FLAGS=-I$COMP_INC_DIR -DCMAKE_CXX_FLAGS=-I$COMP_INC_DIR" +@@ -51,8 +51,8 @@ + -DCMAKE_INSTALL_PREFIX=$INSTALL_FLANG \ + -DLLVM_ENABLE_ASSERTIONS=ON \ + -DLLVM_CONFIG=$INSTALL_FLANG/bin/llvm-config \ +- -DCMAKE_CXX_COMPILER=$OUT_DIR/llvm/bin/clang++ \ +- -DCMAKE_C_COMPILER=$OUT_DIR/llvm/bin/clang \ ++ -DCMAKE_CXX_COMPILER=$ROCM_DIR/llvm/bin/clang++ \ ++ -DCMAKE_C_COMPILER=$ROCM_DIR/llvm/bin/clang \ + -DLLVM_TARGETS_TO_BUILD=$TARGETS_TO_BUILD \ + -DCMAKE_C_FLAGS=-I$COMP_INC_DIR \ + -DCMAKE_CXX_FLAGS=-I$COMP_INC_DIR \ diff --git a/Overlays/jureca_mi200_overlay/r/ROCm/aomp-flang-libomp-path.patch b/Overlays/jureca_mi200_overlay/r/ROCm/aomp-flang-libomp-path.patch new file mode 100644 index 0000000000000000000000000000000000000000..948ac436ead0895e61a73ce687e47877d45d02ff --- /dev/null +++ b/Overlays/jureca_mi200_overlay/r/ROCm/aomp-flang-libomp-path.patch @@ -0,0 +1,11 @@ +diff --color -urN aomp-rocm-4.5.0-unpatched/bin/build_flang_runtime.sh aomp-rocm-4.5.0/bin/build_flang_runtime.sh +--- aomp-rocm-4.5.0-unpatched/bin/build_flang_runtime.sh 2021-11-16 20:57:05.189706370 +0100 ++++ aomp-rocm-4.5.0/bin/build_flang_runtime.sh 2021-11-16 20:58:20.012150723 +0100 +@@ -66,6 +66,7 @@ + -DLLVM_TARGETS_TO_BUILD=$TARGETS_TO_BUILD \ + -DLLVM_INSTALL_RUNTIME=ON \ + -DFLANG_BUILD_RUNTIME=ON \ ++-DFLANG_LIBOMP=$OMPEXTRA_DIR/llvm/lib/libomp.so \ + -DCMAKE_C_FLAGS=-I$COMP_INC_DIR \ + -DCMAKE_CXX_FLAGS=-I$COMP_INC_DIR \ + -DOPENMP_BUILD_DIR=$OPENMP_BUILD_DIR \ diff --git a/Overlays/jureca_mi200_overlay/r/ROCm/aomp-gcc8-only-for-cuda.patch b/Overlays/jureca_mi200_overlay/r/ROCm/aomp-gcc8-only-for-cuda.patch new file mode 100644 index 0000000000000000000000000000000000000000..812098ac6c9a9c84bcb72c8d54c74a5517f7ba45 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/r/ROCm/aomp-gcc8-only-for-cuda.patch @@ -0,0 +1,42 @@ +diff --color -urN aomp-rocm-4.3.1/bin/build_openmp.sh aomp-rocm-4.3.1-patched/bin/build_openmp.sh +--- aomp-rocm-4.3.1/bin/build_openmp.sh 2021-08-27 05:56:05.000000000 +0200 ++++ aomp-rocm-4.3.1-patched/bin/build_openmp.sh 2021-10-29 19:43:56.338668126 +0200 +@@ -99,21 +99,11 @@ + + GCCLOC=$(getgcc8orless) + GXXLOC=$(getgxx8orless) +-if [ "$GCCLOC" == "" ] ; then +- echo "ERROR: NO ADEQUATE gcc" +- echo " Please install gcc-5, gcc-7, or gcc-8" +- exit 1 +-fi +-if [ "$GXXLOC" == "" ] ; then +- echo "ERROR: NO ADEQUATE g++" +- echo " Please install g++-5, g++-7, or g++-8" +- exit 1 +-fi + + GFXSEMICOLONS=`echo $GFXLIST | tr ' ' ';' ` + #COMMON_CMAKE_OPTS="#-DOPENMP_TEST_C_COMPILER=$AOMP/bin/clang + #-DOPENMP_TEST_CXX_COMPILER=$AOMP/bin/clang++ + + COMMON_CMAKE_OPTS="-DDEVICELIBS_ROOT=$DEVICELIBS_ROOT + -DOPENMP_ENABLE_LIBOMPTARGET=1 + -DOPENMP_ENABLE_LIBOMPTARGET_HSA=1 +@@ -127,6 +119,16 @@ + -DCMAKE_PREFIX_PATH=$ROCM_DIR;$ROCM_DIR/include/hsa" + + if [ "$AOMP_BUILD_CUDA" == 1 ] ; then ++ if [ "$GCCLOC" == "" ] ; then ++ echo "ERROR: NO ADEQUATE gcc" ++ echo " Please install gcc-5, gcc-7, or gcc-8" ++ exit 1 ++ fi ++ if [ "$GXXLOC" == "" ] ; then ++ echo "ERROR: NO ADEQUATE g++" ++ echo " Please install g++-5, g++-7, or g++-8" ++ exit 1 ++ fi + COMMON_CMAKE_OPTS="$COMMON_CMAKE_OPTS + -DLIBOMPTARGET_NVPTX_ENABLE_BCLIB=ON + -DLIBOMPTARGET_NVPTX_CUDA_COMPILER=$AOMP/bin/clang++ diff --git a/Overlays/jureca_mi200_overlay/r/ROCm/aomp-openmp-buildpath.patch b/Overlays/jureca_mi200_overlay/r/ROCm/aomp-openmp-buildpath.patch new file mode 100644 index 0000000000000000000000000000000000000000..e1cf3c36411e03f949f7d84a070fd3d90d27e4fb --- /dev/null +++ b/Overlays/jureca_mi200_overlay/r/ROCm/aomp-openmp-buildpath.patch @@ -0,0 +1,23 @@ +diff --color -urN aomp-rocm-4.3.1/bin/build_openmp.sh aomp-rocm-4.3.1-patched/bin/build_openmp.sh +--- aomp-rocm-4.3.1/bin/build_openmp.sh 2021-08-27 05:56:05.000000000 +0200 ++++ aomp-rocm-4.3.1-patched/bin/build_openmp.sh 2021-10-29 19:43:56.338668126 +0200 +@@ -166,7 +168,7 @@ + env "$@" ${AOMP_CMAKE} $MYCMAKEOPTS $BUILD_DIR/$AOMP_PROJECT_REPO_NAME/openmp + else + echo ${AOMP_CMAKE} $MYCMAKEOPTS $AOMP_REPOS/$AOMP_PROJECT_REPO_NAME/openmp +- env "$@" ${AOMP_CMAKE} $MYCMAKEOPTS $AOMP_REPOS/../$AOMP_PROJECT_REPO_NAME/openmp ++ env "$@" ${AOMP_CMAKE} $MYCMAKEOPTS $AOMP_REPOS/$AOMP_PROJECT_REPO_NAME/openmp + fi + if [ $? != 0 ] ; then + echo "ERROR openmp cmake failed. Cmake flags" +@@ -202,8 +202,8 @@ + echo ${AOMP_CMAKE} $MYCMAKEOPTS $BUILD_DIR/$AOMP_PROJECT_REPO_NAME/openmp + env "$@" ${AOMP_CMAKE} $MYCMAKEOPTS $BUILD_DIR/$AOMP_PROJECT_REPO_NAME/openmp + else +- echo ${AOMP_CMAKE} $MYCMAKEOPTS $AOMP_REPOS/../$AOMP_PROJECT_REPO_NAME/openmp +- env "$@" ${AOMP_CMAKE} $MYCMAKEOPTS $AOMP_REPOS/../$AOMP_PROJECT_REPO_NAME/openmp ++ echo ${AOMP_CMAKE} $MYCMAKEOPTS $AOMP_REPOS/$AOMP_PROJECT_REPO_NAME/openmp ++ env "$@" ${AOMP_CMAKE} $MYCMAKEOPTS $AOMP_REPOS/$AOMP_PROJECT_REPO_NAME/openmp + fi + if [ $? != 0 ] ; then + echo "ERROR openmp debug cmake failed. Cmake flags" diff --git a/Overlays/jureca_mi200_overlay/r/ROCm/aomp-openmp-llvm.patch b/Overlays/jureca_mi200_overlay/r/ROCm/aomp-openmp-llvm.patch new file mode 100644 index 0000000000000000000000000000000000000000..ea0e983cc97b7b6ac7081d9521c4e76d519548d1 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/r/ROCm/aomp-openmp-llvm.patch @@ -0,0 +1,23 @@ +--- a/bin/build_openmp.sh 2022-03-01 13:10:36.609965678 +0100 ++++ b/bin/build_openmp.sh 2022-03-01 13:17:30.403456565 +0100 +@@ -113,14 +113,14 @@ + -DROCM_DIR=$ROCM_DIR + -DLIBOMPTARGET_ENABLE_DEBUG=ON + -DCMAKE_INSTALL_PREFIX=$INSTALL_OPENMP +--DLLVM_INSTALL_PREFIX=$OUT_DIR/llvm ++-DLLVM_INSTALL_PREFIX=$ROCM_DIR/llvm + -DLLVM_MAIN_INCLUDE_DIR=$LLVM_PROJECT_ROOT/llvm/include + -DLIBOMPTARGET_LLVM_INCLUDE_DIRS=$LLVM_PROJECT_ROOT/llvm/include + -DCMAKE_PREFIX_PATH=$ROCM_DIR;$ROCM_DIR/include/hsa;$DEVICELIBS_BUILD_PATH;$OUT_DIR/build/devicelibs +--DCMAKE_C_COMPILER=$OUT_DIR/llvm/bin/clang +--DCMAKE_CXX_COMPILER=$OUT_DIR/llvm/bin/clang++ +--DOPENMP_TEST_C_COMPILER=$OUT_DIR/llvm/bin/clang +--DOPENMP_TEST_CXX_COMPILER=$OUT_DIR/llvm/bin/clang++" ++-DCMAKE_C_COMPILER=$ROCM_DIR/llvm/bin/clang ++-DCMAKE_CXX_COMPILER=$ROCM_DIR/llvm/bin/clang++ ++-DOPENMP_TEST_C_COMPILER=$ROCM_DIR/llvm/bin/clang ++-DOPENMP_TEST_CXX_COMPILER=$ROCM_DIR/llvm/bin/clang++" + + if [ "$AOMP_BUILD_CUDA" == 1 ] ; then + if [ "$GCCLOC" == "" ] ; then + diff --git a/Overlays/jureca_mi200_overlay/r/ROCm/hipBLAS-5.2.0-rocblas-include-fix.patch b/Overlays/jureca_mi200_overlay/r/ROCm/hipBLAS-5.2.0-rocblas-include-fix.patch new file mode 100644 index 0000000000000000000000000000000000000000..0b2fac75a3fa283659590e7f2998d7a4bc429d02 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/r/ROCm/hipBLAS-5.2.0-rocblas-include-fix.patch @@ -0,0 +1,13 @@ +diff --git a/library/src/hcc_detail/hipblas.cpp b/library/src/hcc_detail/hipblas.cpp +index 78faf10..ea95d33 100644 +--- a/library/src/hcc_detail/hipblas.cpp ++++ b/library/src/hcc_detail/hipblas.cpp +@@ -4,7 +4,7 @@ + #include "hipblas.h" + #include "exceptions.hpp" + #include "limits.h" +-#include "rocblas.h" ++#include <rocblas/rocblas.h> + #ifdef __HIP_PLATFORM_SOLVER__ + #include "rocsolver.h" + #endif diff --git a/Overlays/jureca_mi200_overlay/r/ROCm/hipamd-5.1.3-git-hash.patch b/Overlays/jureca_mi200_overlay/r/ROCm/hipamd-5.1.3-git-hash.patch new file mode 100644 index 0000000000000000000000000000000000000000..a3ffb7f479b8121fc2ac9181f8041377071fefc1 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/r/ROCm/hipamd-5.1.3-git-hash.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index a53ab0d2..d40143f5 100755 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -188,7 +188,7 @@ set (HIP_LIB_VERSION_MINOR ${HIP_VERSION_MINOR}) + if (${ROCM_PATCH_VERSION} ) + set (HIP_LIB_VERSION_PATCH ${ROCM_PATCH_VERSION}) + else () +- set (HIP_LIB_VERSION_PATCH ${HIP_VERSION_PATCH}-${HIP_VERSION_GITHASH}) ++ set (HIP_LIB_VERSION_PATCH ${HIP_VERSION_PATCH}) + endif () + set (HIP_LIB_VERSION_STRING "${HIP_LIB_VERSION_MAJOR}.${HIP_LIB_VERSION_MINOR}.${HIP_LIB_VERSION_PATCH}") + if (DEFINED ENV{ROCM_RPATH}) diff --git a/Overlays/jureca_mi200_overlay/r/ROCm/llvm-project-hostrpc-fprintf-decl.patch b/Overlays/jureca_mi200_overlay/r/ROCm/llvm-project-hostrpc-fprintf-decl.patch new file mode 100644 index 0000000000000000000000000000000000000000..da482be716198756ca0f5c93adfb5ef91f12f418 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/r/ROCm/llvm-project-hostrpc-fprintf-decl.patch @@ -0,0 +1,18 @@ +diff --color -urN llvm-project-rocm-5.0.1-unpatched/openmp/libomptarget/hostrpc/src/hostrpc.h llvm-project-rocm-5.0.1/openmp/libomptarget/hostrpc/src/hostrpc.h +--- llvm-project-rocm-5.0.1-unpatched/openmp/libomptarget/hostrpc/src/hostrpc.h 2022-03-01 13:37:53.355306931 +0100 ++++ llvm-project-rocm-5.0.1/openmp/libomptarget/hostrpc/src/hostrpc.h 2022-03-01 13:54:46.401334335 +0100 +@@ -41,6 +41,14 @@ + #include <stdint.h> + #include <stdio.h> + ++#if defined(fprintf) ++ #undef fprintf ++#endif ++ ++#if defined(printf) ++ #undef printf ++#endif ++ + // These are the interfaces for the device stubs */ + EXTERN int fprintf(FILE *, const char *, ...); + EXTERN char *fprintf_allocate(uint32_t bufsz); diff --git a/Overlays/jureca_mi200_overlay/r/ROCm/llvm-project-mlir-fix-rpath-flags.patch b/Overlays/jureca_mi200_overlay/r/ROCm/llvm-project-mlir-fix-rpath-flags.patch new file mode 100644 index 0000000000000000000000000000000000000000..1a8c7fa8130f44c405f24a2e719e232bdae27f62 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/r/ROCm/llvm-project-mlir-fix-rpath-flags.patch @@ -0,0 +1,14 @@ +diff --git a/cmake/llvm-project.cmake b/cmake/llvm-project.cmake +index 94bfdd0e932c..89dce472afc6 100644 +--- a/cmake/llvm-project.cmake ++++ b/cmake/llvm-project.cmake +@@ -48,8 +48,6 @@ list(APPEND LLVM_INCLUDE_DIRS + ) + + # Linker flags +-list(APPEND CMAKE_EXE_LINKER_FLAGS +- " -Wl,-rpath -Wl,${CMAKE_CURRENT_BINARY_DIR}/external/llvm-project/llvm/lib" +-) ++set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath -Wl,${CMAKE_CURRENT_BINARY_DIR}/external/llvm-project/llvm/lib") + + add_subdirectory("${LLVM_PROJ_SRC}/llvm" "external/llvm-project/llvm" EXCLUDE_FROM_ALL) diff --git a/Overlays/jureca_mi200_overlay/r/ROCm/llvm-project-mlir-no-append-rpath-do-it-via-commandline-instead.patch b/Overlays/jureca_mi200_overlay/r/ROCm/llvm-project-mlir-no-append-rpath-do-it-via-commandline-instead.patch new file mode 100644 index 0000000000000000000000000000000000000000..ebe2b869e3999622e3b732167a03bd3215b3265c --- /dev/null +++ b/Overlays/jureca_mi200_overlay/r/ROCm/llvm-project-mlir-no-append-rpath-do-it-via-commandline-instead.patch @@ -0,0 +1,16 @@ +diff --git a/cmake/llvm-project.cmake b/cmake/llvm-project.cmake +index 94bfdd0e932c..abfd91f05ae2 100644 +--- a/cmake/llvm-project.cmake ++++ b/cmake/llvm-project.cmake +@@ -48,8 +48,8 @@ list(APPEND LLVM_INCLUDE_DIRS + ) + + # Linker flags +-list(APPEND CMAKE_EXE_LINKER_FLAGS +- " -Wl,-rpath -Wl,${CMAKE_CURRENT_BINARY_DIR}/external/llvm-project/llvm/lib" +-) ++#list(APPEND CMAKE_EXE_LINKER_FLAGS ++# " -Wl,-rpath -Wl,${CMAKE_CURRENT_BINARY_DIR}/external/llvm-project/llvm/lib" ++#) + + add_subdirectory("${LLVM_PROJ_SRC}/llvm" "external/llvm-project/llvm" EXCLUDE_FROM_ALL) diff --git a/Overlays/jureca_mi200_overlay/r/ROCm/miopen-5.2.0-rocblas-include-fix.patch b/Overlays/jureca_mi200_overlay/r/ROCm/miopen-5.2.0-rocblas-include-fix.patch new file mode 100644 index 0000000000000000000000000000000000000000..733db49ea0574426620378b9ec3a4a4a1ab5df00 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/r/ROCm/miopen-5.2.0-rocblas-include-fix.patch @@ -0,0 +1,26 @@ +diff --git a/src/gemm_v2.cpp b/src/gemm_v2.cpp +index fc8b3222c..f95337dc0 100644 +--- a/src/gemm_v2.cpp ++++ b/src/gemm_v2.cpp +@@ -40,7 +40,7 @@ + + #if MIOPEN_USE_ROCBLAS + #include <half.hpp> +-#include <rocblas.h> ++#include <rocblas/rocblas.h> + #include <miopen/perf_field.hpp> + #endif + +diff --git a/src/include/miopen/handle.hpp b/src/include/miopen/handle.hpp +index ee45ae2a0..b99883f5f 100644 +--- a/src/include/miopen/handle.hpp ++++ b/src/include/miopen/handle.hpp +@@ -52,7 +52,7 @@ + + #if MIOPEN_USE_ROCBLAS + #include <miopen/manage_ptr.hpp> +-#include <rocblas.h> ++#include <rocblas/rocblas.h> + #endif + + namespace miopen { diff --git a/Overlays/jureca_mi200_overlay/r/ROCm/rocALUTION-5.2.0-fix-complex-device-operators.patch b/Overlays/jureca_mi200_overlay/r/ROCm/rocALUTION-5.2.0-fix-complex-device-operators.patch new file mode 100644 index 0000000000000000000000000000000000000000..550f8db1fd354d39637101d480e21dd693721ecf --- /dev/null +++ b/Overlays/jureca_mi200_overlay/r/ROCm/rocALUTION-5.2.0-fix-complex-device-operators.patch @@ -0,0 +1,113 @@ +diff --git a/src/base/hip/hip_vector.hpp b/src/base/hip/hip_vector.hpp +index 0444528..06f2b97 100644 +--- a/src/base/hip/hip_vector.hpp ++++ b/src/base/hip/hip_vector.hpp +@@ -30,11 +30,108 @@ + #include "../base_vector.hpp" + + #include <hip/hip_runtime.h> ++#include <hip/amd_detail/amd_hip_complex.h> + + #include <complex> + + #include "hip_rand.hpp" + ++#if defined(__HIPCC_RTC__) ++#define __HOST_DEVICE__ __device__ ++#else ++#define __HOST_DEVICE__ __host__ __device__ ++#endif // !defined(__HIPCC_RTC__) ++ ++// Gotta put these somewhere ++__HOST_DEVICE__ inline std::complex<float> operator+(const std::complex<float> a, const std::complex<float> b) ++{ ++ auto res = a+b; ++ return res; ++} ++__HOST_DEVICE__ inline std::complex<float>& operator+=(std::complex<float>& a, const std::complex<float> b) ++{ ++ a = a+b; ++ return a; ++} ++__HOST_DEVICE__ inline std::complex<float> operator-(const std::complex<float> a, const std::complex<float> b) ++{ ++ auto res = a-b; ++ return res; ++} ++__HOST_DEVICE__ inline std::complex<float> operator-(const std::complex<float> a) ++{ ++ return -a; ++} ++__HOST_DEVICE__ inline std::complex<float>& operator-=(std::complex<float>& a, const std::complex<float> b) ++{ ++ a = a-b; ++ return a; ++} ++__HOST_DEVICE__ inline std::complex<float> operator*(const std::complex<float> a, const std::complex<float> b) ++{ ++ auto res = a*b; ++ return res; ++} ++__HOST_DEVICE__ inline std::complex<float>& operator*=(std::complex<float>& a, const std::complex<float> b) ++{ ++ a = a*b; ++ return a; ++} ++__HOST_DEVICE__ inline std::complex<float> operator/(const std::complex<float> a, const std::complex<float> b) ++{ ++ auto res = a/b; ++ return res; ++} ++__HOST_DEVICE__ inline float abs(const std::complex<float> a) ++{ ++ return abs(a); ++} ++ ++ ++__HOST_DEVICE__ inline std::complex<double> operator+(const std::complex<double> a, const std::complex<double> b) ++{ ++ auto res = a+b; ++ return res; ++} ++__HOST_DEVICE__ inline std::complex<double>& operator+=(std::complex<double>& a, const std::complex<double> b) ++{ ++ a = a+b; ++ return a; ++} ++__HOST_DEVICE__ inline std::complex<double> operator-(const std::complex<double> a, const std::complex<double> b) ++{ ++ auto res = a-b; ++ return res; ++} ++__HOST_DEVICE__ inline std::complex<double> operator-(const std::complex<double> a) ++{ ++ return -a; ++} ++__HOST_DEVICE__ inline std::complex<double>& operator-=(std::complex<double>& a, const std::complex<double> b) ++{ ++ a = a-b; ++ return a; ++} ++__HOST_DEVICE__ inline std::complex<double> operator*(const std::complex<double> a, const std::complex<double> b) ++{ ++ auto res = a*b; ++ return res; ++} ++__HOST_DEVICE__ inline std::complex<double>& operator*=(std::complex<double>& a, const std::complex<double> b) ++{ ++ a = a*b; ++ return a; ++} ++__HOST_DEVICE__ inline std::complex<double> operator/(const std::complex<double> a, const std::complex<double> b) ++{ ++ auto res = a/b; ++ return res; ++} ++__HOST_DEVICE__ inline double abs(const std::complex<double> a) ++{ ++ return abs(a); ++} ++ + namespace rocalution + { + template <typename ValueType> diff --git a/Overlays/jureca_mi200_overlay/r/ROCm/rocALUTION-5.2.0-rocblas-include-fix.patch b/Overlays/jureca_mi200_overlay/r/ROCm/rocALUTION-5.2.0-rocblas-include-fix.patch new file mode 100644 index 0000000000000000000000000000000000000000..16fb1d10450c90c005fe1d88a9fb033ea20fae98 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/r/ROCm/rocALUTION-5.2.0-rocblas-include-fix.patch @@ -0,0 +1,65 @@ +diff --git a/src/base/hip/backend_hip.cpp b/src/base/hip/backend_hip.cpp +index 72424a9..082cdb1 100644 +--- a/src/base/hip/backend_hip.cpp ++++ b/src/base/hip/backend_hip.cpp +@@ -40,7 +40,7 @@ + #include "hip_vector.hpp" + + #include <hip/hip_runtime_api.h> +-#include <rocblas.h> ++#include <rocblas/rocblas.h> + #include <rocsparse.h> + + #include <complex> +diff --git a/src/base/hip/hip_blas.cpp b/src/base/hip/hip_blas.cpp +index db67352..9979d16 100644 +--- a/src/base/hip/hip_blas.cpp ++++ b/src/base/hip/hip_blas.cpp +@@ -27,7 +27,7 @@ + + #include <hip/hip_complex.h> + #include <hip/hip_runtime_api.h> +-#include <rocblas.h> ++#include <rocblas/rocblas.h> + #include <rocprim/rocprim.hpp> + + #include <complex> +diff --git a/src/base/hip/hip_blas.hpp b/src/base/hip/hip_blas.hpp +index 002a796..5a0afc5 100644 +--- a/src/base/hip/hip_blas.hpp ++++ b/src/base/hip/hip_blas.hpp +@@ -25,7 +25,7 @@ + #define ROCALUTION_HIP_HIP_BLAS_HPP_ + + #include <hip/hip_runtime_api.h> +-#include <rocblas.h> ++#include <rocblas/rocblas.h> + + namespace rocalution + { +diff --git a/src/base/hip/hip_conversion.hpp b/src/base/hip/hip_conversion.hpp +index 8c3fa3f..c67a7c8 100644 +--- a/src/base/hip/hip_conversion.hpp ++++ b/src/base/hip/hip_conversion.hpp +@@ -27,7 +27,7 @@ + #include "../backend_manager.hpp" + #include "../matrix_formats.hpp" + +-#include <rocblas.h> ++#include <rocblas/rocblas.h> + #include <rocsparse.h> + + namespace rocalution +diff --git a/src/base/hip/hip_utils.hpp b/src/base/hip/hip_utils.hpp +index 550beb7..3c3b68b 100644 +--- a/src/base/hip/hip_utils.hpp ++++ b/src/base/hip/hip_utils.hpp +@@ -29,7 +29,7 @@ + #include "backend_hip.hpp" + + #include <hip/hip_runtime.h> +-#include <rocblas.h> ++#include <rocblas/rocblas.h> + #include <rocsparse.h> + + #ifdef SUPPORT_COMPLEX diff --git a/Overlays/jureca_mi200_overlay/r/ROCm/rocALUTION-complex.patch b/Overlays/jureca_mi200_overlay/r/ROCm/rocALUTION-complex.patch new file mode 100644 index 0000000000000000000000000000000000000000..d8b583b23b91f1048ecaee0128f7766ca7cba02e --- /dev/null +++ b/Overlays/jureca_mi200_overlay/r/ROCm/rocALUTION-complex.patch @@ -0,0 +1,82 @@ +diff --git a/src/base/hip/hip_vector.hpp b/src/base/hip/hip_vector.hpp +index 0444528..a432359 100644 +--- a/src/base/hip/hip_vector.hpp ++++ b/src/base/hip/hip_vector.hpp +@@ -30,11 +30,77 @@ + #include "../base_vector.hpp" + + #include <hip/hip_runtime.h> ++#include <hip/amd_detail/amd_hip_complex.h> + + #include <complex> + + #include "hip_rand.hpp" + ++#if defined(__HIPCC_RTC__) ++#define __HOST_DEVICE__ __device__ ++#else ++#define __HOST_DEVICE__ __host__ __device__ ++#endif // !defined(__HIPCC_RTC__) ++ ++// Gotta put these somewhere ++__HOST_DEVICE__ inline std::complex<float> operator+(const std::complex<float> a, const std::complex<float> b) ++{ ++ auto ahip = make_hipFloatComplex(a.real(), a.imag()); ++ auto bhip = make_hipFloatComplex(b.real(), b.imag()); ++ auto res = a+b; ++ return res; ++} ++__HOST_DEVICE__ inline std::complex<float> operator-(const std::complex<float> a, const std::complex<float> b) ++{ ++ auto ahip = make_hipFloatComplex(a.real(), a.imag()); ++ auto bhip = make_hipFloatComplex(b.real(), b.imag()); ++ auto res = a-b; ++ return res; ++} ++__HOST_DEVICE__ inline std::complex<float> operator*(const std::complex<float> a, const std::complex<float> b) ++{ ++ auto ahip = make_hipFloatComplex(a.real(), a.imag()); ++ auto bhip = make_hipFloatComplex(b.real(), b.imag()); ++ auto res = a*b; ++ return res; ++} ++__HOST_DEVICE__ inline std::complex<float> operator/(const std::complex<float> a, const std::complex<float> b) ++{ ++ auto ahip = make_hipFloatComplex(a.real(), a.imag()); ++ auto bhip = make_hipFloatComplex(b.real(), b.imag()); ++ auto res = a/b; ++ return res; ++} ++ ++__HOST_DEVICE__ inline std::complex<double> operator+(const std::complex<double> a, const std::complex<double> b) ++{ ++ auto ahip = make_hipDoubleComplex(a.real(), a.imag()); ++ auto bhip = make_hipDoubleComplex(b.real(), b.imag()); ++ auto res = a+b; ++ return res; ++} ++__HOST_DEVICE__ inline std::complex<double> operator-(const std::complex<double> a, const std::complex<double> b) ++{ ++ auto ahip = make_hipDoubleComplex(a.real(), a.imag()); ++ auto bhip = make_hipDoubleComplex(b.real(), b.imag()); ++ auto res = a-b; ++ return res; ++} ++__HOST_DEVICE__ inline std::complex<double> operator*(const std::complex<double> a, const std::complex<double> b) ++{ ++ auto ahip = make_hipDoubleComplex(a.real(), a.imag()); ++ auto bhip = make_hipDoubleComplex(b.real(), b.imag()); ++ auto res = a*b; ++ return res; ++} ++__HOST_DEVICE__ inline std::complex<double> operator/(const std::complex<double> a, const std::complex<double> b) ++{ ++ auto ahip = make_hipDoubleComplex(a.real(), a.imag()); ++ auto bhip = make_hipDoubleComplex(b.real(), b.imag()); ++ auto res = a/b; ++ return res; ++} ++ + namespace rocalution + { + template <typename ValueType> diff --git a/Overlays/jureca_mi200_overlay/r/ROCm/rocBLAS-5.2.0-find-python-if-undefined.patch b/Overlays/jureca_mi200_overlay/r/ROCm/rocBLAS-5.2.0-find-python-if-undefined.patch new file mode 100644 index 0000000000000000000000000000000000000000..df052ae534eae940dc32a7bac3ef2b877a2352d6 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/r/ROCm/rocBLAS-5.2.0-find-python-if-undefined.patch @@ -0,0 +1,16 @@ +diff --git a/library/src/CMakeLists.txt b/library/src/CMakeLists.txt +index 79f54f21..ace140f6 100755 +--- a/library/src/CMakeLists.txt ++++ b/library/src/CMakeLists.txt +@@ -493,6 +493,11 @@ include( GenerateExportHeader ) + set_target_properties( rocblas PROPERTIES CXX_VISIBILITY_PRESET "hidden" C_VISIBILITY_PRESET "hidden" VISIBILITY_INLINES_HIDDEN ON ) + generate_export_header( rocblas EXPORT_FILE_NAME ${PROJECT_BINARY_DIR}/include/rocblas/internal/rocblas-export.h ) + ++if (NOT python) ++ find_package(Python COMPONENTS Interpreter) ++ set(python ${Python_EXECUTABLE}) ++endif() ++ + # generate header with prototypes for export reuse + file( GLOB rocblas_prototype_inputs + LIST_DIRECTORIES OFF diff --git a/Overlays/jureca_mi200_overlay/r/ROCm/rocblas-5.2.0-internal-rocblas-include-fix.patch b/Overlays/jureca_mi200_overlay/r/ROCm/rocblas-5.2.0-internal-rocblas-include-fix.patch new file mode 100644 index 0000000000000000000000000000000000000000..9ed2a2ea1f2cbe22db95083294cc56b6b56af723 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/r/ROCm/rocblas-5.2.0-internal-rocblas-include-fix.patch @@ -0,0 +1,13 @@ +diff --git a/library/src/include/rocblas_device_malloc.hpp b/library/src/include/rocblas_device_malloc.hpp +index e82f8d4a..1f65d54f 100644 +--- a/library/src/include/rocblas_device_malloc.hpp ++++ b/library/src/include/rocblas_device_malloc.hpp +@@ -19,7 +19,7 @@ + // This header should be included in other projects to use the rocblas_handle + // C++ device memory allocation API. It is unlikely to change very often. + +-#include "rocblas.h" ++#include <rocblas/rocblas.h> + #include <new> + #include <type_traits> + diff --git a/Overlays/jureca_mi200_overlay/r/ROCm/roctracer-hsa_ostream_ops-include.patch b/Overlays/jureca_mi200_overlay/r/ROCm/roctracer-hsa_ostream_ops-include.patch new file mode 100644 index 0000000000000000000000000000000000000000..8338ef5b10fffce5bc840f9022d9b446576542cd --- /dev/null +++ b/Overlays/jureca_mi200_overlay/r/ROCm/roctracer-hsa_ostream_ops-include.patch @@ -0,0 +1,13 @@ +diff --git a/inc/roctracer_hsa.h b/inc/roctracer_hsa.h +index 1e50c3a..e62e0c0 100644 +--- a/inc/roctracer_hsa.h ++++ b/inc/roctracer_hsa.h +@@ -64,7 +64,7 @@ struct ops_properties_t { + typedef hsa_support::ops_properties_t hsa_ops_properties_t; + }; // namespace roctracer + +-#include "hsa_ostream_ops.h" ++#include <hsa_ostream_ops.h> + + + #else // !__cplusplus diff --git a/Overlays/jureca_mi200_overlay/r/ROCm/roctracer-preprocess-no-linemarkers.patch b/Overlays/jureca_mi200_overlay/r/ROCm/roctracer-preprocess-no-linemarkers.patch new file mode 100644 index 0000000000000000000000000000000000000000..bcc8c66c586d44dad1c12fd30f4aa6b48b5dfd10 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/r/ROCm/roctracer-preprocess-no-linemarkers.patch @@ -0,0 +1,21 @@ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 82250d8..f60b1ae 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -3,12 +3,12 @@ set ( GEN_INC_DIR ${PROJECT_BINARY_DIR}/inc ) + set ( GEN_SRC_DIR ${PROJECT_BINARY_DIR}/src ) + execute_process ( COMMAND sh -xc "mkdir -p ${GEN_INC_DIR}" ) + execute_process ( COMMAND sh -xc "mkdir -p ${GEN_SRC_DIR}" ) +-execute_process ( COMMAND sh -xc "${CMAKE_C_COMPILER} -E ${HSA_RUNTIME_INC_PATH}/hsa.h > ${GEN_INC_DIR}/hsa_pp.h" ) +-execute_process ( COMMAND sh -xc "${CMAKE_C_COMPILER} -E ${HSA_RUNTIME_INC_PATH}/hsa_ext_amd.h > ${GEN_INC_DIR}/hsa_ext_amd_pp.h" ) ++execute_process ( COMMAND sh -xc "${CMAKE_C_COMPILER} -E -P ${HSA_RUNTIME_INC_PATH}/hsa.h > ${GEN_INC_DIR}/hsa_pp.h" ) ++execute_process ( COMMAND sh -xc "${CMAKE_C_COMPILER} -E -P ${HSA_RUNTIME_INC_PATH}/hsa_ext_amd.h > ${GEN_INC_DIR}/hsa_ext_amd_pp.h" ) + execute_process ( COMMAND sh -xc "python3 ${ROOT_DIR}/script/gen_ostream_ops.py -in ${GEN_INC_DIR}/hsa_pp.h,${GEN_INC_DIR}/hsa_ext_amd_pp.h -out ${GEN_INC_DIR}/hsa_ostream_ops.h" ) + execute_process ( COMMAND sh -xc "python3 ${ROOT_DIR}/script/hsaap.py ${PROJECT_BINARY_DIR} ${HSA_RUNTIME_INC_PATH}" ) +-execute_process ( COMMAND sh -xc "${CMAKE_C_COMPILER} -E ${HSA_KMT_INC_PATH}/hsakmttypes.h > ${GEN_INC_DIR}/hsakmttypes_pp.h" ) +-execute_process ( COMMAND sh -xc "${CMAKE_C_COMPILER} -E ${HIP_PATH}/include/hip/hip_runtime_api.h ${HIP_DEFINES} -I${HIP_PATH}/include -I${ROCM_ROOT_DIR}/hsa/include > ${GEN_INC_DIR}/hip_runtime_api_pp.h" ) ++execute_process ( COMMAND sh -xc "${CMAKE_C_COMPILER} -E -P ${HSA_KMT_INC_PATH}/hsakmttypes.h > ${GEN_INC_DIR}/hsakmttypes_pp.h" ) ++execute_process ( COMMAND sh -xc "${CMAKE_C_COMPILER} -E -P ${HIP_PATH}/include/hip/hip_runtime_api.h ${HIP_DEFINES} -I${HIP_PATH}/include -I${ROCM_ROOT_DIR}/hsa/include > ${GEN_INC_DIR}/hip_runtime_api_pp.h" ) + execute_process ( COMMAND sh -xc "python3 ${ROOT_DIR}/script/gen_ostream_ops.py -in ${GEN_INC_DIR}/hip_runtime_api_pp.h -out ${GEN_INC_DIR}/hip_ostream_ops.h" ) + execute_process ( COMMAND sh -xc "mkdir ${GEN_INC_DIR}/rocprofiler" ) + execute_process ( COMMAND sh -xc "ln -s ${ROOT_DIR}/../rocprofiler/inc/rocprofiler.h ${GEN_INC_DIR}/rocprofiler/rocprofiler.h" ) diff --git a/Overlays/jureca_mi200_overlay/r/robin-hood-hashing/robin-hood-hashing-3.11.5-GCCcore-11.2.0.eb b/Overlays/jureca_mi200_overlay/r/robin-hood-hashing/robin-hood-hashing-3.11.5-GCCcore-11.2.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..5763b5ca59e177af4f4b9ed3574313aaa418c474 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/r/robin-hood-hashing/robin-hood-hashing-3.11.5-GCCcore-11.2.0.eb @@ -0,0 +1,32 @@ +easyblock = 'CMakeNinja' + +name = 'robin-hood-hashing' +version = '3.11.5' + +homepage = 'https://gitter.im/martinus/robin-hood-hashing' +description = """Fast & memory efficient hashtable based on robin hood hashing for C++11/14/17/20""" + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} + +github_account = 'martinus' + +source_urls = [GITHUB_SOURCE] +sources = [{ + 'filename': SOURCELOWER_TAR_GZ, + 'download_filename': '%(version)s.tar.gz' +}] +checksums = ['3693e44dda569e9a8b87ce8263f7477b23af448a3c3600c8ab9004fe79c20ad0'] + +builddependencies = [ + ('CMake', '3.21.1'), + ('Ninja', '1.10.2'), +] + +configopts = '-DRH_STANDALONE_PROJECT=OFF' + +sanity_check_paths = { + 'files': ['include/robin_hood.h'], + 'dirs': ['lib/cmake'], +} + +moduleclass = 'devel' diff --git a/Overlays/jureca_mi200_overlay/s/SPIRV-Cross/SPIRV-Cross-1.3.213-GCCcore-11.2.0.eb b/Overlays/jureca_mi200_overlay/s/SPIRV-Cross/SPIRV-Cross-1.3.213-GCCcore-11.2.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..fe6bfafb5ea014973346ce0f31dd8140f6039717 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/s/SPIRV-Cross/SPIRV-Cross-1.3.213-GCCcore-11.2.0.eb @@ -0,0 +1,36 @@ +easyblock = 'CMakeNinja' + +name = 'SPIRV-Cross' +version = '1.3.213' + +homepage = 'https://www.khronos.org/registry/SPIR-V/' +description = """SPIRV-Cross is a practical tool and library for performing reflection + on SPIR-V and disassembling SPIR-V back to high level languages.""" + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} + +github_account = 'KhronosGroup' + +source_urls = [GITHUB_SOURCE] +sources = [{ + 'filename': SOURCELOWER_TAR_GZ, + # 'download_filename': 'sdk-%(version)s.tar.gz' + 'download_filename': 'b3ff97d0feafd2b7ca72aec7215cfc3d0998fb79.tar.gz' +}] +checksums = ['088fd4fac6d880077e01ee89ed0c25cfda0cf7baf2558f374d6b6a431d570509'] + +builddependencies = [ + ('CMake', '3.21.1'), + ('Ninja', '1.10.2'), +] + +sanity_check_paths = { + 'files': [ + 'include/spirv_cross/spirv_cross.hpp', + 'bin/spirv-cross', + 'lib/libspirv-cross-core.a', + ], + 'dirs': ['share/spirv_cross_core/cmake'], +} + +moduleclass = 'devel' diff --git a/Overlays/jureca_mi200_overlay/s/SPIRV-Headers/SPIRV-Headers-1.3.213-GCCcore-11.2.0.eb b/Overlays/jureca_mi200_overlay/s/SPIRV-Headers/SPIRV-Headers-1.3.213-GCCcore-11.2.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..3f3700841395f97756ffeb92bade0e47d9aa26c0 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/s/SPIRV-Headers/SPIRV-Headers-1.3.213-GCCcore-11.2.0.eb @@ -0,0 +1,32 @@ +easyblock = 'CMakeNinja' + +name = 'SPIRV-Headers' +version = '1.3.213' + +homepage = 'https://www.khronos.org/registry/SPIR-V/' +description = """Machine-readable files for the SPIR-V Registry""" + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} + +github_account = 'KhronosGroup' + +source_urls = [GITHUB_SOURCE] +sources = [{ + 'filename': SOURCELOWER_TAR_GZ, + # 'download_filename': 'sdk-%(version)s.tar.gz' + 'download_filename': 'b765c355f488837ca4c77980ba69484f3ff277f5.tar.gz' +}] +checksums = ['aabcd80a10cd5004fd99f480c1b5d74d61a44caeed805f11a49843143b49d883'] + +builddependencies = [ + ('CMake', '3.21.1'), + ('Ninja', '1.10.2'), +] + +local_spirv_versions = ['1.0', '1.1', '1.2'] +sanity_check_paths = { + 'files': ['include/spirv/%s/spirv.h' % ver for ver in local_spirv_versions], + 'dirs': ['share/cmake', 'share/pkgconfig'], +} + +moduleclass = 'devel' diff --git a/Overlays/jureca_mi200_overlay/s/SPIRV-Reflect/SPIRV-Reflect-1.3.213-GCCcore-11.2.0.eb b/Overlays/jureca_mi200_overlay/s/SPIRV-Reflect/SPIRV-Reflect-1.3.213-GCCcore-11.2.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..b280792f90e7f46f4b546e410a021f3ea7480eef --- /dev/null +++ b/Overlays/jureca_mi200_overlay/s/SPIRV-Reflect/SPIRV-Reflect-1.3.213-GCCcore-11.2.0.eb @@ -0,0 +1,49 @@ +easyblock = 'CMakeNinja' + +name = 'SPIRV-Reflect' +version = '1.3.213' + +homepage = 'https://www.khronos.org/registry/SPIR-V/' +description = """SPIRV-Reflect is a lightweight library that provides a C/C++ reflection + API for SPIR-V shader bytecode in Vulkan applications""" + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} + +github_account = 'KhronosGroup' + +local_commit_hash = '0f142bbfe9bd7aeeae6b3c703bcaf837dba8df9d' +source_urls = [GITHUB_SOURCE] +sources = [{ + 'filename': SOURCELOWER_TAR_GZ, + # 'download_filename': 'sdk-%(version)s.tar.gz' + 'download_filename': local_commit_hash + '.tar.gz' +}] +checksums = ['1799e94629a2370d0d8a7481e2a31cc23099269b661569a49ef045e6b1911870'] + +builddependencies = [ + ('CMake', '3.21.1'), + ('Ninja', '1.10.2'), +] + +dependencies = [ + ('SPIRV-Headers', version) +] + +configopts = "-DSPIRV_REFLECT_STATIC_LIB=ON -DSPIRV_REFLECT_STRIPPER=ON" + +postinstallcmds = [ + 'mkdir %(installdir)s/include', + 'cp %%(builddir)s/SPIRV-Reflect-%s/spirv_reflect.h %%(installdir)s/include' % local_commit_hash +] + + +sanity_check_paths = { + 'files': [ + 'include/spirv_reflect.h', + 'bin/spirv-reflect-pp', + 'bin/spirv-reflect', + 'lib/libspirv-reflect-static.a'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/Overlays/jureca_mi200_overlay/s/SPIRV-Tools/SPIRV-Tools-2022.2-GCCcore-11.2.0.eb b/Overlays/jureca_mi200_overlay/s/SPIRV-Tools/SPIRV-Tools-2022.2-GCCcore-11.2.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..a91bb01bb37168f19141dba63c7aed16d54d5678 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/s/SPIRV-Tools/SPIRV-Tools-2022.2-GCCcore-11.2.0.eb @@ -0,0 +1,51 @@ +easyblock = 'CMakeNinja' + +name = 'SPIRV-Tools' +version = '2022.2' + +homepage = 'https://www.khronos.org/registry/SPIR-V/' +description = """The SPIR-V Tools project provides an API and commands for processing SPIR-V modules.""" + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} + +github_account = 'KhronosGroup' + +source_urls = [GITHUB_SOURCE] +sources = [{ + 'filename': SOURCELOWER_TAR_GZ, + 'download_filename': 'v%(version)s.tar.gz' +}] +patches = [ + 'https://github.com/KhronosGroup/SPIRV-Tools/commit/58dc37ea6af7ec09f32f7b13ff60071e3ba2bd24.patch', + 'https://github.com/KhronosGroup/SPIRV-Tools/commit/9e377b0f974bd1f048e20dda1d52da900b3246cb.patch' +] +checksums = [ + '909fc7e68049dca611ca2d57828883a86f503b0353ff78bc594eddc65eb882b9', + 'c5836accfa2d0ff80214074c6efffeafe5c7f13ace3e64b9c4270a0ed4343591', + 'f68f382108746c9a6dc0708f6898d7145c1998901d568bb48eeb1ae2758e0642' +] + +builddependencies = [ + ('CMake', '3.21.1'), + ('Ninja', '1.10.2'), +] + +dependencies = [ + ('SPIRV-Headers', '1.3.213') +] + +configopts = "-DSPIRV-Headers_SOURCE_DIR=$EBROOTSPIRVMINHEADERS" + +local_programs = ['spirv-as', 'spirv-cfg', 'spirv-dis', + 'spirv-lesspipe.sh', 'spirv-link', + 'spirv-lint', 'spirv-opt', + 'spirv-reduce', 'spirv-val'] +sanity_check_paths = { + 'files': ["bin/%s" % prog for prog in local_programs] + + ["lib/libSPIRV-Tools.a", + "lib/libSPIRV-Tools-shared.so", + "include/spirv-tools/libspirv.h"], + 'dirs': ['lib/cmake'], +} + +moduleclass = 'devel' diff --git a/Overlays/jureca_mi200_overlay/s/source-highlight/source-highlight-3.1.9-GCCcore-11.2.0.eb b/Overlays/jureca_mi200_overlay/s/source-highlight/source-highlight-3.1.9-GCCcore-11.2.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..909eee08b43eb760c75fde479e6762fa7bfd2629 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/s/source-highlight/source-highlight-3.1.9-GCCcore-11.2.0.eb @@ -0,0 +1,38 @@ +easyblock = 'ConfigureMake' + +name = 'source-highlight' +version = '3.1.9' + +homepage = 'https://www.gnu.org/software/src-highlite/' +description = "This program, given a source file, produces a document with syntax highlighting" + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['ftp://ftp.gnu.org/gnu/src-highlite/'] +sources = [SOURCELOWER_TAR_GZ] +patches = ['source-highlight-gcc11.patch'] +checksums = [ + '3a7fd28378cb5416f8de2c9e77196ec915145d44e30ff4e0ee8beb3fe6211c91', + '7dbbdb7a1363d650aee75337f1204761754d9ad82a7c873c3f8b3f0ba07e814d' +] + +dependencies = [ + ('Boost', '1.78.0'), +] + +configopts = "--with-pic --with-boost=$EBROOTBOOST --with-boost-libdir=$EBROOTBOOST/lib64" + +local_binaries = ["check-regexp", "cpp2html", "java2html", + "source-highlight", "source-highlight-esc.sh", + "source-highlight-settings", "src-hilite-lesspipe.sh"] +local_libs = ["libsource-highlight.a", "libsource-highlight.so"] +sanity_check_paths = { + 'files': ["bin/%s" % b for b in local_binaries] + + ["lib/libsource-highlight.a", + "lib/libsource-highlight.%s" % SHLIB_EXT] + + ["include/srchilite/sourcehighlight.h"], + 'dirs': ["lib/pkgconfig"], +} + +moduleclass = 'tools' diff --git a/Overlays/jureca_mi200_overlay/s/source-highlight/source-highlight-gcc11.patch b/Overlays/jureca_mi200_overlay/s/source-highlight/source-highlight-gcc11.patch new file mode 100644 index 0000000000000000000000000000000000000000..1e5b0dd8df407a352c59f2339b66b0d27665182f --- /dev/null +++ b/Overlays/jureca_mi200_overlay/s/source-highlight/source-highlight-gcc11.patch @@ -0,0 +1,34 @@ +From 904949c9026cb772dc93fbe0947a252ef47127f4 Mon Sep 17 00:00:00 2001 +From: Tom Tromey <tom@tromey.com> +Date: Wed, 10 Jun 2020 20:38:27 -0600 +Subject: Remove "throw" specifications + +diff --git a/lib/srchilite/fileutil.cc b/lib/srchilite/fileutil.cc +index 59a6d64..963178c 100644 +--- a/lib/srchilite/fileutil.cc ++++ b/lib/srchilite/fileutil.cc +@@ -48,7 +48,7 @@ void set_file_util_verbose(bool b) { + // FIXME avoid using a global variable + std::string start_path; + +-string readFile(const string &fileName) throw (IOException) { ++string readFile(const string &fileName) { + ifstream file(fileName.c_str()); + + if (!file.is_open()) { +diff --git a/lib/srchilite/fileutil.h b/lib/srchilite/fileutil.h +index 7335a9b..042eb56 100644 +--- a/lib/srchilite/fileutil.h ++++ b/lib/srchilite/fileutil.h +@@ -27,7 +27,7 @@ extern std::string start_path; + * @return the contents of the file + * @throw IOException + */ +-string readFile(const string &fileName) throw (IOException); ++string readFile(const string &fileName); + + //char *read_file(const string &fileName); + +-- +cgit v1.2.1 + diff --git a/Overlays/jureca_mi200_overlay/v/Vulkan-Headers/Vulkan-Headers-1.3.213-GCCcore-11.2.0.eb b/Overlays/jureca_mi200_overlay/v/Vulkan-Headers/Vulkan-Headers-1.3.213-GCCcore-11.2.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..fdfe1b512880359f28d02ecb5f011931bab9611c --- /dev/null +++ b/Overlays/jureca_mi200_overlay/v/Vulkan-Headers/Vulkan-Headers-1.3.213-GCCcore-11.2.0.eb @@ -0,0 +1,30 @@ +easyblock = 'CMakeNinja' + +name = 'Vulkan-Headers' +version = '1.3.213' + +homepage = 'https://www.vulkan.org/' +description = """Vulkan header files and API registry""" + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} + +github_account = 'KhronosGroup' + +source_urls = [GITHUB_SOURCE] +sources = [{ + 'filename': SOURCELOWER_TAR_GZ, + 'download_filename': 'v%(version)s.tar.gz' +}] +checksums = ['7f4a6118dc3524703c1ce0a44089379e89eeb930fbe28188b90fdac1f10ef676'] + +builddependencies = [ + ('CMake', '3.21.1'), + ('Ninja', '1.10.2'), +] + +sanity_check_paths = { + 'files': ['include/vulkan/vulkan.h'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/Overlays/jureca_mi200_overlay/v/Vulkan-Loader/Vulkan-Loader-1.3.213-GCCcore-11.2.0.eb b/Overlays/jureca_mi200_overlay/v/Vulkan-Loader/Vulkan-Loader-1.3.213-GCCcore-11.2.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..f7c702d3a55c5defccd9f55c339029ef645eea78 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/v/Vulkan-Loader/Vulkan-Loader-1.3.213-GCCcore-11.2.0.eb @@ -0,0 +1,37 @@ +easyblock = 'CMakeNinja' + +name = 'Vulkan-Loader' +version = '1.3.213' + +homepage = 'https://www.vulkan.org/' +description = """Provides the Khronos official Vulkan ICD desktop loader for Windows, Linux, and MacOS""" + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} + +github_account = 'KhronosGroup' + +source_urls = [GITHUB_SOURCE] +sources = [{ + 'filename': SOURCELOWER_TAR_GZ, + 'download_filename': 'v%(version)s.tar.gz' +}] +checksums = ['3cacac2a39026ce74ff96d2bf5d2c85f2729218182cf0be07ae62f58a5301a39'] + +builddependencies = [ + ('CMake', '3.21.1'), + ('Ninja', '1.10.2'), +] + +dependencies = [ + ('Vulkan-Headers', version), + ('X11', '20210802'), +] + +configopts = '-DBUILD_WSI_WAYLAND_SUPPORT=OFF' + +sanity_check_paths = { + 'files': ['lib/libvulkan.so'], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'devel' diff --git a/Overlays/jureca_mi200_overlay/v/Vulkan-Tools/Vulkan-Tools-1.3.213-GCCcore-11.2.0.eb b/Overlays/jureca_mi200_overlay/v/Vulkan-Tools/Vulkan-Tools-1.3.213-GCCcore-11.2.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..b21e7b632601df9f17c2aa1bc2f46bab853b6542 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/v/Vulkan-Tools/Vulkan-Tools-1.3.213-GCCcore-11.2.0.eb @@ -0,0 +1,38 @@ +easyblock = 'CMakeNinja' + +name = 'Vulkan-Tools' +version = '1.3.213' + +homepage = 'https://www.vulkan.org/' +description = """Provides Khronos official Vulkan Tools and Utilities""" + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} + +github_account = 'KhronosGroup' + +source_urls = [GITHUB_SOURCE] +sources = [{ + 'filename': SOURCELOWER_TAR_GZ, + 'download_filename': 'v%(version)s.tar.gz' +}] +checksums = ['2b20b9c8cefe26f8d7df5f6b270c6a6d4dcf5fe0995f779abac2f0fa658c5798'] + +builddependencies = [ + ('CMake', '3.21.1'), + ('Ninja', '1.10.2'), +] + +dependencies = [ + ('Vulkan-Headers', version), + ('Vulkan-Loader', version), + ('X11', '20210802'), +] + +configopts = '-DBUILD_WSI_WAYLAND_SUPPORT=OFF' + +sanity_check_paths = { + 'files': ['bin/%s' % f for f in ['vkcube', 'vkcubepp', 'vulkaninfo']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/Overlays/jureca_mi200_overlay/v/Vulkan-ValidationLayers/Vulkan-ValidationLayers-1.3.213-GCCcore-11.2.0.eb b/Overlays/jureca_mi200_overlay/v/Vulkan-ValidationLayers/Vulkan-ValidationLayers-1.3.213-GCCcore-11.2.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..e7e1cdf00810635ca85de9ff5ae662cc03020b00 --- /dev/null +++ b/Overlays/jureca_mi200_overlay/v/Vulkan-ValidationLayers/Vulkan-ValidationLayers-1.3.213-GCCcore-11.2.0.eb @@ -0,0 +1,45 @@ +easyblock = 'CMakeNinja' + +name = 'Vulkan-ValidationLayers' +version = '1.3.213' + +homepage = 'https://www.vulkan.org/' +description = """Provides the Khronos official Vulkan validation layers""" + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} + +github_account = 'KhronosGroup' + +source_urls = [GITHUB_SOURCE] +sources = [{ + 'filename': SOURCELOWER_TAR_GZ, + 'download_filename': 'v%(version)s.tar.gz' +}] +checksums = ['26199bde8d7c499867d2fde95aea139815d30fd8a3548d95ebd401224a8ce02c'] + +builddependencies = [ + ('CMake', '3.21.1'), + ('Ninja', '1.10.2'), +] + +dependencies = [ + ('Vulkan-Headers', version), + ('robin-hood-hashing', '3.11.5'), + ('SPIRV-Tools', '2022.2'), + ('X11', '20210802'), +] + +configopts = '-DBUILD_WSI_WAYLAND_SUPPORT=OFF' + +modextrapaths = { + "VK_LAYER_PATH": ['share/vulkan/explicit_layer.d/'] +} + +sanity_check_paths = { + 'files': ['share/vulkan/explicit_layer.d/VkLayer_khronos_validation.json', + 'lib/libVkLayer_khronos_validation.so', + 'lib/libVkLayer_utils.a'], + 'dirs': [], +} + +moduleclass = 'devel'