Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update UCX to version 1.12.1 #7809

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions scram-tools.file/tools/xpmem/xpmem.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<tool name="xpmem" version="@TOOL_VERSION@">
<lib name="xpmem"/>
<client>
<environment name="XPMEM_BASE" default="@TOOL_ROOT@"/>
<environment name="INCLUDE" default="$XPMEM_BASE/include"/>
<environment name="LIBDIR" default="$XPMEM_BASE/lib"/>
</client>
</tool>
32 changes: 22 additions & 10 deletions ucx.spec
Original file line number Diff line number Diff line change
@@ -1,19 +1,26 @@
### RPM external ucx 1.12.0
Source: https://github.com/openucx/%{n}/releases/download/v%{realversion}/%{n}-%{realversion}.tar.gz
### RPM external ucx 1.12.1
Source: https://github.com/openucx/%{n}/archive/refs/tags/v%{realversion}.tar.gz
BuildRequires: autotools
Requires: cuda gdrcopy
Requires: numactl
Requires: gdrcopy cuda
Requires: rdma-core
%ifarch x86_64
Requires: rocm
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@fwyzard , this will package rocm for all archs. I think we should include and configure rocm only for x86_64 archs

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you are right, of course.

%endif
Requires: xpmem
AutoReq: no
# external libraries are needed for additional protocols:
# --with-rocm: AMD ROCm platform for accelerated compute
# --with-cm: Userspace InfiniBand Communication Managment library: deprecated and removed from RDMA core v17 on December 2017
# --with-knem: KNEM High-Performance Intra-Node MPI Communication
# etc.

%prep
%setup -q -n %{n}-%{realversion}

# remove the ROCm GDR module, because it is not compatible with GDRCopy v2.x
sed -e'/SUBDIRS/s/ *\<gdr\>//' -i src/uct/rocm/Makefile.am
sed -e'/src\/uct\/rocm\/gdr\/configure\.m4/d' -i src/uct/rocm/configure.m4
rm -rf src/uct/rocm/gdr

# regenerate the configure files and Makefiles
./autogen.sh

./configure \
--prefix=%i \
--disable-dependency-tracking \
Expand All @@ -32,9 +39,14 @@ AutoReq: no
--with-avx \
--with-sse41 \
--with-sse42 \
--without-go \
--without-java \
--with-cuda=$CUDA_ROOT \
%ifarch x86_64
--with-rocm=$ROCM_ROOT \
%else
--without-rocm \
%endif
--with-gdrcopy=$GDRCOPY_ROOT \
--with-verbs=$RDMA_CORE_ROOT \
--with-rc \
Expand All @@ -43,10 +55,10 @@ AutoReq: no
--with-mlx5-dv \
--with-ib-hw-tm \
--with-dm \
--without-cm \
--with-rdmacm=$RDMA_CORE_ROOT \
--without-knem \
--with-xpmem \
--with-xpmem=$XPMEM_ROOT \
--without-ugni \
CFLAGS="-Wno-error=array-bounds" \
CPPFLAGS="-I$NUMACTL_ROOT/include" \
LDFLAGS="-L$NUMACTL_ROOT/lib"
Expand Down
35 changes: 35 additions & 0 deletions xpmem.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
### RPM external xpmem v2.6.3-20220308
%define commit 61c39efdea943ac863037d7e35b236145904e64d

BuildRequires: autotools
Source: https://github.com/hjelmn/%{n}/archive/%{commit}.tar.gz

%prep
%setup -n %{n}-%{commit}

./autogen.sh
./configure \
--prefix=%{i} \
--enable-shared \
--disable-static \
--disable-dependency-tracking \
--disable-kernel-module \
--with-pic \
--with-gnu-ld

%build
make %{makeprocesses}

%install
make install

# remove kernel module rules
rm -rf %{i}/etc

# remove the libtool library files
rm -f %{i}/lib/lib*.la

# remove pkg-config to avoid rpm-generated dependency on /usr/bin/pkg-config
rm -rf %{i}/lib/pkgconfig

%post