クーの自由研究

マスターのかえるのクーは、弟子達の召喚術により新たな依り代を得てⅡ世として復活しました。

自宅InfiniBand普及委員会が発足しました!

おうちでInfiniBand しようぜ!

こんにちわ、こんばんわ。かえるのクーの助手の「井戸中 聖」(いとなか あきら)でございます。

f:id:AssistantOfKoo:20200320233025j:plain

InfiniBandします。

10GbEのEthernetが頑張れば手に届くようになってきたとはいえ、複数のNIC購入、4ポート以上10Gbps対応したスイッチ導入など、トータルコストを考えるとまだまだ敷居が高い状況です。そこで今なら40GBpsが超破格値で導入可能と「話題の」Infinibandを導入することにしました。

まずは、スライドでお勉強します。

犯行発足動機

このごろは、機械学習のための自宅環境を整備したくて、いろいろ調べていました。非力なPCでそれなりの計算させるためには、複数PCで「並列的な処理分散」をさせることが効果的なことがわかりました。並列計算処理について興味が涌き、自宅PCでも並列計算についていろいろ実験をしたら楽しいだろうと思います。VMWare上で複数の仮想OSを起動して学習するのもいいと思いますが、「実利」を伴わないとすぐ飽きてしまう気がしました。

そこで、ある程度実用的な環境を今のPCを生かしながら構成したいと思います。

ところが、いろいろネットを調べていると、1つとても重要なポイントがあることがわかりました。複数PCの通信をきわめて低レイテンシで行わないと実用的な性能が出ないようなのです。10GBpsのLAN(10GbE)でも遅い(内部接続の延長として使用する観点では、Ethernetはレイテンシが高い)というのです!

そこで、出ていた情報が「今ならInfiniBand(インフィニバンド)使わないと分散処理は実質的な性能向上を望めないだろう。」「低遅延によらない性能向上であれば、不特定多数のノード(千とか万以上)のボリュームアップは有効」でした。

InfiniBandにがせん興味が涌いてきて、いまや興味は並列計算からInfiniBandに移ってしまっています。(手段が目的になってしまった事例です)

我が家にInfiniBandを導入するために、そして全世界の10GbEを待っているけど全然安くならないので辟易している方のために自宅InfiniBnad普及委員会」を発足します

「自宅InfiniBnad普及委員会」では「おうちでInfiniBand (CC) *1を普及させるため、さまざまな導入・検証実験をレポートします。(すなわち単なるブログネタです。まずは大風呂敷をひろげるこのブログの常套手段です。)

自由研究の精神にのっとり、諸先輩方の足跡をたどって「自分で本当にやってみる」ことに主眼を置きます。

カード導入編

既にカードは入手した!

実は出張前にクリック済で、InfiniBandのカード・中古ConnectX-3(OEM品)とおそらくQSPF+(40GBpsまで対応)の中古ケーブル1本が届きました。

ConnectX-3(OEM 1ポート版)は10,000円で4枚(1枚あたり2,500円)(税・送料抜き)

f:id:AssistantOfKoo:20200321220226p:plain

・その接続テスト用にQSPF+銅線ケーブル2mを1本 500円 (こちらは税・送料込み)

f:id:AssistantOfKoo:20200321220302p:plain

で調達できました。(ケーブルは3m版を欲しかったのですが、なかったのでテスト用に1本だけ購入)いかにもサーバ用なケーブルです。AMPHENOL社製のものでした。ConnectX-3にしっかりと刺さります。

古いので定価はわかりませんがConnectX-3は1枚8万円、ケーブルは1本1万円くらいだったのではないかと思われます。(基本的にサーバ・ハイパフォーマンスコンピュータ用の部品なので、驚く値段ではないです。インターフェースはPCIe 3.0 X8なので 空いているPICe X16 ポートに刺さります。)

実験がうまくいけば、随時追加クリックして部品を購入していきます。

失敗(わたくしの技術ではつかえない)ならば、オークションに出そうかな。

過去、InfiniBand導入に苦労した情報もあるようですが、あきらめなければきっとできる!

入手カードの問題点

ロープロファイル版です。中古でしかもOEM品なのでFULLプロファイルの交換用ブラケットはもちろんありません。(ちなみに純正メーカ(Mellanox)製品は両方のブラケットがついており、交換可能です)ネットで中古を探しましたがありません。とりあえずブラケットを外して、その状態で慎重にセットします。固定の方法は別途考えます。

f:id:AssistantOfKoo:20200321222904p:plain

個別の空冷はお忘れなく!

なお、くどいですがサーバ製品なので、テストであっても風を当てましょう

うるさくてお蔵入りしている8cmのファンを横に仮置きして送風します。個別送風しないとシャレにならないくらい熱くなります。

f:id:AssistantOfKoo:20200321223420p:plain

ConnectX-3ボードは固定していないので、ケーブルは接続しないで、OSが認識するか確認します。

さぁ。使えるか実験しましょう。そうしましょう。

カード認識の確認

PCを起動してWindowsのデバイスマネージャで認識できているか確認します。

f:id:AssistantOfKoo:20200320235759p:plain

あっさり何の問題なく認識できていました。Windows10には標準でConnectXのドライバがはいっています。

ファームウェアのアップデート

自宅ラックエンジニア様の記事とおそらくは同一のカードです。

 わたくしはメーカー(富士通)の説明資料PDFの内容に従ってファームのアップデートを行いました*2

自宅ラックエンジニア様の方法のほうはBinaryをWindows10からアップデートする方法なので、そちらの方がよいかもしれません。なお、中古品はたいへん古いファームウェアが入っていることが多く、その後BUG FIXや機能改善、性能向上が図られていることが多いので、ファームアップデートは必須です。

ドライバの導入(Windows編)

OSのドライバでも動作可能とのことでしたが、Mellanox社製のドライバだと細かな調整ができるようなので、これを入れます。ConnectX-3ならWinOFです。

今はWindows10で確認しているので、ここではWindows10の該当ビルドのドライバを選択してダウンロードしてインストールします。

f:id:np2LKoo:20200321194959p:plain

f:id:AssistantOfKoo:20200320235903p:plain

f:id:AssistantOfKoo:20200320235919p:plain  f:id:AssistantOfKoo:20200320235943p:plain

起動後にはWindowsのデバイスマネージャでのタグが増えており、Informationでアダプタの内容が確認できます。PCIe 8.0 Gps(Gen3) X8 モードで接続できているのがわかります。

IPoIB(IP over InfiniBand)のデバイスとして認識しました。これはカードの動作モードによるので、上記とは別の表記になることがあります。カードを複数枚さしているので、#2とかでています。ファームウェアはアップデートした版数であることが確認できます。 

 

続きはインフィニバンド NIC(HCA) 接続の実験(Windows編)にて

 

*1:CCはもちろんコピーライトのことではなく、Creative Common BY 4.0 のことです。

*2:付属のISO(スタンドアロンLinix+アップデートシェル)をやいて、起動して選択するだけ。