ASAP Top
筑波大からInfinibandを借りたのでセットアップする.
かりたボードはconnect-IB PCIe Gen3 x8 FDR 1railの模様
まぁすぐ返すからあんまり意味ないけど念のため
筑波大に借りたInfinibandと同じものを購入した.
Infinibandを使うために色々インストールする必要がある
Mellanox OFED | Infinibandドライバ |
nvidia_peer_memory | GPUDirectRDMAを利用するプラグイン |
GDRCopy | GPUDirect利用時により高速なコピーが出来るGDRCopyのライブラリ |
CUDA Aware MPI(MVAPICH2-GDR or OpenMPI) | GPUメモリに直接アクセス出来るMPI |
それぞれインストールはREADMEを読めば簡単,というかもうインストールしてある
で,うまく動かないから大変困っている.
色々調べていたら良いサイトを見つけた.
https://www.altima.co.jp/products/mellanoxtechnologies/infiniband_fabric.html
このサイトの手順を辿っていたところsubnet managerが起動していなかったことがわかった.
とりあえず起動させたので動作確認.
うごいた
今までの苦労は何だったのか
だが動いてよかった
ここに改めてセットアップ手順を記す.
- Infinibandのサブネットマネージャを起動(sudo /etc/init.d/opensmd start)
- Infinibandがリンクしているかを確認(ibv_devinfo)
- GDRCopyのカーネルをロードする(sudo ~kaneda/Downloads/gdrcopy-master/insmod.sh)
- ノード間通信の動作確認(mpirun_rsh -np 2 -hostfile PATH_TO_HOSTFILE MV2_USE_CUDA=1 MV2_USE_GPUDIRECT=1 /usr/local/mvapich2-gdr-2.1-cuda7.0/libexec/mvapich2/osu_bw -d cuda D D)
これでバンド幅の測定結果が表示されていれば
- Infinibandによる通信
- GPUDirect RDMAによるGPUメモリ直接アクセス
- gdrcopyによるGPUメモリの高速アクセス
の動作が確認できている.
ちなみにCUDA7.0でしか動かない.
これはGPUのドライバがPEACH3を使う都合上CUDA7.0の時のものを使用しており,Infinibandでもそれを利用するようにセットアップしたからである.