HPC(High Performance Computing)の分野では計算ノード間の通信を担うインタコネクトの重要性が増している。HPCの高性能化から、接続する計算ノードの数が増えてきており、それに伴い通信遅延の低減が重要になってきている。

  • Mellanox

    SC19においてInfiniBandを使うIn Networkコンピューティングについて発表するMellanoxのGilad Shainer氏

スパコンインタコネクトの定番、MellanoxのInfiniBand

MellanoxのInfiniBandはスパコンのインタコネクトの定番となっており、Top500 1位のOak Ridge国立研究所のSummit、2位のLawrence Livermore国立研究所のSierra、3位の中国の無錫スパコンセンターの神威・太湖之光、5位のTexas Advanced Computing CenterのFrontera、8位の産総研のABCI、10位のLawrence Livermore国立研究所のLassenとTop10のスパコンの内の6システムで使われている。

  • Mellanox

    世界のトップ上位10位のスパコンの内の6システムは、ノード間の接続にMellanoxのInfiniBandを使っている (出典:このレポートのすべての図は、SC19でのMellanoxのGilad Shainer氏の発表スライドを撮影したものである)

Top500最上位のスパコンでは100Gbit/sの伝送速度(4レーンでの伝送速度)のEDR規格のものが多く使用されているが、すでにその2倍の200Gbit/sの伝送速度のHDR規格のものが使われ始めている。TACCのFrontera、韓国気象庁の50PFlopsシステム、オーストラリア国立大学のGadiシステムなどがHDR InfiniBandを使い、より効率が高いと言われるDragonfly+トポロジのネットワークを使っている。

  • Mellanox

    より新しいスパコンでは、EDRの2倍の伝送速度のHDRを使うものが出てきている。また、Fat Treeではなく、より優れているといわれるDragonfly+トポロジを使うシステムも出てきている

従来のCPUセントリックな処理方法では、インタコネクトはCPUやGPUなどの計算ノードを結び、データの伝送を行うだけの機能を担うものであった。しかし、データがネットワークを通過している途中に、並列的にネットワークで演算ができれば計算の処理性能が上がるし、ネットワークの性能もスケールし易くなる。

  • Mellanox

    左の図のように、従来のネットワークはデータを伝送するだけでデータの演算処理は計算ノードで行われていた。これに対して右の図のようにネットワークの中にIPUというデータ処理エンジンを置き、データの伝送途中にデータの処理を行えば効率の良い処理ができる(少なくともその可能性がある)

例えば次の左側の図のようにすべての計算ノードのデータを左上のノードに集めて合計を計算する従来の方法では、30-40μs掛かってしまう。これを右の図のように、ネットワークの中のIPUを使って階層的に合計を求めるようにすれば3-4μsで合計を求めることができる。

  • Mellanox

    左の図のように、各ノードから順にデータを読み出し、左上のノードで合計を求めるやり方では30-40μs掛かる。一方、右の図のように、IPUを置き、階層的に合計を求めていけば3-4μsで合計を求めることができる

集合通信を高速化する「SHARP」

また、MellanoxのInfiniBand製品は、次の図のようにネットワークの接続性のレベルからアプリケーションのレベルまで、すべてのレベルでHPCやAIフレームワークの性能を加速することができる機能を備えている。

接続性のレベルでは、ハイパーキューブ、ファットツリー、トーラス、Dragonflyなどの各種のネットワーク接続が可能である。そしてネットワークのレベルではRDMAやGPU Directでデータ転送の効率を上げ、Mellanoxの「SHARP」を使えばインネットワークの処理ができる。これらの機能によりHPCやAI処理の性能を上げられる。

  • Mellanox

    MellanoxのInfiniBandはネットワークの接続形態からRDMAやGPU Directのような効率の高いデータ転送をサポートし、HPCやAI処理の性能を高めている

Mellanoxは、このように階層的に総和を求めるような処理をネットワークの中で実現するためのプロトコルとして「Scalable Hierarchical Aggregation and Reduction Protocol(SHARP)」を開発した。

  • Mellanox

    SHARPはインネットワークで総和などの処理を実現するために開発された

SHARPではネットワークの中に総和などを求める木構造を作り、その中にIPUで処理する数多くのグループを作る。このようなグループは依存関係が無ければ並列に実行することができる。

このようにすることにより、バリア(全ノードの処理が終わるまで先に進まない)や総和や最大値を得るような集合通信の処理時間を大幅に短縮することができる。SHARPでの計算は、16/32/64bit精度の整数、あるいは浮動小数点数で行うことができる。

  • Mellanox

    SHARPはネットワーク上に、木構造のグラフを作り、並列に計算ができるようにグループを作る。右の図のようにこの木構造のグラフにしたがって計算することにより、多数のIPUで並列に演算でき、バリアや総和などの処理の性能を大きく向上させられる

SHARPの有無による性能差はどの程度か?

次の図は、全ノードの総和を求めて、それを全ノードに放送するAllreduceという処理を128ノードのネットワークで実行した場合のレーテンシを示すグラフである。左のグラフはデータサイズが8Bと128Bと短いデータの場合で、左のグラフは1024Bと2048Bとデータサイズが大きい場合のグラフである。

実線のグラフがSHARPを使用した場合で、破線のグラフがSHARPを使わずソフトウェアで実行した場合のレーテンシを示す。そして、2本ずつの実線と破線は、データサイズが大きいグラフ(128B、あるいは2048B)と小さい場合のグラフである。

