iWARP (Internet Wide-Area RDMA Protocol) は、TCP/IPネットワーク経由でRDMAを実装するネットワークプロトコルです。
Rocky Linux 8.8でテストしてみました。E810チップのNICです。
E810-XXVDA2
OSは普通にインストールします。
次にNICドライバ ice-1.11.114 をインストールです。
# cd ice-1.11.14/src
# make
make[1]: Entering directory '/usr/src/kernels/4.18.0-477.13.1.el8_8.x86_64'
CC [M] /tmp/ice-1.11.14/src/ice_main.o
In file included from /tmp/ice-1.11.14/src/kcompat.h:3351,
from /tmp/ice-1.11.14/src/ice.h:7,
from /tmp/ice-1.11.14/src/ice_main.c:8:
/tmp/ice-1.11.14/src/kcompat_impl.h: In function '_kc_netif_napi_add':
/tmp/ice-1.11.14/src/kcompat_impl.h:1387:57: error: macro "netif_napi_add" passed 4 arguments, but takes just 3
return netif_napi_add(dev, napi, poll, NAPI_POLL_WEIGHT);
^
/tmp/ice-1.11.14/src/kcompat_impl.h:1387:9: error: 'netif_napi_add' undeclared (first use in this function); did you mean 'netif_napi_del'?
return netif_napi_add(dev, napi, poll, NAPI_POLL_WEIGHT);
^~~~~~~~~~~~~~
netif_napi_del
/tmp/ice-1.11.14/src/kcompat_impl.h:1387:9: note: each undeclared identifier is reported only once for each function it appears in
/tmp/ice-1.11.14/src/kcompat_impl.h:1387:9: warning: 'return' with a value, in function returning void
/tmp/ice-1.11.14/src/kcompat_impl.h:1384:1: note: declared here
_kc_netif_napi_add(struct net_device *dev, struct napi_struct *napi,
^~~~~~~~~~~~~~~~~~
make[2]: *** [scripts/Makefile.build:318: /tmp/ice-1.11.14/src/ice_main.o] Error 1
make[1]: *** [Makefile:1616: _module_/tmp/ice-1.11.14/src] Error 2
make[1]: Leaving directory '/usr/src/kernels/4.18.0-477.13.1.el8_8.x86_64'
make: *** [Makefile:149: all] Error 2
何か気に入らないみたいだ。
まず先に インボックスドライバ でできることだけ確認してみよう。
必用なパッケージをインストールする。
# dnf install rdma-core rdma-core-devel libibverbs-utils
さっそく何かが認識した。
# ibv_devinfo
hca_id: irdma0
transport: InfiniBand (0)
hca_id: irdma1
transport: InfiniBand (0)
どうもインボックスドライバでは、デフォルトでRoCE認識するみたいだ。
この環境で Open MPI 4.1.5 をビルドして簡単なMPIなベンチマーク動かしてみましたが、とりあえずRDMAで動作しました。
つづく