From 1b253d29d7272922cb1a40af9aa811836748d2d3 Mon Sep 17 00:00:00 2001
From: Sebastian Achilles <s.achilles@fz-juelich.de>
Date: Wed, 23 Mar 2022 14:37:20 +0100
Subject: [PATCH] add UCX for MI200

---
 .../jureca_mi200_overlay/u/UCX/UCX-default.eb | 79 +++++++++++++++++++
 1 file changed, 79 insertions(+)
 create mode 100644 Overlays/jureca_mi200_overlay/u/UCX/UCX-default.eb

diff --git a/Overlays/jureca_mi200_overlay/u/UCX/UCX-default.eb b/Overlays/jureca_mi200_overlay/u/UCX/UCX-default.eb
new file mode 100644
index 000000000..19adba9ad
--- /dev/null
+++ b/Overlays/jureca_mi200_overlay/u/UCX/UCX-default.eb
@@ -0,0 +1,79 @@
+easyblock = 'ConfigureMake'
+
+name = 'UCX'
+version = 'default'
+local_realversion = '1.12.0'
+
+homepage = 'https://www.openucx.org/'
+description = """Unified Communication X
+An open-source production grade communication framework for data centric
+and high-performance applications
+"""
+
+toolchain = SYSTEM
+toolchainopts = {'pic': True}
+
+source_urls = [
+    f'https://github.com/openucx/ucx/releases/download/v{local_realversion}']
+sources = ['%%(namelower)s-%s.tar.gz' % local_realversion]
+checksums = ['93e994de2d1a4df32381ea92ba4c98a249010d1720eb0f6110dc72c9a7d25db6']
+
+builddependencies = [
+    ('binutils', '2.37'),
+    ('Autotools', '20210726'),
+    ('pkg-config', '0.29.2'),
+]
+
+osdependencies = [OS_PKG_IBVERBS_DEV]
+
+dependencies = [
+    ('zlib', '1.2.11'),
+    ('numactl', '2.0.14'),
+]
+
+configopts = '--with-verbs '  # Build OpenFabrics support
+configopts += '--without-java '
+configopts += '--disable-doxygen-doc '
+
+# Enable machine-specific optimizations, default: NO
+configopts += '--enable-optimizations '
+# configopts += '--enable-tuning '       # Enable parameter tuning in run-time, default: NO
+# Enable thread support in UCP and UCT, default: NO
+configopts += '--enable-mt '
+configopts += '--disable-debug '
+configopts += '--disable-logging '
+configopts += '--disable-assertions '
+configopts += '--disable-params-check '
+configopts += '--disable-dependency-tracking '
+# configopts += '--with-cuda=$EBROOTCUDA '
+configopts += '--without-cuda '
+configopts += '--with-rocm=/opt/rocm '
+
+configopts += '--enable-cma '           # Enable Cross Memory Attach
+
+# Compile with IB Reliable Connection support
+configopts += '--with-rc '
+# Compile with IB Unreliable Datagram support
+configopts += '--with-ud '
+# Compile with IB Dynamic Connection support
+configopts += '--with-dc '
+configopts += '--with-mlx5-dv '         # Compile with mlx5 Direct Verbs support
+configopts += '--with-ib-hw-tm '        # Compile with IB Tag Matching support
+configopts += '--with-dm '              # Compile with Device Memory support
+
+configopts += '--with-avx '             # Compile with AVX
+# configopts += '--with-gdrcopy '         # Compile with GDRCopy
+
+# Compile without IB Connection Manager support
+configopts += '--without-cm '
+
+buildopts = 'V=1'
+
+sanity_check_paths = {
+    'files': ['bin/ucx_info', 'bin/ucx_perftest', 'bin/ucx_read_profile'],
+    'dirs': ['include', 'lib', 'share']
+}
+
+sanity_check_commands = ["ucx_info -d"]
+
+moduleclass = 'system'
-- 
GitLab