Skip to content

Commit 20f5399

Browse files
committed
UCT/PERF: Merged with master
2 parents 68efed4 + 90b7edc commit 20f5399

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+1410
-341
lines changed

buildlib/pr/build_job.yml

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
parameters:
2+
name:
3+
demands: []
4+
displayName:
5+
6+
jobs:
7+
- job: ${{ parameters.name }}
8+
pool:
9+
name: MLNX
10+
demands: ${{ parameters.demands }}
11+
container: $[ variables['CONTAINER'] ]
12+
strategy:
13+
# x86_64 matrix
14+
${{ if contains(parameters.name, 'x86_64') }}:
15+
matrix:
16+
rhel76:
17+
CONTAINER: rhel76
18+
long_test: yes
19+
ubuntu2004:
20+
CONTAINER: ubuntu2004
21+
long_test: yes
22+
extra_modules: ""
23+
ubuntu1804:
24+
CONTAINER: ubuntu1804
25+
extra_modules: ""
26+
ubuntu2204:
27+
CONTAINER: ubuntu2204
28+
ubuntu2404:
29+
CONTAINER: ubuntu2404
30+
ubuntu2210:
31+
CONTAINER: ubuntu2210
32+
debian113:
33+
CONTAINER: debian113
34+
debian109:
35+
CONTAINER: debian109
36+
debian125:
37+
CONTAINER: debian125
38+
debian130:
39+
CONTAINER: debian130
40+
sles15sp6:
41+
CONTAINER: sles15sp6
42+
rhel82:
43+
CONTAINER: rhel82
44+
rhel90:
45+
CONTAINER: rhel90
46+
fedora41:
47+
CONTAINER: fedora41
48+
centos7:
49+
CONTAINER: centos7_ib
50+
centos10stream:
51+
CONTAINER: centos10stream
52+
ubuntu2004_rocm:
53+
CONTAINER: ubuntu2004_rocm_5_4_0
54+
ubuntu2204_rocm:
55+
CONTAINER: ubuntu2204_rocm_6_0_0
56+
kylin10sp3:
57+
CONTAINER: kylin10sp3
58+
euleros2sp12:
59+
CONTAINER: euleros2sp12
60+
# ARM matrix
61+
${{ if contains(parameters.name, 'aarch64') }}:
62+
matrix:
63+
ubuntu2404_aarch64:
64+
CONTAINER: ubuntu2404_aarch64
65+
timeoutInMinutes: 340
66+
67+
steps:
68+
- checkout: self
69+
clean: true
70+
fetchDepth: 100
71+
retryCountOnTaskFailure: 5
72+
73+
- bash: |
74+
./buildlib/tools/builds.sh
75+
displayName: ${{ parameters.displayName }}
76+
env:
77+
BUILD_ID: "$(Build.BuildId)-$(Build.BuildNumber)"
78+
long_test: $(long_test)
79+
test_static: $(test_static)

buildlib/pr/main.yml

