Accepting request 678966 from home:NMoreyChaisemartin:branches:science:HPC

- Update openucx-s390x-support.patch to fix support of 1.5.0 on s390x
- Add baselibs.conf for ppc

- Update to v1.5.0 (bsc#1121267)
  * Features:
  * New emulation mode enabling full UCX functionality (Atomic, Put, Get)
  * over TCP and RDMA-CORE interconnects which don't implement full RDMA semantics
  * Non-blocking API for all one-sided operations. All blocking communication APIs marked
  * as deprecated
  * New client/server connection establishment API, which allows connected handover between workers
  * Support for rdma-core direct-verbs (DEVX) and DC with mlx5 transports
  * GPU - Support for stream API and receive side pipelining
  * Malloc hooks using binary instrumentation instead of symbol override
  * Statistics for UCT tag API
  * GPU-to-Infiniband HCA affinity support based on locality/distance (PCIe)
  * Bugfixes:
  * Fix overflow in RC/DC flush operations
  * Update description in SPEC file and README
  * Fix RoCE source port for dc_mlx5 flow control
  * Improve ucx_info help message
  * Fix segfault in UCP, due to int truncation in count_one_bits()
  * Multiple other bugfixes (full list on github)
  * Tested configurations:
  * InfiniBand: MLNX_OFED 4.4-4.5, distribution inbox drivers, rdma-core
  * CUDA: gdrcopy 1.2, cuda 9.1.85
  * XPMEM: 2.6.2
  * KNEM: 1.1.2

OBS-URL: https://build.opensuse.org/request/show/678966
OBS-URL: https://build.opensuse.org/package/show/science:HPC/openucx?expand=0&rev=27
This commit is contained in:
Nicolas Morey-Chaisemartin 2019-02-25 16:53:29 +00:00 committed by Git OBS Bridge
parent 56befa2187
commit fd1e5380fe
6 changed files with 145 additions and 14 deletions

4
baselibs.conf Normal file
View File

@ -0,0 +1,4 @@
libucm0
libucp0
libucs0
libuct0

View File

@ -1,4 +1,4 @@
commit c4261cb194ce2f87c564c22f5cb795f33fce6f5f commit 621654abd1ca34a407d8033991659c45d42c3a4e
Author: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com> Author: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
Date: Thu Aug 9 07:41:24 2018 +0200 Date: Thu Aug 9 07:41:24 2018 +0200
@ -6,11 +6,98 @@ Date: Thu Aug 9 07:41:24 2018 +0200
Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com> Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
diff --git config/m4/ucm.m4 config/m4/ucm.m4
index 541bdb1322ce..4f89f6e02860 100644
--- config/m4/ucm.m4
+++ config/m4/ucm.m4
@@ -86,9 +86,19 @@ AC_CHECK_DECLS([SYS_ipc],
[ipc_hooks_happy=no],
[#include <sys/syscall.h>])
+SAVE_CFLAGS=$CFLAGS
+CFLAGS="$CLAGS -Isrc/"
+bistro_arch_happy=yes
+AC_CHECK_DECLS([ucm_bistro_patch],
+ [],
+ [ipc_hooks_happy=no],
+ [#include <ucm/bistro/bistro.h>])
+CFLAGS=$SAVE_CFLAGS
+
AS_IF([test "x$mmap_hooks_happy" == "xyes"],
AS_IF([test "x$ipc_hooks_happy" == "xyes" -o "x$shm_hooks_happy" == "xyes"],
- [bistro_hooks_happy=yes]))
+ AS_IF([test "x$bistro_arch_happy" == "xyes"],
+ [bistro_hooks_happy=yes])))
AS_IF([test "x$bistro_hooks_happy" == "xyes"],
[AC_DEFINE([UCM_BISTRO_HOOKS], [1], [Enable BISTRO hooks])],
diff --git src/ucm/Makefile.am src/ucm/Makefile.am
index 74090c4f2440..e466c13395b7 100644
--- src/ucm/Makefile.am
+++ src/ucm/Makefile.am
@@ -40,7 +40,8 @@ noinst_HEADERS = \
bistro/bistro.h \
bistro/bistro_x86_64.h \
bistro/bistro_aarch64.h \
- bistro/bistro_ppc64.h
+ bistro/bistro_ppc64.h \
+ bistro/bistro_s390x.h
if HAVE_CUDA
noinst_HEADERS += \
diff --git src/ucm/bistro/bistro.h src/ucm/bistro/bistro.h
index 16e988700c35..b4c2762fb5b2 100644
--- src/ucm/bistro/bistro.h
+++ src/ucm/bistro/bistro.h
@@ -20,6 +20,8 @@ typedef struct ucm_bistro_restore_point ucm_bistro_restore_point_t;
# include "bistro_aarch64.h"
#elif defined(__x86_64__)
# include "bistro_x86_64.h"
+#elif defined(__s390x__)
+# include "bistro_s390x.h"
#else
# error "Unsupported architecture"
#endif
diff --git src/ucm/bistro/bistro_s390x.h src/ucm/bistro/bistro_s390x.h
new file mode 100644
index 000000000000..334c0474e8b6
--- /dev/null
+++ src/ucm/bistro/bistro_s390x.h
@@ -0,0 +1,13 @@
+#ifndef UCM_BISTRO_BISTRO_S390X_H_
+#define UCM_BISTRO_BISTRO_S390X_H_
+
+#include <stdint.h>
+
+#include <ucs/type/status.h>
+#include <ucs/sys/compiler_def.h>
+
+#define UCM_BISTRO_PROLOGUE
+#define UCM_BISTRO_EPILOGUE
+
+
+#endif
diff --git src/ucm/mmap/install.c src/ucm/mmap/install.c
index ebf22aaa0415..80ed26838837 100644
--- src/ucm/mmap/install.c
+++ src/ucm/mmap/install.c
@@ -173,7 +173,11 @@ static ucs_status_t ucs_mmap_install_reloc(int events)
status = ucm_reloc_modify(&entry->patch);
} else {
ucs_assert(ucm_mmap_hook_mode() == UCM_MMAP_HOOK_BISTRO);
+#if UCM_BISTRO_HOOKS
status = ucm_bistro_patch(entry->patch.symbol, entry->patch.value, NULL);
+#else
+ status = UCS_ERR_UNSUPPORTED;
+#endif
}
if (status != UCS_OK) {
ucm_warn("failed to install %s hook for '%s'",
diff --git src/ucs/Makefile.am src/ucs/Makefile.am diff --git src/ucs/Makefile.am src/ucs/Makefile.am
index 74edce424728..43a50e893f77 100644 index f82540e775a4..592d89c51109 100644
--- src/ucs/Makefile.am --- src/ucs/Makefile.am
+++ src/ucs/Makefile.am +++ src/ucs/Makefile.am
@@ -53,6 +53,8 @@ noinst_HEADERS = \ @@ -57,6 +57,8 @@ noinst_HEADERS = \
arch/generic/cpu.h \ arch/generic/cpu.h \
arch/ppc64/bitops.h \ arch/ppc64/bitops.h \
arch/ppc64/cpu.h \ arch/ppc64/cpu.h \
@ -20,7 +107,7 @@ index 74edce424728..43a50e893f77 100644
arch/x86_64/bitops.h \ arch/x86_64/bitops.h \
arch/x86_64/cpu.h \ arch/x86_64/cpu.h \
diff --git src/ucs/arch/atomic.h src/ucs/arch/atomic.h diff --git src/ucs/arch/atomic.h src/ucs/arch/atomic.h
index 7649971b407b..7bb2bc36c483 100644 index 0caea9b1f3ba..d9afa780bbc5 100644
--- src/ucs/arch/atomic.h --- src/ucs/arch/atomic.h
+++ src/ucs/arch/atomic.h +++ src/ucs/arch/atomic.h
@@ -15,6 +15,8 @@ @@ -15,6 +15,8 @@
@ -33,7 +120,7 @@ index 7649971b407b..7bb2bc36c483 100644
# error "Unsupported architecture" # error "Unsupported architecture"
#endif #endif
diff --git src/ucs/arch/bitops.h src/ucs/arch/bitops.h diff --git src/ucs/arch/bitops.h src/ucs/arch/bitops.h
index f4dd3ab45964..de53bde0d33f 100644 index 2049b7c71c8a..a4eceeea52e7 100644
--- src/ucs/arch/bitops.h --- src/ucs/arch/bitops.h
+++ src/ucs/arch/bitops.h +++ src/ucs/arch/bitops.h
@@ -14,6 +14,8 @@ @@ -14,6 +14,8 @@
@ -46,10 +133,10 @@ index f4dd3ab45964..de53bde0d33f 100644
# error "Unsupported architecture" # error "Unsupported architecture"
#endif #endif
diff --git src/ucs/arch/cpu.h src/ucs/arch/cpu.h diff --git src/ucs/arch/cpu.h src/ucs/arch/cpu.h
index 1c362bc92fba..14172218e24c 100644 index 58a83825ee4a..a30456ba441d 100644
--- src/ucs/arch/cpu.h --- src/ucs/arch/cpu.h
+++ src/ucs/arch/cpu.h +++ src/ucs/arch/cpu.h
@@ -56,6 +56,8 @@ typedef enum ucs_cpu_flag { @@ -59,6 +59,8 @@ typedef enum ucs_cpu_flag {
# include "ppc64/cpu.h" # include "ppc64/cpu.h"
#elif defined(__aarch64__) #elif defined(__aarch64__)
# include "aarch64/cpu.h" # include "aarch64/cpu.h"
@ -98,10 +185,10 @@ index 000000000000..39ad125107e9
+#endif +#endif
diff --git src/ucs/arch/s390x/cpu.h src/ucs/arch/s390x/cpu.h diff --git src/ucs/arch/s390x/cpu.h src/ucs/arch/s390x/cpu.h
new file mode 100644 new file mode 100644
index 000000000000..f5131ea30a8f index 000000000000..b8ab713d6e21
--- /dev/null --- /dev/null
+++ src/ucs/arch/s390x/cpu.h +++ src/ucs/arch/s390x/cpu.h
@@ -0,0 +1,51 @@ @@ -0,0 +1,53 @@
+/** +/**
+* Copyright (C) Mellanox Technologies Ltd. 2001-2013. ALL RIGHTS RESERVED. +* Copyright (C) Mellanox Technologies Ltd. 2001-2013. ALL RIGHTS RESERVED.
+* Copyright (C) ARM Ltd. 2016-2017. ALL RIGHTS RESERVED. +* Copyright (C) ARM Ltd. 2016-2017. ALL RIGHTS RESERVED.
@ -124,9 +211,11 @@ index 000000000000..f5131ea30a8f
+#define ucs_memory_bus_fence() asm volatile (""::: "memory") +#define ucs_memory_bus_fence() asm volatile (""::: "memory")
+#define ucs_memory_bus_store_fence() ucs_memory_bus_fence() +#define ucs_memory_bus_store_fence() ucs_memory_bus_fence()
+#define ucs_memory_bus_load_fence() ucs_memory_bus_fence() +#define ucs_memory_bus_load_fence() ucs_memory_bus_fence()
+#define ucs_memory_bus_wc_flush() ucs_memory_bus_fence()
+#define ucs_memory_cpu_fence() ucs_memory_bus_fence() +#define ucs_memory_cpu_fence() ucs_memory_bus_fence()
+#define ucs_memory_cpu_store_fence() ucs_memory_bus_fence() +#define ucs_memory_cpu_store_fence() ucs_memory_bus_fence()
+#define ucs_memory_cpu_load_fence() ucs_memory_bus_fence() +#define ucs_memory_cpu_load_fence() ucs_memory_bus_fence()
+#define ucs_memory_cpu_wc_fence() ucs_memory_bus_fence()
+ +
+ +
+static inline uint64_t ucs_arch_read_hres_clock() +static inline uint64_t ucs_arch_read_hres_clock()

View File

@ -1,3 +1,40 @@
-------------------------------------------------------------------
Mon Feb 25 07:56:39 UTC 2019 - nmorey <nmoreychaisemartin@suse.com>
- Update openucx-s390x-support.patch to fix support of 1.5.0 on s390x
- Add baselibs.conf for ppc
-------------------------------------------------------------------
Fri Feb 22 12:11:57 UTC 2019 - Martin Liška <mliska@suse.cz>
- Update to v1.5.0 (bsc#1121267)
* Features:
* New emulation mode enabling full UCX functionality (Atomic, Put, Get)
* over TCP and RDMA-CORE interconnects which don't implement full RDMA semantics
* Non-blocking API for all one-sided operations. All blocking communication APIs marked
* as deprecated
* New client/server connection establishment API, which allows connected handover between workers
* Support for rdma-core direct-verbs (DEVX) and DC with mlx5 transports
* GPU - Support for stream API and receive side pipelining
* Malloc hooks using binary instrumentation instead of symbol override
* Statistics for UCT tag API
* GPU-to-Infiniband HCA affinity support based on locality/distance (PCIe)
* Bugfixes:
* Fix overflow in RC/DC flush operations
* Update description in SPEC file and README
* Fix RoCE source port for dc_mlx5 flow control
* Improve ucx_info help message
* Fix segfault in UCP, due to int truncation in count_one_bits()
* Multiple other bugfixes (full list on github)
* Tested configurations:
* InfiniBand: MLNX_OFED 4.4-4.5, distribution inbox drivers, rdma-core
* CUDA: gdrcopy 1.2, cuda 9.1.85
* XPMEM: 2.6.2
* KNEM: 1.1.2
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Nov 6 07:18:34 UTC 2018 - nmoreychaisemartin@suse.com Tue Nov 6 07:18:34 UTC 2018 - nmoreychaisemartin@suse.com

View File

@ -1,7 +1,7 @@
# #
# spec file for package openucx # spec file for package openucx
# #
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -20,13 +20,14 @@ Name: openucx
Summary: Unifieid Communication X Summary: Unifieid Communication X
License: BSD-3-Clause License: BSD-3-Clause
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
Version: 1.4.0 Version: 1.5.0
Release: 0 Release: 0
Url: http://openucx.org/ Url: http://openucx.org/
#Git-Clone: git://github.com/openucx/ucx #Git-Clone: git://github.com/openucx/ucx
#Git-Web: https://github.com/openucx/ucx #Git-Web: https://github.com/openucx/ucx
Source: https://github.com/openucx/ucx/releases/download/v%version/ucx-%version.tar.gz Source: https://github.com/openucx/ucx/releases/download/v%version/ucx-%version.tar.gz
Source1: baselibs.conf
Patch1: openucx-s390x-support.patch Patch1: openucx-s390x-support.patch
BuildRequires: autoconf >= 2.63 BuildRequires: autoconf >= 2.63
BuildRequires: automake >= 1.10 BuildRequires: automake >= 1.10

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:99891a98476bcadc6ac4ef9c9f083bc6ffb188a96b3c3bc89c8bbca64de2c76e
size 1777644

3
ucx-1.5.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:84f6e4fa5740afebb9b1c8bb405c07206e58c56f83120dcfcd8dc89e4b7d7458
size 1838263