Help us understand the problem. What is going on with this article?

Windows 10 で InfiniBand を使う

More than 3 years have passed since last update.

漢なら 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 ドライバ一択となります.

http://www.mellanox.com/page/software_overview_eth

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 試したい.
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away