LoginSignup
7
6

More than 5 years have passed since last update.

Windows 10 で InfiniBand を使う

Posted at

漢なら InfiniBand ですね! Windows 10 でも使いたいですね!

Connect-X 3(not Pro) を Windows 10 で動かしましょう.

ConnectX3.jpg

Connect-X 3 について

最近だと eBay で 1.5 万円 + 海外送料で調達できます.

ドライバについて

Mellanox の WinOF ドライバを使います.
Connect-X 2 は Windows 7 までのサポートなので, Windows 10 では動きません.

また, OpenFabrics 版である WinOFED は久しくアップデートされていないので, これも最新の Windows では動きません. したがって Windows 10 ですと Connect-X 3 以降 + Mellanox WinOF ドライバ一択となります.

Connect-X 3 の場合は WinOF を使います. 現時点では 5.10 が最新でした. Windows Client + OS 10 を選択します.

動かす.

IB QDR スイッチを経由して, Linux CentOS7 + Connect-X 2 と通信できるか試してみます.
opensm が linux 側で動いているとします.

CentOS7 での InfiniBand の設定は CentOS7 + InfiniBand で MPI を動かす などを参照ください.

C:/Program Files/Mellanox/MLNX_VPI/IB あたりにいろいろツールがあります.

ibstat を動かしてみます.

syoyo@gpu-ib-win MINGW64 /c/Program Files/Mellanox/MLNX_VPI/IB/Tools
$ ./ibstat.exe
CA 'ibv_device0'
        CA type:
        Number of ports: 2
        Firmware version: 2.35.5100
        Hardware version: 0x0
        Node GUID: 0x0002c90300436210
        System image GUID: 0x0002c90300436213
    Port 1:
        State: Active
        Physical state: LinkUp
        Rate: 40
        Real rate: 32.00 (QDR)
        Base lid: 4
        LMC: 0
        SM lid: 1
        Capability mask: 0x90580000
        Port GUID: 0x0002c90300436211
        Link layer: IB
        Transport: IB
    Port 2:
        State: Down
        Physical state: Polling
        Rate: 40
        Base lid: 0
        LMC: 0
        SM lid: 0
        Capability mask: 0x90580000
        Port GUID: 0x0002c90300436212
        Link layer: IB
        Transport: IB

LinkUp と繋がりを確認しました. Cool!
(スイッチが QDR なので QDR rate になります)

IPoIB

Mellanox のドキュメントを参考にし, IPoIB の設定をしておきます(IPv4 静的ネットワークを作るのが手っ取り早いでしょう).

(最初の WinOF インストールのあと再起動し, その後 device manager でドライバの自動更新をする必要があるかもしれません)

Windows の ping などで相手先の IP アドレスが見えることを確認します.

iperf で性能測定してみましたが, 理論上 2.5 GB/s くらい出るはずが 1 GB/s(8 gbp/s) くらいしか出ませんでした. 精進が必要ですね.

TODO

  • FDR スイッチで試す.
  • Linux <-> Windows での IB Verbs or rsocket 通信を試す.
    • ND(NetworkDirect) は RoCE(Eth) 専用っぽいので IB では動かない模様.
    • rsocket(librdmacm) は Mellanox の SDK に入っていないので, librdmacm のソースを引っ張ってきて自分で頑張ってハックする?
  • Linux + Windows 混在での MPI + InfiniBand は動くかな?
  • Dual port なので IPoIB teaming 試したい.
7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6