Lines changed: 17 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ resources:
5454
- container: ubuntu2404
5555
image: rdmz-harbor.rdmz.labs.mlnx/hpcx/x86_64/ubuntu24.04/builder:doca-2.9.0
5656
options: $(DOCKER_OPT_ARGS) $(DOCKER_OPT_VOLUMES)
57+
- container: ubuntu2404_aarch64
58+
image: rdmz-harbor.rdmz.labs.mlnx/hpcx/aarch64/ubuntu24.04/builder:doca-2.9.0
59+
options: $(DOCKER_OPT_ARGS) $(DOCKER_OPT_VOLUMES)
5760
- container: debian113
5861
image: rdmz-harbor.rdmz.labs.mlnx/hpcx/x86_64/debian11.3/builder:mofed-5.8-3.0.7.0
5962
options: $(DOCKER_OPT_ARGS) $(DOCKER_OPT_VOLUMES)
@@ -63,6 +66,9 @@ resources:
6366
- container: debian125
6467
image: rdmz-harbor.rdmz.labs.mlnx/hpcx/x86_64/debian12.5/builder:doca-2.9.0
6568
options: $(DOCKER_OPT_ARGS) $(DOCKER_OPT_VOLUMES)
69+
- container: debian130
70+
image: rdmz-harbor.rdmz.labs.mlnx/hpcx/x86_64/debian13.0/builder:doca-3.2.0
71+
options: $(DOCKER_OPT_ARGS) $(DOCKER_OPT_VOLUMES)
6672
- container: sles15sp6
6773
image: rdmz-harbor.rdmz.labs.mlnx/hpcx/x86_64/sles15sp6/builder:doca-2.9.0
6874
options: $(DOCKER_OPT_ARGS) $(DOCKER_OPT_VOLUMES)
@@ -203,71 +209,19 @@ stages:
203209
- stage: Build
204210
dependsOn: [Static_check]
205211
jobs:
206-
- job: build_source
207-
pool:
208-
name: MLNX
212+
- template: build_job.yml
213+
parameters:
214+
name: build_x86_64
209215
demands:
210-
- ucx_docker -equals yes
211-
strategy:
212-
matrix:
213-
rhel76:
214-
CONTAINER: rhel76
215-
long_test: yes
216-
ubuntu2004:
217-
CONTAINER: ubuntu2004
218-
long_test: yes
219-
extra_modules: ""
220-
ubuntu1804:
221-
CONTAINER: ubuntu1804
222-
extra_modules: ""
223-
ubuntu2204:
224-
CONTAINER: ubuntu2204
225-
ubuntu2404:
226-
CONTAINER: ubuntu2404
227-
ubuntu2210:
228-
CONTAINER: ubuntu2210
229-
debian113:
230-
CONTAINER: debian113
231-
debian109:
232-
CONTAINER: debian109
233-
debian125:
234-
CONTAINER: debian125
235-
sles15sp6:
236-
CONTAINER: sles15sp6
237-
rhel82:
238-
CONTAINER: rhel82
239-
rhel90:
240-
CONTAINER: rhel90
241-
fedora41:
242-
CONTAINER: fedora41
243-
centos7:
244-
CONTAINER: centos7_ib
245-
centos10stream:
246-
CONTAINER: centos10stream
247-
ubuntu2004_rocm:
248-
CONTAINER: ubuntu2004_rocm_5_4_0
249-
ubuntu2204_rocm:
250-
CONTAINER: ubuntu2204_rocm_6_0_0
251-
kylin10sp3:
252-
CONTAINER: kylin10sp3
253-
euleros2sp12:
254-
CONTAINER: euleros2sp12
255-
container: $[ variables['CONTAINER'] ]
256-
timeoutInMinutes: 340
216+
- ucx_docker
217+
displayName: Build on x86_64
257218

258-
steps:
259-
- checkout: self
260-
clean: true
261-
fetchDepth: 100
262-
retryCountOnTaskFailure: 5
263-
264-
- bash: |
265-
./buildlib/tools/builds.sh
266-
displayName: Build
267-
env:
268-
BUILD_ID: "$(Build.BuildId)-$(Build.BuildNumber)"
269-
long_test: $(long_test)
270-
test_static: $(test_static)
219+
- template: build_job.yml
220+
parameters:
221+
name: build_aarch64
222+
demands:
223+
- ucx_arm64
224+
displayName: Build on aarch64
271225

272226
- stage: ucx_perftest_mad_rte
273227
dependsOn: [Static_check]

config/cuda.am

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55

66
SUFFIXES = .cu
77

8-
NVCC_CMD = $(NVCC_WRAP) $(NVCC) $(NVCCFLAGS) $(NVCC_EXTRA_FLAGS) \
9-
-c $< -MT $@ -MF $(DEPDIR)/cuda/[email protected] -MMD -o $@ \
10-
-DHAVE_CONFIG_H $(BASE_NVCCFLAGS)
8+
NVCC_CMD = $(NVCC_WRAP) $(NVCC) -DHAVE_CONFIG_H \
9+
$(BASE_NVCCFLAGS) $(NVCCFLAGS) $(NVCC_EXTRA_FLAGS) \
10+
-c $< -MT $@ -MF $(DEPDIR)/cuda/[email protected] -MMD -o $@
1111
NVCC_LT_CMD = $(LIBTOOL) --tag=CXX --mode=compile $(NVCC_CMD)
1212

