forked from pool/openucx
878438d42d
- Update to v1.13.1 (jsc#PED-912) - Core - Added new objects to VFS: local and remote address of endpoint, statistics of ucp_ep_create success/failure, failed/destroyed endpoints - Added support for UCX static libraries - Added profiling for rkey management routines - PCIe relaxed order enabled by default for AMD CPUs - Fixed not deallocating memory from ucp_mem_unmap if no rcache - Fixed versioning infrastructure - Multiple code improvements: refactoring, debug prints and assertions, etc. - Multiple improvements in build, test and docs infrastructure - Added new objects to VFS (md, component, log_level, etc.) - Added configuration variable to specify which loadable modules are allowed - Added build-time configuration to disable sigaction overriding - UCP - Added API to pass pre-registered memory handle to UCP operations - Added implementation of AM rendezvous protocol - Added 2-stage pipeline rendezvous protocol for GPU - Added support for fragment mem_type for v1 pipeline proto, disabled by default - Added active message support for proto v2 - Added UCP memory registration cache - Improved adaptive progress - deactivate iface when all p2p lanes are destroyed - Added support for user memh in proto_v1 - Added support for selecting local address when creating a client endpoint - Added option to limit GPUDirectRDMA size in rendezvous protocol, UCX_RNDV_MEMTYPE_DIRECT_SIZE - Deprecated UCX_SOCKADDR_AUX_TLS configuration parameter - Resolving remote EP ID when creating local EP disabled by default - Added client_id to ucp_worker_create() and ucp_conn_request_query() APIs - Added ucp_worker_address_query() API - Updated ucp_ep_query() API for getting local and remote addresses - Added address versioning to correctly preserve wire compatibility starting from version 1.11.0 - Added new client/server connection establishment packet header format - Enabled rendezvous and tag sync protocols when error handling is enabled on the endpoint - Added iov zcopy support to RMA operations - Reduced memory usage of unexpected messages by fitting receive buffer size to packet size - Added support for modifying UCT and UCS configs by ucp_config_modify() API - Optimized unpacked rkeys memory consumption - Added request flag to influence latency vs. bandwidth protocol - Reduced memory management overhead with new protocols - Improved performance calculations for new protocols - Added AMO support with GPU memory target using new protocols - Added put_zcopy, get_zcopy and pipeline based rendezvous in new protocols - Added support for user-defined alignment in Active Messages - Added support for offload tag sync in new protocols - Updated ucp_atomic_post() to use NBX flow - UCT - Introduced API uct_md_mkey_pack_v2 - Introduced UCT iface features API - Introduced max_inflight_eps parameter in perf_attr API - Introduced UCT_SEND_FLAG_PEER_CHECK flag that forces checking connectivity to a peer - Introduced UCX_RCACHE_PURGE_ON_FORK to enable/disable cleaning regions when application is forking - Disabled PEER_FAILURE capability for XPMEM - Added API - uct_iface_is_reachable_v2() - Added IPv6 address support in TCP - Added latency estimation to uct_iface_estimate_perf() - Adjusted knem and cma overhead cost - Increased built-in TCP keep-alive interval to 2 seconds - RDMA CORE (IB, ROCE, etc.) - Introduced NDR autorecognition - Introduced CQE zipping support - Set the default MAX_RD_ATOMIC to maximum value supported by the hardware - Disabled mlx5 ifaces on verbs MD - Added detection of IB NDR devices - Added check for CQ overrun in assert mode - Added bitmap usage for releasing detached DCIs - Added configuration for requests ack frequency with DevX - Added remote QP info to tx error CQE traces - ROCM - Increased maximum number of HSA agents - UCS - Added topo module infrastructure - Added memtrack and rcache information to VFS - Added API for a per-process aggregate-sum statistics report - Added memory pool set data structure - Added new ptr_array API for bulk allocation - Added ucs_string_buffer_append_flags() for string buffer - Added ucs_ffs32() - Added ucs_vsnprintf_safe() which always adds '\0' - Added thread-safe put to ptr_map - Improved accuracy of the topology distance estimation - Added prints of leaked callbacks from the callback queue - Removed a diagnostic message when fuse thread is stopped - Added configurable limit for the memory consumed by rcache - Added configuration for VFS(FUSE) thread affinity - Added memory limit support to memtrack - Packaging - Added cmake config files for better integration with external cmake based projects - Tools - Added loop-back transport support in ucx_perftest - Split ucx_perftest into separate modules - Added process placement option for ucx_info - Extended parameters correctness check in ucx_perftest - Backported UCS-DEBUG-replace-PTR-with-void.patch from upstream to fix compilation OBS-URL: https://build.opensuse.org/request/show/1006486 OBS-URL: https://build.opensuse.org/package/show/science:HPC/openucx?expand=0&rev=48
245 lines
6.9 KiB
RPMSpec
245 lines
6.9 KiB
RPMSpec
#
|
|
# spec file for package openucx
|
|
#
|
|
# Copyright (c) 2022 SUSE LLC
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
Name: openucx
|
|
Version: 1.13.1
|
|
Release: 0
|
|
Summary: Communication layer for Message Passing (MPI)
|
|
License: BSD-3-Clause
|
|
Group: Development/Libraries/C and C++
|
|
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
|
|
Source1: baselibs.conf
|
|
Patch1: openucx-s390x-support.patch
|
|
Patch2: ucm-fix-UCX_MEM_MALLOC_RELOC.patch
|
|
Patch3: UCS-DEBUG-replace-PTR-with-void.patch
|
|
BuildRequires: autoconf >= 2.63
|
|
BuildRequires: automake >= 1.10
|
|
BuildRequires: binutils-devel
|
|
BuildRequires: gcc-c++
|
|
BuildRequires: libibverbs-devel
|
|
%if 0%{?suse_version} < 1330
|
|
%ifnarch s390x
|
|
BuildRequires: libnuma-devel
|
|
%endif
|
|
%else
|
|
BuildRequires: libnuma-devel
|
|
%endif
|
|
BuildRequires: libtool
|
|
BuildRequires: pkg-config
|
|
BuildRequires: zlib-devel
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|
ExclusiveArch: aarch64 %power64 x86_64 s390x
|
|
|
|
%description
|
|
UCX stands for Unified Communication X. UCX provides a communication
|
|
layer for Message Passing (MPI), PGAS/OpenSHMEM libraries and
|
|
RPC/data-centric applications. UCX utilizes networks such as RDMA
|
|
(InfiniBand, RoCE, etc), Cray Gemini or Aries, for inter-node
|
|
communication, or TCP. UCX supports transfer of data in either main
|
|
memory (RAM) or GPU memory (through CUDA and ROCm libraries). UCX
|
|
provides intra-node communication by using shared memory mechanisms.
|
|
|
|
%package tools
|
|
Summary: OpenUCX utilities
|
|
Group: System/Console
|
|
|
|
%description tools
|
|
Miscallaneous utilities for Unified Communication X.
|
|
|
|
%package -n libucm0
|
|
Summary: Memory (un)happing hooks for Unified Communication X
|
|
Group: System/Libraries
|
|
|
|
%description -n libucm0
|
|
libucm is a standalone non-unloadable library which installs hooks
|
|
for virtual memory changes in the current process.
|
|
|
|
%package -n libucm-devel
|
|
Summary: Development files for Unified Communication X Memory Hooks
|
|
Group: Development/Libraries/C and C++
|
|
Requires: libucm0 = %version
|
|
|
|
%description -n libucm-devel
|
|
libucm is a standalone non-unloadable library which installs hooks
|
|
for virtual memory changes in the current process.
|
|
|
|
%package -n libucp0
|
|
Summary: Infiniband Unified Communication Protocols
|
|
Group: System/Libraries
|
|
|
|
%description -n libucp0
|
|
High-level API uses UCT framework to construct protocols commonly
|
|
found in applications (MPI, OpenSHMEM, PGAS, etc.)
|
|
|
|
%package -n libucp-devel
|
|
Summary: Development files for Unified Communication Protocols (UC-P)
|
|
Group: Development/Libraries/C and C++
|
|
Requires: libucp0 = %version
|
|
|
|
%description -n libucp-devel
|
|
High-level API uses UCT framework to construct protocols commonly
|
|
found in applications (MPI, OpenSHMEM, PGAS, etc.)
|
|
|
|
%package -n libucs0
|
|
Summary: Infiniband Unicified Communication Services
|
|
Group: System/Libraries
|
|
|
|
%description -n libucs0
|
|
This framework provides infrastructure for component based
|
|
programming, memory management, and system utilities.
|
|
|
|
%package -n libucs-devel
|
|
Summary: Development files for Unified Communication Services (UC-S)
|
|
Group: Development/Libraries/C and C++
|
|
Requires: libucs0 = %version
|
|
|
|
%description -n libucs-devel
|
|
This framework provides infrastructure for component based
|
|
programming, memory management, and system utilities.
|
|
|
|
%package -n libuct0
|
|
Summary: Infiniband Unified Communication Transport
|
|
Group: System/Libraries
|
|
|
|
%description -n libuct0
|
|
Low-level API that expose network operations supported by underlying
|
|
hardware.
|
|
|
|
%package -n libuct-devel
|
|
Summary: Development files for Unified Communication Transport (UC-T)
|
|
Group: Development/Libraries/C and C++
|
|
Requires: libuct0 = %version
|
|
|
|
%description -n libuct-devel
|
|
Low-level API that expose network operations supported by underlying
|
|
hardware.
|
|
|
|
%prep
|
|
%setup -qn ucx-%version
|
|
%ifarch s390x
|
|
%patch1
|
|
%endif
|
|
%patch2
|
|
%patch3
|
|
|
|
%build
|
|
autoreconf -fi
|
|
export UCX_CFLAGS="%optflags -Wno-error"
|
|
%ifarch x86_64
|
|
export UCX_CFLAGS="$UCX_CFLAGS -mno-avx"
|
|
%endif
|
|
%ifarch %ix86
|
|
export UCX_CFLAGS="$UCX_CFLAGS -mno-sse -mno-sse2"
|
|
%endif
|
|
%configure --disable-static --without-avx \
|
|
%if 0%{?suse_version} < 1330
|
|
%ifarch s390x
|
|
--disable-numa \
|
|
%endif
|
|
%endif
|
|
--docdir="%_docdir/%name" \
|
|
--disable-debug --disable-assertions \
|
|
--disable-params-check \
|
|
--with-rc --with-ud --with-dc \
|
|
--with-mlx5-dv --with-rdmacm
|
|
|
|
# Override BASE_CFLAGS to disable Werror (boo#1121267)
|
|
make %{?_smp_mflags} V=1 BASE_CFLAGS="-g -Wall"
|
|
|
|
%post -n libucp0 -p /sbin/ldconfig
|
|
%postun -n libucp0 -p /sbin/ldconfig
|
|
%post -n libucs0 -p /sbin/ldconfig
|
|
%postun -n libucs0 -p /sbin/ldconfig
|
|
%post -n libuct0 -p /sbin/ldconfig
|
|
%postun -n libuct0 -p /sbin/ldconfig
|
|
%post -n libucm0 -p /sbin/ldconfig
|
|
%postun -n libucm0 -p /sbin/ldconfig
|
|
|
|
%install
|
|
%make_install
|
|
rm -fv "%buildroot/%_libdir"/*.la
|
|
rm -fv "%buildroot/%_libdir"/ucx/*.la
|
|
# Rename example dir for consistency with the package name
|
|
mv %buildroot/%_datadir/ucx %buildroot/%_datadir/openucx
|
|
# io_demo should not be in %{bindir} and more likely in %{libexec}
|
|
mkdir -p %buildroot/%_libexecdir/%{name}/
|
|
mv %buildroot/%_bindir/io_demo %buildroot/%_libexecdir/%{name}/
|
|
|
|
%files tools
|
|
%defattr(-,root,root)
|
|
%_bindir/ucx_*
|
|
%_datadir/%{name}/
|
|
%_libexecdir/%{name}
|
|
%_libdir/pkgconfig/ucx.pc
|
|
%dir %_libdir/cmake/
|
|
%_libdir/cmake/ucx/
|
|
%doc LICENSE NEWS
|
|
|
|
%files -n libucm0
|
|
%defattr(-,root,root)
|
|
%_libdir/libucm.so.*
|
|
|
|
%files -n libucm-devel
|
|
%defattr(-,root,root)
|
|
%_includedir/ucm/
|
|
%_libdir/libucm.so
|
|
|
|
%files -n libucp0
|
|
%defattr(-,root,root)
|
|
%_libdir/libucp.so.*
|
|
|
|
%files -n libucp-devel
|
|
%defattr(-,root,root)
|
|
%_includedir/ucp/
|
|
%_libdir/libucp.so
|
|
|
|
%files -n libucs0
|
|
%defattr(-,root,root)
|
|
%_libdir/libucs.so.*
|
|
%_libdir/libucs_signal.so.*
|
|
|
|
%files -n libucs-devel
|
|
%defattr(-,root,root)
|
|
%_includedir/ucs/
|
|
%_libdir/libucs.so
|
|
%_libdir/libucs_signal.so
|
|
%_libdir/pkgconfig/ucx-ucs.pc
|
|
|
|
%files -n libuct0
|
|
%defattr(-,root,root)
|
|
%_libdir/libuct.so.*
|
|
%dir %_libdir/ucx/
|
|
%_libdir/ucx/libuct_*.so.*
|
|
|
|
%files -n libuct-devel
|
|
%defattr(-,root,root)
|
|
%_includedir/uct/
|
|
%_libdir/libuct.so
|
|
%dir %_libdir/ucx/
|
|
%_libdir/ucx/libuct_*.so
|
|
%_libdir/pkgconfig/ucx-uct.pc
|
|
%_libdir/pkgconfig/ucx-cma.pc
|
|
%_libdir/pkgconfig/ucx-ib.pc
|
|
%_libdir/pkgconfig/ucx-rdmacm.pc
|
|
|
|
%changelog
|