diff --git a/AUTHORS b/AUTHORS index 10b2a550809..23b09aa1f71 100644 --- a/AUTHORS +++ b/AUTHORS @@ -125,6 +125,7 @@ Yihua Xu Yiltan Hassan Temucin Yossi Itigin Yuriy Shestakov +Zhenlong Ma Zhongkai Zhang Zhu Yanjun Zihao Zhao diff --git a/buildlib/tools/builds.sh b/buildlib/tools/builds.sh index 0937be76154..17f2f8d4955 100755 --- a/buildlib/tools/builds.sh +++ b/buildlib/tools/builds.sh @@ -321,6 +321,13 @@ build_no_devx() { build_gcc --with-devx=no } +build_no_gga() { + echo "==== Build without GGA transport ====" + ${WORKSPACE}/contrib/configure-devel --prefix=$ucx_inst --without-gga --disable-gtest + $MAKEP + check_no_gga +} + build_no_openmp() { build_gcc --disable-openmp } @@ -448,6 +455,13 @@ build_no_gda() { fi } +check_no_gga() { + if [ -f ${ucx_build_dir}/src/uct/ib/mlx5/gga/.libs/libuct_ib_mlx5_la-gga_mlx5.o ] ; then + azure_log_error "build --without-gga created GGA object" + exit 1 + fi +} + az_init_modules prepare_build @@ -470,6 +484,7 @@ then 'build_pgi' \ 'build_gcc' \ 'build_no_devx' \ + 'build_no_gga' \ 'build_no_openmp' \ 'build_gcc_debug_opt' \ 'build_gcc_with_dndebug' \ diff --git a/configure.ac b/configure.ac index cd475348284..519b0db1d33 100644 --- a/configure.ac +++ b/configure.ac @@ -193,6 +193,7 @@ AS_IF([test "x$with_docs_only" = xyes], AM_CONDITIONAL([HAVE_TL_DC], [false]) AM_CONDITIONAL([HAVE_DC_DV], [false]) AM_CONDITIONAL([HAVE_TL_UD], [false]) + AM_CONDITIONAL([HAVE_TL_GGA], [false]) AM_CONDITIONAL([HAVE_CRAY_UGNI], [false]) AM_CONDITIONAL([HAVE_CUDA], [false]) AM_CONDITIONAL([HAVE_CUDA_STATIC], [false]) diff --git a/src/uct/ib/configure.m4 b/src/uct/ib/configure.m4 index b0ef54be24b..d567d36dbaf 100644 --- a/src/uct/ib/configure.m4 +++ b/src/uct/ib/configure.m4 @@ -57,6 +57,14 @@ AC_ARG_WITH([dc], [], [with_dc=yes]) +# +# GGA Support +# +AC_ARG_WITH([gga], + [AS_HELP_STRING([--with-gga], [Compile with GGA DPU transport support])], + [], + [with_gga=guess]) + # # TM (IB Tag Matching) Support @@ -205,6 +213,16 @@ AS_IF([test "x$with_ib" = "xyes"], AS_IF([test x$with_devx = xyes -a x$have_devx != xyes], [ AC_MSG_ERROR([devx requested but not found])]) + AS_IF([test "x$with_gga" != xno], [ + AS_IF([test "x$have_mlx5" = xyes -a "x$has_mlx5_mmo" = xyes -a "x$have_devx" = xyes -a "x$with_rc" != xno], + [have_gga=yes + AC_DEFINE([HAVE_TL_GGA], 1, [GGA transport support])], + [AS_IF([test "x$with_gga" = xyes], + [AC_MSG_ERROR([GGA requested but MLX5, MLX5 MMO, DEVX, or RC support is not available])]) + have_gga=no]) + ], + [have_gga=no]) + AC_CHECK_DECLS([IBV_LINK_LAYER_INFINIBAND, IBV_LINK_LAYER_ETHERNET, IBV_EVENT_GID_CHANGE, @@ -335,9 +353,13 @@ AS_IF([test "x$with_ib" = "xyes"], uct_modules="${uct_modules}:ib" ], [ + AS_IF([test "x$with_gga" = xyes], + [AC_MSG_ERROR([GGA requested but IB/verbs support is not available])]) with_dc=no with_rc=no with_ud=no + with_gga=no + have_gga=no with_mlx5=no ]) @@ -351,6 +373,7 @@ AM_CONDITIONAL([HAVE_TL_DC], [test "x$with_dc" != xno]) AM_CONDITIONAL([HAVE_DC_DV], [test -n "$have_dc_dv"]) AM_CONDITIONAL([HAVE_TL_UD], [test "x$with_ud" != xno]) AM_CONDITIONAL([HAVE_DEVX], [test -n "$have_devx"]) +AM_CONDITIONAL([HAVE_TL_GGA], [test "x$have_gga" = xyes]) AM_CONDITIONAL([HAVE_MLX5_HW_UD], [test "x$have_mlx5" = xyes -a "x$has_get_av" != xno]) AM_CONDITIONAL([HAVE_MLX5_MMO], [test -n "$has_mlx5_mmo"]) diff --git a/src/uct/ib/mlx5/Makefile.am b/src/uct/ib/mlx5/Makefile.am index bfd7b834439..5072bd92cd1 100644 --- a/src/uct/ib/mlx5/Makefile.am +++ b/src/uct/ib/mlx5/Makefile.am @@ -43,10 +43,10 @@ if HAVE_DEVX libuct_ib_mlx5_la_SOURCES += \ rc/rc_mlx5_devx.c -if HAVE_MLX5_MMO +if HAVE_TL_GGA libuct_ib_mlx5_la_SOURCES += \ gga/gga_mlx5.c -endif # HAVE_MLX5_MMO +endif # HAVE_TL_GGA endif # HAVE_DEVX endif # HAVE_TL_RC