From 6a412379a95cce559a0181b793e37fd6fc0e27b55ff3b1ff854739c8e4dc0c51 Mon Sep 17 00:00:00 2001 From: Nicolas Morey Date: Wed, 29 Mar 2023 08:50:48 +0000 Subject: [PATCH 1/3] Accepting request 1075167 from home:NMorey:branches:science:HPC - Update to v1.14.0 - UCP - Added API for querying transport and device names on endpoint - Added API for querying datatype object - Added API for exporting and importing memory keys (no implementation yet) - Added support for non-persistent active message header - Added infrastructure to print protocols v2 performance - Multiple performance improvements for protocols v2 - Added support for non-contiguous datatypes for rendezvous protocols v2 - Added support for reset and abort request in protocols v2 - Added support for user memory handles in RMA API - Added multi-rail support for RMA API in protocols v2 - Added support for up to 16 different lanes per endpoint - Added support for dmabuf memory registration in protocols v2 - Added strong fence mode for ucp_worker_fence() API - UCT - Added new uct_md_mem_attach() API to support exported memory handles - Added remote completion mode for endpoint flush (via new flag) - Added support for dmabuf registration - Added new uct_ep_connect_to_ep_v2() API - Added new uct_mem_reg_v2() API - Added new uct_md_query_v2() API - Added support for IPv6 loopback address in TCP transport - RDMA CORE (IB, ROCE, etc.) - Added ECE (enhanced connection establishment) support for RC and DC transports - Added support for hardware DCS in DC transport - Added UD interface and endpoint resource information to VFS - Added CQ creation via DEVX API - Removed support for accelerated IB transports over legacy experimental verbs - UCS - Added support for auto-correction of user environment variables - UCM - Implemented CUDA bistro hooks for aarch64 (to enable memory cache on this platform) - Added support for CUDA virtual/stream-ordered memory with cudaMallocAsync - Documentation - Added FAQ for using pkg-config tool to build applications with UCX - Tools - Added runtime library version to the 'ucx_info -v' output - Added support for memory types in ucx_info - Many bugfixes. See NEWS. - Drop patch merged upstream: - UCS-DEBUG-replace-PTR-with-void.patch - gcc13-fix.patch - Refresh openucx-s390x-support.patch OBS-URL: https://build.opensuse.org/request/show/1075167 OBS-URL: https://build.opensuse.org/package/show/science:HPC/openucx?expand=0&rev=57 --- UCS-DEBUG-replace-PTR-with-void.patch | 25 -------------- openucx-s390x-support.patch | 42 +++++++++++------------ openucx.changes | 48 +++++++++++++++++++++++++++ openucx.spec | 14 ++++---- ucx-1.13.1.tar.gz | 3 -- ucx-1.14.0.tar.gz | 3 ++ 6 files changed, 79 insertions(+), 56 deletions(-) delete mode 100644 UCS-DEBUG-replace-PTR-with-void.patch delete mode 100644 ucx-1.13.1.tar.gz create mode 100644 ucx-1.14.0.tar.gz diff --git a/UCS-DEBUG-replace-PTR-with-void.patch b/UCS-DEBUG-replace-PTR-with-void.patch deleted file mode 100644 index 16ce7d0..0000000 --- a/UCS-DEBUG-replace-PTR-with-void.patch +++ /dev/null @@ -1,25 +0,0 @@ -commit 2ba0935afc92b9288c01da246b3be53822277add -Author: Hui Zhou -Date: Sun Aug 14 23:29:09 2022 -0500 - - UCS/DEBUG: replace PTR with void * - - The PTR macro is missing on the latest Arch linux. - -diff --git src/ucs/debug/debug.c src/ucs/debug/debug.c -index b803636c2221..4bbf5095c419 100644 ---- src/ucs/debug/debug.c -+++ src/ucs/debug/debug.c -@@ -272,10 +272,10 @@ static int load_file(struct backtrace_file *file) - goto err_close; - } - -- symcount = bfd_read_minisymbols(file->abfd, 0, (PTR)&file->syms, &size); -+ symcount = bfd_read_minisymbols(file->abfd, 0, (void *)&file->syms, &size); - if (symcount == 0) { - free(file->syms); -- symcount = bfd_read_minisymbols(file->abfd, 1, (PTR)&file->syms, &size); -+ symcount = bfd_read_minisymbols(file->abfd, 1, (void *)&file->syms, &size); - } - if (symcount < 0) { - goto err_close; diff --git a/openucx-s390x-support.patch b/openucx-s390x-support.patch index 428b948..66ba44f 100644 --- a/openucx-s390x-support.patch +++ b/openucx-s390x-support.patch @@ -1,13 +1,13 @@ -commit d85339a86c0902ca36f4306f8d971cf46ae87eaf -Author: Nicolas Morey-Chaisemartin -Date: Tue Sep 27 17:47:15 2022 +0200 +commit 909e453ce7ee166c98274096720a6c9345fdc3ae +Author: Nicolas Morey +Date: Mon Feb 13 17:04:14 2023 +0100 openucx s390x support Signed-off-by: Nicolas Morey-Chaisemartin diff --git config/m4/ucm.m4 config/m4/ucm.m4 -index 8d7a9e40ec06..df7508e1e71a 100644 +index abf02c06f430..84aa3e214d5a 100644 --- config/m4/ucm.m4 +++ config/m4/ucm.m4 @@ -80,9 +80,20 @@ AC_CHECK_DECLS([SYS_ipc], @@ -33,7 +33,7 @@ index 8d7a9e40ec06..df7508e1e71a 100644 AS_IF([test "x$bistro_hooks_happy" = "xyes"], [AC_DEFINE([UCM_BISTRO_HOOKS], [1], [Enable BISTRO hooks])], diff --git src/tools/info/sys_info.c src/tools/info/sys_info.c -index 5316b1c4336e..e910bc53572d 100644 +index f41155ca3d9d..edeaaf5df529 100644 --- src/tools/info/sys_info.c +++ src/tools/info/sys_info.c @@ -46,7 +46,8 @@ static const char* cpu_vendor_names[] = { @@ -47,7 +47,7 @@ index 5316b1c4336e..e910bc53572d 100644 static double measure_memcpy_bandwidth(size_t size) diff --git src/ucm/Makefile.am src/ucm/Makefile.am -index 5140b5acf5bf..8805124befee 100644 +index 48b82bf89cbe..582f83d1ea82 100644 --- src/ucm/Makefile.am +++ src/ucm/Makefile.am @@ -31,7 +31,8 @@ noinst_HEADERS = \ @@ -61,7 +61,7 @@ index 5140b5acf5bf..8805124befee 100644 libucm_la_SOURCES = \ event/event.c \ diff --git src/ucm/bistro/bistro.h src/ucm/bistro/bistro.h -index 101000455e66..0ae947429796 100644 +index b622e3c14fbb..4acd9e9cdb83 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; @@ -98,7 +98,7 @@ index 000000000000..c0f427f4984a + +#endif diff --git src/ucs/Makefile.am src/ucs/Makefile.am -index 77680021d725..29f31aabd958 100644 +index 9e0bd2ffb1cc..97021c205d5c 100644 --- src/ucs/Makefile.am +++ src/ucs/Makefile.am @@ -22,6 +22,7 @@ libucs_la_LIBADD = $(LIBM) $(top_builddir)/src/ucm/libucm.la $(BFD_LIBS) @@ -109,7 +109,7 @@ index 77680021d725..29f31aabd958 100644 arch/x86_64/bitops.h \ arch/bitops.h \ algorithm/crc.h \ -@@ -81,12 +82,14 @@ nobase_dist_libucs_la_HEADERS = \ +@@ -82,12 +83,14 @@ nobase_dist_libucs_la_HEADERS = \ arch/aarch64/global_opts.h \ arch/generic/atomic.h \ arch/ppc64/global_opts.h \ @@ -124,8 +124,8 @@ index 77680021d725..29f31aabd958 100644 arch/x86_64/cpu.h \ arch/cpu.h \ config/ucm_opts.h \ -@@ -134,6 +137,7 @@ libucs_la_SOURCES = \ - algorithm/qsort_r.c \ +@@ -138,6 +141,7 @@ libucs_la_SOURCES = \ + algorithm/string_distance.c \ arch/aarch64/cpu.c \ arch/aarch64/global_opts.c \ + arch/s390x/global_opts.c \ @@ -133,7 +133,7 @@ index 77680021d725..29f31aabd958 100644 arch/ppc64/global_opts.c \ arch/x86_64/cpu.c \ diff --git src/ucs/arch/atomic.h src/ucs/arch/atomic.h -index 6a8551f592e1..e3a9f4641383 100644 +index 52be711c1d0a..8f1d62a28dc9 100644 --- src/ucs/arch/atomic.h +++ src/ucs/arch/atomic.h @@ -15,6 +15,8 @@ @@ -146,7 +146,7 @@ index 6a8551f592e1..e3a9f4641383 100644 # error "Unsupported architecture" #endif diff --git src/ucs/arch/bitops.h src/ucs/arch/bitops.h -index 77e00571e04f..bbdea0ceb210 100644 +index e89a37d0b673..dd2b9d5b6bcb 100644 --- src/ucs/arch/bitops.h +++ src/ucs/arch/bitops.h @@ -20,6 +20,8 @@ BEGIN_C_DECLS @@ -159,7 +159,7 @@ index 77e00571e04f..bbdea0ceb210 100644 # error "Unsupported architecture" #endif diff --git src/ucs/arch/cpu.c src/ucs/arch/cpu.c -index 9e6fab0904eb..c912e991586c 100644 +index ac8e268a1502..16c308bae94c 100644 --- src/ucs/arch/cpu.c +++ src/ucs/arch/cpu.c @@ -61,6 +61,10 @@ const ucs_cpu_builtin_memcpy_t ucs_cpu_builtin_memcpy[UCS_CPU_VENDOR_LAST] = { @@ -178,11 +178,11 @@ index 9e6fab0904eb..c912e991586c 100644 [UCS_CPU_VENDOR_GENERIC_ARM] = 5800 * UCS_MBYTE, [UCS_CPU_VENDOR_GENERIC_PPC] = 5800 * UCS_MBYTE, + [UCS_CPU_VENDOR_GENERIC_IBM] = 5800 * UCS_MBYTE, - [UCS_CPU_VENDOR_FUJITSU_ARM] = 12000 * UCS_MBYTE + [UCS_CPU_VENDOR_FUJITSU_ARM] = 12000 * UCS_MBYTE, + [UCS_CPU_VENDOR_ZHAOXIN] = 5800 * UCS_MBYTE }; - diff --git src/ucs/arch/cpu.h src/ucs/arch/cpu.h -index 719913fb0b8c..04d69ca01533 100644 +index a59561c041fa..dc95f3f56231 100644 --- src/ucs/arch/cpu.h +++ src/ucs/arch/cpu.h @@ -63,6 +63,7 @@ typedef enum ucs_cpu_vendor { @@ -203,7 +203,7 @@ index 719913fb0b8c..04d69ca01533 100644 # error "Unsupported architecture" #endif diff --git src/ucs/arch/global_opts.h src/ucs/arch/global_opts.h -index 8786f130290a..0d251fb91868 100644 +index 75d086177a7f..96c670cb60d3 100644 --- src/ucs/arch/global_opts.h +++ src/ucs/arch/global_opts.h @@ -15,6 +15,8 @@ @@ -244,7 +244,7 @@ index 000000000000..ce48ff1ff451 +{ + if (!n) + return 0; -+ return 63 - __builtin_clzl(n); ++ return 63 - __builtin_clz(n); +} + +static UCS_F_ALWAYS_INLINE unsigned ucs_ffs32(uint32_t n) @@ -410,10 +410,10 @@ index 000000000000..225e4e5e896a +#endif + diff --git src/ucs/sys/sys.c src/ucs/sys/sys.c -index 88f4a147315e..0b6d186265a8 100644 +index 57160c061986..be6b20812c39 100644 --- src/ucs/sys/sys.c +++ src/ucs/sys/sys.c -@@ -1224,8 +1224,19 @@ void *ucs_sys_realloc(void *old_ptr, size_t old_length, size_t new_length) +@@ -1256,8 +1256,19 @@ void *ucs_sys_realloc(void *old_ptr, size_t old_length, size_t new_length) if (old_ptr == NULL) { /* Note: Must pass the 0 offset as "long", otherwise it will be * partially undefined when converted to syscall arguments */ diff --git a/openucx.changes b/openucx.changes index ece16fa..04d9274 100644 --- a/openucx.changes +++ b/openucx.changes @@ -1,3 +1,51 @@ +------------------------------------------------------------------- +Mon Mar 20 09:00:27 UTC 2023 - Nicolas Morey + +- Update to v1.14.0 + - UCP + - Added API for querying transport and device names on endpoint + - Added API for querying datatype object + - Added API for exporting and importing memory keys (no implementation yet) + - Added support for non-persistent active message header + - Added infrastructure to print protocols v2 performance + - Multiple performance improvements for protocols v2 + - Added support for non-contiguous datatypes for rendezvous protocols v2 + - Added support for reset and abort request in protocols v2 + - Added support for user memory handles in RMA API + - Added multi-rail support for RMA API in protocols v2 + - Added support for up to 16 different lanes per endpoint + - Added support for dmabuf memory registration in protocols v2 + - Added strong fence mode for ucp_worker_fence() API + - UCT + - Added new uct_md_mem_attach() API to support exported memory handles + - Added remote completion mode for endpoint flush (via new flag) + - Added support for dmabuf registration + - Added new uct_ep_connect_to_ep_v2() API + - Added new uct_mem_reg_v2() API + - Added new uct_md_query_v2() API + - Added support for IPv6 loopback address in TCP transport + - RDMA CORE (IB, ROCE, etc.) + - Added ECE (enhanced connection establishment) support for RC and DC transports + - Added support for hardware DCS in DC transport + - Added UD interface and endpoint resource information to VFS + - Added CQ creation via DEVX API + - Removed support for accelerated IB transports over legacy experimental verbs + - UCS + - Added support for auto-correction of user environment variables + - UCM + - Implemented CUDA bistro hooks for aarch64 (to enable memory cache on this platform) + - Added support for CUDA virtual/stream-ordered memory with cudaMallocAsync + - Documentation + - Added FAQ for using pkg-config tool to build applications with UCX + - Tools + - Added runtime library version to the 'ucx_info -v' output + - Added support for memory types in ucx_info + - Many bugfixes. See NEWS. +- Drop patch merged upstream: + - UCS-DEBUG-replace-PTR-with-void.patch + - gcc13-fix.patch +- Refresh openucx-s390x-support.patch + ------------------------------------------------------------------- Mon Mar 6 12:18:52 UTC 2023 - Martin Liška diff --git a/openucx.spec b/openucx.spec index db9254b..44be99a 100644 --- a/openucx.spec +++ b/openucx.spec @@ -16,8 +16,11 @@ # +# Use for pulling RC versions +%define version_suf %{nil} + Name: openucx -Version: 1.13.1 +Version: 1.14.0 Release: 0 Summary: Communication layer for Message Passing (MPI) License: BSD-3-Clause @@ -26,11 +29,9 @@ URL: http://openucx.org/ #Git-Clone: git://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%{?version_suf}/ucx-%version.tar.gz Patch1: openucx-s390x-support.patch Patch2: ucm-fix-UCX_MEM_MALLOC_RELOC.patch -Patch3: UCS-DEBUG-replace-PTR-with-void.patch -Patch4: gcc13-fix.patch BuildRequires: autoconf >= 2.63 BuildRequires: automake >= 1.10 BuildRequires: binutils-devel @@ -139,8 +140,6 @@ hardware. %patch1 %endif %patch2 -%patch3 -%patch4 -p1 %build autoreconf -fi @@ -193,7 +192,8 @@ mv %buildroot/%_bindir/io_demo %buildroot/%_libexecdir/%{name}/ %_libdir/pkgconfig/ucx.pc %dir %_libdir/cmake/ %_libdir/cmake/ucx/ -%doc LICENSE NEWS +%license LICENSE +%doc NEWS %files -n libucm0 %defattr(-,root,root) diff --git a/ucx-1.13.1.tar.gz b/ucx-1.13.1.tar.gz deleted file mode 100644 index 906d7dd..0000000 --- a/ucx-1.13.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:efc37829b68e131d2acc82a3fd4334bfd611156a756837ffeb650ab9a9dd3828 -size 2979566 diff --git a/ucx-1.14.0.tar.gz b/ucx-1.14.0.tar.gz new file mode 100644 index 0000000..4bc497d --- /dev/null +++ b/ucx-1.14.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9bd95e2059de5dece9dddd049aacfca3d21bfca025748a6a0b1be4486e28afdd +size 3052075 From b714ee86f4ace9adb552f77159601d4269fcbb721791c9d9f219030aabe5d3e9 Mon Sep 17 00:00:00 2001 From: Nicolas Morey Date: Wed, 29 Mar 2023 10:50:52 +0000 Subject: [PATCH 2/3] - Add gcc13-fix.patch for GCC13 support OBS-URL: https://build.opensuse.org/package/show/science:HPC/openucx?expand=0&rev=58 --- openucx.changes | 1 + 1 file changed, 1 insertion(+) diff --git a/openucx.changes b/openucx.changes index 04d9274..f860b0f 100644 --- a/openucx.changes +++ b/openucx.changes @@ -45,6 +45,7 @@ Mon Mar 20 09:00:27 UTC 2023 - Nicolas Morey - UCS-DEBUG-replace-PTR-with-void.patch - gcc13-fix.patch - Refresh openucx-s390x-support.patch +- Add gcc13-fix.patch for GCC13 support ------------------------------------------------------------------- Mon Mar 6 12:18:52 UTC 2023 - Martin Liška From a42d04ee3683a4683020731d08da159afb533a10887cf0f8c15045e8b82277e7 Mon Sep 17 00:00:00 2001 From: Nicolas Morey Date: Thu, 30 Mar 2023 16:49:05 +0000 Subject: [PATCH 3/3] Remove remaining gcc13 patch OBS-URL: https://build.opensuse.org/package/show/science:HPC/openucx?expand=0&rev=59 --- gcc13-fix.patch | 23 ----------------------- openucx.changes | 1 - 2 files changed, 24 deletions(-) delete mode 100644 gcc13-fix.patch diff --git a/gcc13-fix.patch b/gcc13-fix.patch deleted file mode 100644 index b362955..0000000 --- a/gcc13-fix.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 8f70e898b43d1bde1ff3fae56bf0ac5aac285997 Mon Sep 17 00:00:00 2001 -From: Sam James -Date: Fri, 9 Sep 2022 11:35:03 +0100 -Subject: [PATCH] TEST/SOCKADDR: Add missing include for GCC 13 - -Closes: https://github.com/openucx/ucx/issues/8347 -Signed-off-by: Sam James ---- - test/apps/sockaddr/sa_util.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/test/apps/sockaddr/sa_util.h b/test/apps/sockaddr/sa_util.h -index 90c9649443f..c77ccc9a849 100644 ---- a/test/apps/sockaddr/sa_util.h -+++ b/test/apps/sockaddr/sa_util.h -@@ -7,6 +7,7 @@ - #ifndef SA_UTIL_H_ - #define SA_UTIL_H_ - -+#include - #include - #include - #include diff --git a/openucx.changes b/openucx.changes index f860b0f..04d9274 100644 --- a/openucx.changes +++ b/openucx.changes @@ -45,7 +45,6 @@ Mon Mar 20 09:00:27 UTC 2023 - Nicolas Morey - UCS-DEBUG-replace-PTR-with-void.patch - gcc13-fix.patch - Refresh openucx-s390x-support.patch -- Add gcc13-fix.patch for GCC13 support ------------------------------------------------------------------- Mon Mar 6 12:18:52 UTC 2023 - Martin Liška