1313
define nvcc-build

config/m4/cuda.m4

Lines changed: 55 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,72 @@
33
# See file LICENSE for terms.
44
#
55

6+
# Define CUDA language
7+
AC_LANG_DEFINE([CUDA], [cuda], [NVCC], [NVCC], [C++], [
8+
ac_ext=cu
9+
ac_compile="$NVCC $BASE_NVCCFLAGS $NVCCFLAGS -c -o conftest.o conftest.$ac_ext"
10+
ac_link="$NVCC $BASE_NVCCFLAGS $NVCCFLAGS -o conftest conftest.o"
11+
],
12+
[rm -f conftest.o conftest.$ac_ext conftest])
13+
14+
# Define CUDA language compiler
15+
AC_DEFUN([AC_LANG_COMPILER(CUDA)], [
16+
AC_ARG_WITH([nvcc-gencode],
17+
[AS_HELP_STRING([--with-nvcc-gencode=(OPTS)], [Build for specific GPU architectures])],
18+
[],
19+
[with_nvcc_gencode="-gencode=arch=compute_80,code=sm_80"])
20+
21+
AC_ARG_VAR([NVCC], [nvcc compiler path])
22+
AC_ARG_VAR([NVCCFLAGS], [nvcc compiler flags])
23+
BASE_NVCCFLAGS="$BASE_NVCCFLAGS $with_nvcc_gencode"
24+
AC_CHECK_TOOL([NVCC], [nvcc], [])
25+
AC_SUBST([NVCC], [$NVCC])
26+
])
27+
28+
# Check for nvcc compiler support
29+
AC_DEFUN([UCX_CUDA_CHECK_NVCC], [
30+
AS_IF([test "x$NVCC" != "x"], [
31+
AC_MSG_CHECKING([$NVCC needs explicit c++11 option])
32+
AC_LANG_PUSH([CUDA])
33+
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
34+
#if __cplusplus < 201103L
35+
#error missing C++11
36+
#endif
37+
]])],
38+
[AC_MSG_RESULT([no])],
39+
[AC_MSG_RESULT([yes])
40+
BASE_NVCCFLAGS="$BASE_NVCCFLAGS -std=c++11"])
41+
AC_LANG_POP
42+
43+
AC_MSG_CHECKING([$NVCC can compile])
44+
AC_LANG_PUSH([CUDA])
45+
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
46+
#include <cuda_runtime.h>
47+
__global__ void my_kernel(void) {}
48+
int main(void) { my_kernel<<<1, 1>>>(); return 0; }
49+
]])],
50+
[AC_MSG_RESULT([yes])],
51+
[AC_MSG_RESULT([no])
52+
NVCC=""])
53+
AC_LANG_POP
54+
])
55+
56+
AM_CONDITIONAL([HAVE_NVCC], [test "x$NVCC" != x])
57+
])
58+
59+
# Check for CUDA support
660
AC_DEFUN([UCX_CHECK_CUDA],[
761
862
AS_IF([test "x$cuda_checked" != "xyes"],
963
[
1064
AC_ARG_WITH([cuda],
1165
[AS_HELP_STRING([--with-cuda=(DIR)], [Enable the use of CUDA (default is guess).])],
1266
[], [with_cuda=guess])
13-
AC_ARG_WITH([nvcc],
14-
AS_HELP_STRING([--with-nvcc], [Enable NVCC compiler support (default is guess)]),
15-
[],
16-
[with_nvcc="guess"])
17-
AC_ARG_WITH([nvcc-gencode],
18-
AS_HELP_STRING([--with-nvcc-gencode=(OPTS)], [Build for specific GPU architectures]),
19-
[],
20-
[with_nvcc_gencode="-gencode=arch=compute_80,code=sm_80"])
2167
2268
AS_IF([test "x$with_cuda" = "xno"],
2369
[
2470
cuda_happy=no
2571
have_cuda_static=no
26-
nvcc_happy=no
2772
NVCC=""
2873
],
2974
[
@@ -106,50 +151,10 @@ AS_IF([test "x$cuda_checked" != "xyes"],
106151
[AC_DEFINE([HAVE_CUDA_FABRIC], 1, [Enable CUDA fabric handle support])],
107152
[], [[#include <cuda.h>]])
108153
109-
# Check NVCC exists and able to compile
110-
nvcc_happy="no"
111-
AC_ARG_VAR([NVCC], [nvcc compiler path])
112-
AC_ARG_VAR([NVCCFLAGS], [nvcc compiler flags])
113-
AS_IF([test "x$with_nvcc" != "xno"],
114-
[AC_PATH_PROGS(NVCC, nvcc, "", $CUDA_BIN_PATH:$PATH)
115-
AC_LANG_PUSH([C])
116-
AC_LANG_CONFTEST([AC_LANG_SOURCE([[
117-
#if __cplusplus < 201103L
118-
#error missing C++11
119-
#endif
120-
]])])
121-
mv conftest.c conftest.cu
122-
AC_MSG_CHECKING([$NVCC needs explicit C++11 option])
123-
AS_IF([$NVCC -c conftest.cu 2>&AS_MESSAGE_LOG_FD],
124-
[AC_MSG_RESULT([no])],
125-
[AC_MSG_RESULT([yes])
126-
BASE_NVCCFLAGS="$BASE_NVCCFLAGS -std=c++11"])
127-
rm conftest.cu
128-
AC_LANG_POP])
129-
130-
AS_IF([test "x$NVCC" != "x"],
131-
[AC_LANG_PUSH([C])
132-
AC_LANG_CONFTEST([AC_LANG_SOURCE([[#include <cuda_runtime.h>]])])
133-
mv conftest.c conftest.cu
134-
AC_MSG_CHECKING([$NVCC can compile])
135-
AS_IF([$NVCC -c conftest.cu 2>&AS_MESSAGE_LOG_FD],
136-
[AC_MSG_RESULT([yes])
137-
BASE_NVCCFLAGS="$BASE_NVCCFLAGS $with_nvcc_gencode -g -lineinfo"
138-
nvcc_happy="yes"],
139-
[AC_MSG_RESULT([no])
140-
cat conftest.cu >&AS_MESSAGE_LOG_FD])
141-
rm conftest.cu
142-
AC_LANG_POP
143-
])
144-
145154
CPPFLAGS="$save_CPPFLAGS"
146155
LDFLAGS="$save_LDFLAGS"
147156
LIBS="$save_LIBS"
148157
149-
AS_IF([test "x$with_nvcc" = "xyes" -a "x$nvcc_happy" = "xno"],
150-
[AC_MSG_ERROR([nvcc compiler is not functional])],
151-
[])
152-
153158
AS_IF([test "x$cuda_happy" = "xyes"],
154159
[AC_SUBST([CUDA_CPPFLAGS], ["$CUDA_CPPFLAGS"])
155160
AC_SUBST([CUDA_LDFLAGS], ["$CUDA_LDFLAGS"])
@@ -166,8 +171,8 @@ AS_IF([test "x$cuda_checked" != "xyes"],
166171
cuda_checked=yes
167172
AM_CONDITIONAL([HAVE_CUDA], [test "x$cuda_happy" != xno])
168173
AM_CONDITIONAL([HAVE_CUDA_STATIC], [test "X$have_cuda_static" = "Xyes"])
169-
AM_CONDITIONAL([HAVE_NVCC], [test "x$nvcc_happy" != xno])
170174
175+
UCX_CUDA_CHECK_NVCC
171176
]) # "x$cuda_checked" != "xyes"
172177
173178
]) # UCX_CHECK_CUDA

config/nvcc_wrap.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ while [[ $# -gt 0 ]]; do
3434
args="$args -Xcompiler -fPIC"
3535
shift
3636
;;
37-
-I*|-D*|-G|-g|-MD|-MMD|-gencode=*|-std=*)
37+
-O*|-I*|-D*|-G|-g|-MD|-MMD|-gencode=*|-std=*)
3838
args="$args $1"
3939
shift
4040
;;

configure.ac

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -425,6 +425,10 @@ AC_MSG_NOTICE([ CXX: ${CXX}])
425425
AC_MSG_NOTICE([ CPPFLAGS: ${BASE_CPPFLAGS} ${CPPFLAGS}])
426426
AC_MSG_NOTICE([ CFLAGS: ${BASE_CFLAGS} ${CFLAGS}])
427427
AC_MSG_NOTICE([ CXXFLAGS: ${BASE_CXXFLAGS} ${CXXFLAGS}])
428+
AS_IF([test "x$NVCC" != "x"], [
429+
AC_MSG_NOTICE([ NVCC: ${NVCC}])
430+
AC_MSG_NOTICE([ NVCCFLAGS: ${BASE_NVCCFLAGS} ${NVCCFLAGS}])
431+
])
428432
AC_MSG_NOTICE([ ASAN check: ${enable_asan}])
429433
AC_MSG_NOTICE([ Multi-thread: ${mt_enable}])
430434
AC_MSG_NOTICE([ MPI tests: ${mpi_enable}])
@@ -440,10 +444,6 @@ AC_MSG_NOTICE([ IB modules: <$(echo ${uct_ib_modules}|tr ':' ' ') >])
440444
AC_MSG_NOTICE([ MLX5 modules: <$(echo ${uct_ib_mlx5_modules}|tr ':' ' ') >])
441445
AC_MSG_NOTICE([ UCM modules: <$(echo ${ucm_modules}|tr ':' ' ') >])
442446
AC_MSG_NOTICE([ Perf modules: <$(echo ${ucx_perftest_modules}|tr ':' ' ') >])
443-
AS_IF([test "x$NVCC" != "xno"], [
444-
AC_MSG_NOTICE([ NVCC: ${NVCC}])
445-
AC_MSG_NOTICE([ NVCCFLAGS: ${NVCCFLAGS}])
446-
])
447447
AS_IF([test "x$enable_ucg" != "xno"], [
448448
AC_MSG_NOTICE([ UCG modules: <$(echo ${ucg_modules}|tr ':' ' ') >])])
449449
])

contrib/buildrpm.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ if [ $opt_binrpm -eq 1 ]; then
117117
with_args+=" $(with_arg mad)"
118118
with_args+=" $(with_arg mlx5)"
119119
with_args+=" $(with_arg efa)"
120-
with_args+=" $(with_arg gdaki)"
120+
with_args+=" $(with_arg gda)"
121121

122122
echo rpmbuild -bb $rpmmacros $rpmopts $rpmspec $defines $with_args | bash -eEx
123123
fi

debian/control.in

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,14 +64,14 @@ Description: Unified Communication X - gdrcopy support
6464
This package provides UCX support for using gdrcopy - A low-latency GPU
6565
memory copy library based on NVIDIA GPUDirect RDMA technology.
6666

67-
Package: ucx-mlx5-gdaki
67+
Package: ucx-ib-mlx5-gda
6868
Section: libs
6969
Depends: ${misc:Depends}, ${shlibs:Depends}
7070
Architecture: any
71-
Build-Profiles: <gdaki>
72-
Description: Unified Communication X - GDAKI support
71+
Build-Profiles: <gda>
72+
Description: Unified Communication X - GPU Direct Async support
7373
UCX is a communication library implementing high-performance messaging.
7474
.
75-
Provide GDAKI (GPU Direct Asynchronous Kernel Initiated) support for UCX.
76-
GDAKI enables high-performance GPU-to-network communication using DOCA GPUNetIO
77-
technology for direct data transfer between GPU memory and network devices.
75+
Provide GPU Direct Async support for UCX. GPU Direct Async allows GPU kernels
76+
to initiate network communications directly without explicit synchronization
77+
with the host CPU.

0 commit comments

Comments
 (0)