|
|
1627e2 |
%{!?configure_options: %global configure_options %{nil}}
|
|
|
78ce05 |
%bcond_without cma
|
|
|
78ce05 |
%bcond_with cuda
|
|
|
78ce05 |
%bcond_with gdrcopy
|
|
|
78ce05 |
%bcond_without ib
|
|
|
78ce05 |
%if 0%{?fedora} >= 30 || 0%{?rhel} >= 7
|
|
|
78ce05 |
%bcond_with ib_cm
|
|
|
78ce05 |
%else
|
|
|
78ce05 |
%bcond_without ib_cm
|
|
|
78ce05 |
%endif
|
|
|
78ce05 |
%bcond_with knem
|
|
|
78ce05 |
%bcond_without rdmacm
|
|
|
78ce05 |
%bcond_with rocm
|
|
|
78ce05 |
%bcond_with ugni
|
|
|
78ce05 |
%bcond_with xpmem
|
|
|
34836a |
%bcond_with java
|
|
|
1627e2 |
|
|
|
1627e2 |
Name: ucx
|
|
|
34836a |
Version: 1.8.0
|
|
|
78ce05 |
Release: 1%{?dist}
|
|
|
1627e2 |
Summary: UCX is a communication library implementing high-performance messaging
|
|
|
34836a |
Group: System Environment/Libraries
|
|
|
1627e2 |
|
|
|
1627e2 |
License: BSD
|
|
|
1627e2 |
URL: http://www.openucx.org
|
|
|
34836a |
Source: https://github.com/openucx/%{name}/releases/download/v1.8.0/ucx-1.8.0.tar.gz
|
|
|
1627e2 |
|
|
|
1627e2 |
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
|
|
|
1627e2 |
|
|
|
1627e2 |
# UCX currently supports only the following architectures
|
|
|
1627e2 |
ExclusiveArch: aarch64 ppc64le x86_64
|
|
|
1627e2 |
|
|
|
34836a |
BuildRequires: automake autoconf libtool gcc-c++
|
|
|
34836a |
%if "%{_vendor}" == "suse"
|
|
|
34836a |
BuildRequires: libnuma-devel
|
|
|
34836a |
%else
|
|
|
34836a |
BuildRequires: numactl-devel
|
|
|
34836a |
%endif
|
|
|
78ce05 |
%if %{with cma}
|
|
|
78ce05 |
BuildRequires: glibc-devel >= 2.15
|
|
|
78ce05 |
%endif
|
|
|
78ce05 |
%if %{with gdrcopy}
|
|
|
78ce05 |
BuildRequires: gdrcopy
|
|
|
78ce05 |
%endif
|
|
|
78ce05 |
%if %{with ib}
|
|
|
78ce05 |
BuildRequires: libibverbs-devel
|
|
|
78ce05 |
%endif
|
|
|
78ce05 |
%if %{with ib_cm}
|
|
|
78ce05 |
BuildRequires: libibcm-devel
|
|
|
78ce05 |
%endif
|
|
|
78ce05 |
%if %{with knem}
|
|
|
78ce05 |
BuildRequires: knem
|
|
|
78ce05 |
%endif
|
|
|
78ce05 |
%if %{with rdmacm}
|
|
|
78ce05 |
BuildRequires: librdmacm-devel
|
|
|
78ce05 |
%endif
|
|
|
78ce05 |
%if %{with rocm}
|
|
|
78ce05 |
BuildRequires: hsa-rocr-dev
|
|
|
78ce05 |
%endif
|
|
|
78ce05 |
%if %{with xpmem}
|
|
|
78ce05 |
BuildRequires: xpmem-devel
|
|
|
78ce05 |
%endif
|
|
|
34836a |
%if %{with java}
|
|
|
34836a |
BuildRequires: maven
|
|
|
34836a |
%endif
|
|
|
1627e2 |
|
|
|
1627e2 |
%description
|
|
|
78ce05 |
UCX stands for Unified Communication X. UCX provides an optimized communication
|
|
|
78ce05 |
layer for Message Passing (MPI), PGAS/OpenSHMEM libraries and RPC/data-centric
|
|
|
78ce05 |
applications. UCX utilizes high-speed networks, such as RDMA (InfiniBand, RoCE,
|
|
|
78ce05 |
etc), Cray Gemini or Aries, for inter-node communication. If no such network is
|
|
|
78ce05 |
available, TCP is used instead. UCX supports efficient transfer of data in
|
|
|
78ce05 |
either main memory (RAM) or GPU memory (through CUDA and ROCm libraries).
|
|
|
78ce05 |
In addition, UCX provides efficient intra-node communication, by leveraging the
|
|
|
78ce05 |
following shared memory mechanisms: posix, sysv, cma, knem, and xpmem.
|
|
|
34836a |
This package was built from '' branch, commit c30b7da.
|
|
|
34836a |
|
|
|
34836a |
%if "%{_vendor}" == "suse"
|
|
|
34836a |
%debug_package
|
|
|
34836a |
%endif
|
|
|
1627e2 |
|
|
|
1627e2 |
%package devel
|
|
|
1627e2 |
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
78ce05 |
Summary: Header files required for developing with UCX
|
|
|
34836a |
Group: Development/Libraries
|
|
|
1627e2 |
|
|
|
1627e2 |
%description devel
|
|
|
1627e2 |
Provides header files and examples for developing with UCX.
|
|
|
1627e2 |
|
|
|
1627e2 |
%prep
|
|
|
1627e2 |
%setup -q
|
|
|
1627e2 |
|
|
|
1627e2 |
%build
|
|
|
78ce05 |
%define _with_arg() %{expand:%%{?with_%{1}:--with-%{2}}%%{!?with_%{1}:--without-%{2}}}
|
|
|
78ce05 |
%define _enable_arg() %{expand:%%{?with_%{1}:--enable-%{2}}%%{!?with_%{1}:--disable-%{2}}}
|
|
|
1627e2 |
%configure --disable-optimizations \
|
|
|
1627e2 |
--disable-logging \
|
|
|
1627e2 |
--disable-debug \
|
|
|
1627e2 |
--disable-assertions \
|
|
|
1627e2 |
--disable-params-check \
|
|
|
78ce05 |
%_enable_arg cma cma \
|
|
|
78ce05 |
%_with_arg cuda cuda \
|
|
|
78ce05 |
%_with_arg gdrcopy gdrcopy \
|
|
|
78ce05 |
%_with_arg ib verbs \
|
|
|
78ce05 |
%_with_arg ib_cm cm \
|
|
|
78ce05 |
%_with_arg knem knem \
|
|
|
78ce05 |
%_with_arg rdmacm rdmacm \
|
|
|
78ce05 |
%_with_arg rocm rocm \
|
|
|
78ce05 |
%_with_arg xpmem xpmem \
|
|
|
78ce05 |
%_with_arg ugni ugni \
|
|
|
34836a |
%_with_arg java java \
|
|
|
1627e2 |
%{?configure_options}
|
|
|
1627e2 |
make %{?_smp_mflags} V=1
|
|
|
1627e2 |
|
|
|
1627e2 |
%install
|
|
|
1627e2 |
make DESTDIR=%{buildroot} install
|
|
|
1627e2 |
rm -f %{buildroot}%{_libdir}/*.la
|
|
|
78ce05 |
rm -f %{buildroot}%{_libdir}/*.a
|
|
|
78ce05 |
rm -f %{buildroot}%{_libdir}/ucx/*.la
|
|
|
78ce05 |
rm -f %{buildroot}%{_libdir}/ucx/lib*.so
|
|
|
78ce05 |
rm -f %{buildroot}%{_libdir}/ucx/lib*.a
|
|
|
1627e2 |
|
|
|
1627e2 |
%files
|
|
|
1627e2 |
%{_libdir}/lib*.so.*
|
|
|
1627e2 |
%{_bindir}/uc*
|
|
|
1627e2 |
%{_datadir}/ucx
|
|
|
1627e2 |
%exclude %{_datadir}/ucx/examples
|
|
|
1627e2 |
%doc README AUTHORS NEWS
|
|
|
1627e2 |
%{!?_licensedir:%global license %%doc}
|
|
|
1627e2 |
%license LICENSE
|
|
|
1627e2 |
|
|
|
1627e2 |
%files devel
|
|
|
1627e2 |
%{_includedir}/uc*
|
|
|
1627e2 |
%{_libdir}/lib*.so
|
|
|
1627e2 |
%{_libdir}/pkgconfig/ucx.pc
|
|
|
1627e2 |
%{_datadir}/ucx/examples
|
|
|
1627e2 |
|
|
|
1627e2 |
%post -p /sbin/ldconfig
|
|
|
1627e2 |
%postun -p /sbin/ldconfig
|
|
|
1627e2 |
|
|
|
78ce05 |
%if %{with cma}
|
|
|
78ce05 |
%package cma
|
|
|
78ce05 |
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
78ce05 |
Summary: UCX CMA support
|
|
|
34836a |
Group: System Environment/Libraries
|
|
|
78ce05 |
|
|
|
78ce05 |
%description cma
|
|
|
78ce05 |
Provides CMA (Linux cross-memory-attach) transport for UCX. It utilizes the
|
|
|
78ce05 |
system calls process_vm_readv/writev() for one-shot memory copy from another
|
|
|
78ce05 |
process.
|
|
|
78ce05 |
|
|
|
78ce05 |
%files cma
|
|
|
78ce05 |
%{_libdir}/ucx/libuct_cma.so.*
|
|
|
78ce05 |
%endif
|
|
|
78ce05 |
|
|
|
78ce05 |
%if %{with cuda}
|
|
|
78ce05 |
%package cuda
|
|
|
78ce05 |
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
78ce05 |
Summary: UCX CUDA support
|
|
|
34836a |
Group: System Environment/Libraries
|
|
|
78ce05 |
|
|
|
78ce05 |
%description cuda
|
|
|
78ce05 |
Provide CUDA (NVIDIA GPU) support for UCX. Enables passing GPU memory pointers
|
|
|
78ce05 |
to UCX communication routines, and transports taking advantage of GPU-Direct
|
|
|
78ce05 |
technology for direct data transfer between GPU and RDMA devices.
|
|
|
78ce05 |
|
|
|
78ce05 |
%files cuda
|
|
|
78ce05 |
%{_libdir}/ucx/libucx_perftest_cuda.so.*
|
|
|
78ce05 |
%{_libdir}/ucx/libucm_cuda.so.*
|
|
|
78ce05 |
%{_libdir}/ucx/libuct_cuda.so.*
|
|
|
78ce05 |
%endif
|
|
|
78ce05 |
|
|
|
78ce05 |
%if %{with gdrcopy}
|
|
|
78ce05 |
%package gdrcopy
|
|
|
78ce05 |
Requires: %{name}-cuda%{?_isa} = %{version}-%{release}
|
|
|
78ce05 |
Summary: UCX GDRCopy support
|
|
|
34836a |
Group: System Environment/Libraries
|
|
|
78ce05 |
|
|
|
78ce05 |
%description gdrcopy
|
|
|
78ce05 |
Provide GDRCopy support for UCX. GDRCopy is a low-latency GPU memory copy
|
|
|
78ce05 |
library, built on top of the NVIDIA GPUDirect RDMA technology.
|
|
|
78ce05 |
|
|
|
78ce05 |
%files gdrcopy
|
|
|
78ce05 |
%{_libdir}/ucx/libuct_cuda_gdrcopy.so.*
|
|
|
78ce05 |
%endif
|
|
|
78ce05 |
|
|
|
78ce05 |
%if %{with ib}
|
|
|
78ce05 |
%package ib
|
|
|
78ce05 |
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
78ce05 |
Summary: UCX RDMA support
|
|
|
34836a |
Group: System Environment/Libraries
|
|
|
78ce05 |
|
|
|
78ce05 |
%description ib
|
|
|
78ce05 |
Provides support for IBTA-compliant transports for UCX. This includes RoCE,
|
|
|
78ce05 |
InfiniBand, OmniPath, and any other transport supported by IB Verbs API.
|
|
|
78ce05 |
Typically these transports provide RDMA support, which enables a fast and
|
|
|
78ce05 |
hardware-offloaded data transfer.
|
|
|
78ce05 |
|
|
|
78ce05 |
%files ib
|
|
|
78ce05 |
%{_libdir}/ucx/libuct_ib.so.*
|
|
|
78ce05 |
%endif
|
|
|
78ce05 |
|
|
|
78ce05 |
%if %{with ib_cm}
|
|
|
78ce05 |
%package ib-cm
|
|
|
78ce05 |
Requires: %{name}-ib%{?_isa} = %{version}-%{release}
|
|
|
78ce05 |
Summary: UCX InfiniBand connection-manager support
|
|
|
34836a |
Group: System Environment/Libraries
|
|
|
78ce05 |
|
|
|
78ce05 |
%description ib-cm
|
|
|
78ce05 |
Provides Infiniband Connection Manager (also known as ibcm) support for UCX.
|
|
|
78ce05 |
|
|
|
78ce05 |
%files ib-cm
|
|
|
78ce05 |
%{_libdir}/ucx/libuct_ib_cm.so.*
|
|
|
78ce05 |
%endif
|
|
|
78ce05 |
|
|
|
78ce05 |
%if %{with knem}
|
|
|
78ce05 |
%package knem
|
|
|
78ce05 |
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
78ce05 |
Summary: UCX KNEM transport support
|
|
|
34836a |
Group: System Environment/Libraries
|
|
|
78ce05 |
|
|
|
78ce05 |
%description knem
|
|
|
78ce05 |
Provides KNEM (fast inter-process copy) transport for UCX. KNEM is a Linux
|
|
|
78ce05 |
kernel module that enables high-performance intra-node MPI communication
|
|
|
78ce05 |
for large messages.
|
|
|
78ce05 |
|
|
|
78ce05 |
%files knem
|
|
|
78ce05 |
%{_libdir}/ucx/libuct_knem.so.*
|
|
|
78ce05 |
%endif
|
|
|
78ce05 |
|
|
|
78ce05 |
%if %{with rdmacm}
|
|
|
78ce05 |
%package rdmacm
|
|
|
78ce05 |
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
78ce05 |
Summary: UCX RDMA connection manager support
|
|
|
34836a |
Group: System Environment/Libraries
|
|
|
78ce05 |
|
|
|
78ce05 |
%description rdmacm
|
|
|
78ce05 |
Provides RDMA connection-manager support to UCX, which enables client/server
|
|
|
78ce05 |
based connection establishment for RDMA-capable transports.
|
|
|
78ce05 |
|
|
|
78ce05 |
%files rdmacm
|
|
|
78ce05 |
%{_libdir}/ucx/libuct_rdmacm.so.*
|
|
|
78ce05 |
%endif
|
|
|
78ce05 |
|
|
|
78ce05 |
%if %{with rocm}
|
|
|
78ce05 |
%package rocm
|
|
|
78ce05 |
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
78ce05 |
Summary: UCX ROCm GPU support
|
|
|
34836a |
Group: System Environment/Libraries
|
|
|
78ce05 |
|
|
|
78ce05 |
%description rocm
|
|
|
78ce05 |
Provides Radeon Open Compute (ROCm) Runtime support for UCX.
|
|
|
78ce05 |
|
|
|
78ce05 |
%files rocm
|
|
|
78ce05 |
%{_libdir}/ucx/libuct_rocm.so.*
|
|
|
78ce05 |
%{_libdir}/ucx/libucm_rocm.so.*
|
|
|
78ce05 |
|
|
|
78ce05 |
%if %{with gdrcopy}
|
|
|
78ce05 |
%package rocmgdr
|
|
|
78ce05 |
Requires: %{name}-rocm%{?_isa} = %{version}-%{release}
|
|
|
78ce05 |
Summary: UCX GDRCopy support for ROCM
|
|
|
34836a |
Group: System Environment/Libraries
|
|
|
78ce05 |
|
|
|
78ce05 |
%description rocmgdr
|
|
|
78ce05 |
Provide GDRCopy support for UCX ROCM. GDRCopy is a low-latency GPU memory copy
|
|
|
78ce05 |
library, built on top of the NVIDIA GPUDirect RDMA technology.
|
|
|
78ce05 |
|
|
|
78ce05 |
%files rocmgdr
|
|
|
78ce05 |
%{_libdir}/ucx/libuct_rocm_gdr.so.*
|
|
|
78ce05 |
%endif
|
|
|
78ce05 |
%endif
|
|
|
78ce05 |
|
|
|
78ce05 |
%if %{with ugni}
|
|
|
78ce05 |
%package ugni
|
|
|
78ce05 |
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
78ce05 |
Summary: UCX Gemini/Aries transport support.
|
|
|
34836a |
Group: System Environment/Libraries
|
|
|
78ce05 |
|
|
|
78ce05 |
%description ugni
|
|
|
78ce05 |
Provides Gemini/Aries transport for UCX.
|
|
|
78ce05 |
|
|
|
78ce05 |
%files ugni
|
|
|
78ce05 |
%{_libdir}/ucx/libuct_ugni.so.*
|
|
|
78ce05 |
%endif
|
|
|
78ce05 |
|
|
|
78ce05 |
%if %{with xpmem}
|
|
|
78ce05 |
%package xpmem
|
|
|
78ce05 |
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
78ce05 |
Summary: UCX XPMEM transport support.
|
|
|
34836a |
Group: System Environment/Libraries
|
|
|
78ce05 |
|
|
|
78ce05 |
%description xpmem
|
|
|
78ce05 |
Provides XPMEM transport for UCX. XPMEM is a Linux kernel module that enables a
|
|
|
78ce05 |
process to map the memory of another process into its virtual address space.
|
|
|
78ce05 |
|
|
|
78ce05 |
%files xpmem
|
|
|
78ce05 |
%{_libdir}/ucx/libuct_xpmem.so.*
|
|
|
78ce05 |
%endif
|
|
|
78ce05 |
|
|
|
34836a |
%if %{with java}
|
|
|
34836a |
%package java
|
|
|
34836a |
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
34836a |
Summary: UCX Java bindings
|
|
|
34836a |
Group: System Environment/Libraries
|
|
|
34836a |
|
|
|
34836a |
%description java
|
|
|
34836a |
Provides java bindings for UCX.
|
|
|
34836a |
|
|
|
34836a |
%files java
|
|
|
34836a |
%{_libdir}/jucx-*.jar
|
|
|
34836a |
%endif
|
|
|
78ce05 |
|
|
|
1627e2 |
%changelog
|
|
|
34836a |
* Sun Sep 22 2019 Yossi Itigin <yosefe@mellanox.com> 1.8.0-1
|
|
|
34836a |
- Bump version to 1.8.0
|
|
|
34836a |
* Sun Mar 24 2019 Yossi Itigin <yosefe@mellanox.com> 1.7.0-1
|
|
|
34836a |
- Bump version to 1.7.0
|
|
|
78ce05 |
* Thu Jan 24 2019 Yossi Itigin <yosefe@mellanox.com> 1.6.0-1
|
|
|
78ce05 |
- Add cma, knem, and xpmem sub-packages
|
|
|
78ce05 |
* Tue Nov 20 2018 Yossi Itigin <yosefe@mellanox.com> 1.6.0-1
|
|
|
78ce05 |
- Bump version to 1.6.0
|
|
|
78ce05 |
* Tue Nov 6 2018 Andrey Maslennikov <andreyma@mellanox.com> 1.5.0-1
|
|
|
78ce05 |
- Bump version to 1.5.0
|
|
|
78ce05 |
- See NEWS for details
|
|
|
78ce05 |
* Tue Oct 30 2018 Andrey Maslennikov <andreyma@mellanox.com> 1.4.0-1
|
|
|
78ce05 |
- See NEWS for details
|
|
|
78ce05 |
* Mon Aug 20 2018 Andrey Maslennikov <andreyma@mellanox.com> 1.3.1-1
|
|
|
78ce05 |
- See NEWS for details
|
|
|
1627e2 |
* Thu Aug 16 2018 Andrey Maslennikov <andreyma@mellanox.com> 1.3.0-1
|
|
|
1627e2 |
- Explicitly set gcc-c++ as requirements
|
|
|
1627e2 |
* Wed Mar 7 2018 Andrey Maslennikov <andreyma@mellanox.com> 1.3.0-1
|
|
|
1627e2 |
- See NEWS for details
|
|
|
1627e2 |
* Mon Aug 21 2017 Andrey Maslennikov <andreyma@mellanox.com> 1.2.1-1
|
|
|
1627e2 |
- Spec file now complies with Fedora guidelines
|
|
|
1627e2 |
* Mon Jul 3 2017 Andrey Maslennikov <andreyma@mellanox.com> 1.2.0-1
|
|
|
1627e2 |
- Fedora package created
|