横軸はノード数で、ノード数が小さい場合はSHARPを使用によるレーテンシの短縮はあまりないが、ノード数が多くなると差が付いてくる。破線のSHARP無しはノード数の増加に伴ってレーテンシが長くなっているが、SHARPを使うと16ノードを超えるとレーテンシはほぼ一定で、ノード数が増えてもほとんどレーテンシは長くなっていない。

  • Mellanox

    Allreduceのレーテンシの比較。実線がSHARPを使った場合で、破線はSHARPを使わない場合のグラフである。左のグラフは8Bと128B、右のグラフは1024Bと2048Bのデータのものである。当然、実線のペア、破線のペアはレーテンシの長いほうがデータサイズ大きい場合のレーテンシである。SHARPを使うと横軸のノード数が大きくなってもレーテンシの増加は小さく、16ノード以上ではほとんどフラットである

左の棒グラフはAllreduceのレーテンシを示すもので、左のグラフは1500ノードでノード当たりのプロセサ数は1のケースであり、横軸のデータサイズは8Bから2048Bとなっている。青色の棒グラフはSHARP使用、オレンジの棒グラフはSHARPを使わずソフトウェアで実行した場合のレーテンシを示す。

右の棒グラフは1500ノードであるが、ノード当たり40プロセサであるので、MPIのランク数は60Kランクとなっている。

SHARPの使用で、左のグラフでは、5倍程度にレーテンシが短縮されている。右のグラフではノード当たりのプロセサが多く多くの通信を扱う必要があるので、左の1PPNの場合と比べて、SHARP無しでは8倍程度、SHARP有では5倍程度のレーテンシとなっている。つまり、SHARPを使用することにより、MPIのAllreduceは5倍以上高速に実行できている。

  • Mellanox

    SHARPの使用と不使用でのレーテンシの比較。左のグラフはノードあたり1プロセサ、右のグラフはノード当たり40プロセサの状態のレーテンシを示している。1PPNの場合は、SHARPの使用で5倍程度速くなり、40PPNの場合は8倍程度速くなっている

次のグラフは、32台のNVIDIAのDGX1Vを使いDGX 1台に付き4本のConnectX-6で接続し、NCCLでAllreduceを行った場合のバンド幅を示す。バッファサイズが1MBの場合はSHARPを使用しても改善は見られないが、バッファサイズが1024MBの場合はSHARP無しでは伝送バンド幅が40GB/s程度であるのに対して、SHARPを使うと70GB/sを超えるバンド幅に向上している。

  • Mellanox

    32台のNVIDIAのDGX1とConnectX-6 Infinibandを使ってAllreduceを行った場合のバンド幅を比較したグラフ。オレンジ色の線がSHARP不使用、青色の線はSHARPを使った場合。1024MBのバッファの場合、SHARP無しでは40GB/s程度のバンド幅であるが、SHARPを使うと70GB/sを超える

次の図はMLPerfの言語翻訳のベンチマークとfacebookのVAE(Variable Auto-Encoder)ベンチマークでのSHARPの使用と不使用の場合の性能を比較したものである。どちらもSHARPを使うことにより18%性能が高くなっている。

  • Mellanox

    SHARPの使用によるAI処理の性能向上。MLPerfのGNMTベンチマークでは18%性能が向上し、FacebookのVAEベンチマークでも18%の性能向上が得られた

InfiniBandは例えば100GB/sの物理バンド幅を持っているが、それを高優先度の通信用と低優先度の通信用に分割し、さらにそれらを多くのVirtual Linkに割り当てて使用している。Mellanoxは、この割り当てのやり方をコントロールして混雑を緩和し、通信の質を高めている。

  • Mellanox

    InfiniBandは物理的な通信路を高優先度の通信用と低優先度の通信用に分割し、さらにそれらの中にVirtual Linkを定義する。この分割をコントロールして、通信の質を改善する

次のグラフはGPCNetのベンチマークでの通信の混雑の影響を示すもので、左端の2つのグループがMellanoxのEDRで混雑コントロールの無い場合とHDRで混雑コントロールがある場合である。記法の記述が無いが、棒グラフの上についている髭が混雑による変化の範囲を示しているものと思われる。

このグラフによるとEDRで混雑コントロールが無い場合は、ある程度の髭がでているが、HDRで混雑コントロール有の場合は、ほとんど混雑による性能の変動が見られない。

他の棒グラフはCrayのAriesネットワークや、他社のEDR InfiniBandの結果であるが、MellanoxのHDRで混雑コントロール有が最も良い結果を示している。

  • Mellanox

    MellanoxのEDRとHDRで混雑コントロール有の場合、他社のネットワークのランダムリングのレーテンシとバンド幅、Allreduceの比較。棒グラフの上についている髭の長さが混雑による変動の大きさを示す。この中ではHDRで混雑コントロール有が最も良い結果を示している

また、多少遠回りでも混雑を減らす経路に替える方がネットワーク全体の性能を改善することができる場合が多い。次の2つの図はネットワークの利用状況を示す図である。左の図は混雑コントロールを行っていない状態で、ネットワーク利用率が30%台や50%程度の状態も見られ、混雑でネットワークが十分に利用できていないという状況が起こっている。一方、右の図は混雑を避ける経路を適応的に選択する制御を行った場合のもので、安定的に90%を超える高いネットワーク利用率が得られている

  • Mellanox

    左は通路を適応的にコントロールしていない場合の図で、混雑のためにネットワーク利用率が30%や50%という状態もかなり見られる。これに対して、適応的に混雑を避ける経路を選ぶ右の図の場合は、常に90%以上の高いネットワーク利用率となっている

さらに、InfiniBandはFat Tree、Hypercube、Torus、Dragonflyなど各種の接続形態をサポートしており、用途に応じたネットワークトポロジを選択することができる。

  • Mellanox

    MellanoxのInfiniBandはFat Tree、Hypercube、Torus、Dragonflyなど各種のネットワークトポロジをサポートしている