期待のネット新技術

InfinityFabricを前提にしたGen-Zに加え、競合InterconnectのCAPI、CCIX、CXLにも参画するMellanox

【InfiniBandの現在】

 「InfiniBandの現在」では、規格としての歴史と現状、今後の動向をまとめて紹介している。大半の読者にとっては「InfiniBandって何?」というところだろうが、僚誌クラウドWatchをご覧になっておられる読者の中には「何で今さら」という方も居られるかもしれない。

 そう、InfiniBandという規格は、1999年に作業が始まり、2000年に最初の規格策定が行われたという「えらく古い」規格なのである。

「InfiniBandの現在」記事一覧

Gen-Z Consortiumが目指すFabricFabricの先にあるDRAMやSCMを複数ノードでシェア

 Mellanoxが参画したGen-Z Consortiumが目指しているFabricについては、以下の資料が分かりやすいだろう。要するに、個々のCompute NodeはそれぞれローカルのDRAMやSCM(Storage Class Memory)を持つが、これは言わばローカルのワーク用で、これとは別にDRAMなりSCMなりのプールをFabricの先に持ち、複数のノードでシェアする、という使い方を可能にするものだ。

もちろんI/Oもつながるが、メインはDRAMやSCMの接続となる。出典は「OCP U.S.Summit 2018」におけるGreg Casey氏の"GEN-Z: High-Performance Interconnect for the Data-Centric Future"

 これまでは、このようにDRAMがFabricの先にあるものはなかった。SCMにしても、SANをFlashベースのSSDで構築することで高速化が可能、といった程度であり、その場合には速度はともかくレイテンシはかなり大きかった。このため、例えばMPIを用いて複数ノード間で同期を取る、といった用途には使えない(使うことそのものは可能だが、レイテンシがあまりに大きすぎて性能面でのボトルネックになる)といった問題があった。

 このレイテンシに関して、もう少し細かく説明されたのが以下の画像だ。左側はMPIでメッセージ転送を行った例だが、Messageの伝達はおおむね250ns程度で可能とされる。これがどのくらいかというと、DRAMへランダムアクセスを行ってキャッシュミスしたときが数十~数百nsのレイテンシなので、これとほぼ同じ程度で通信が可能ということになる。

 右側は、SCMを従来型ストレージの手法によるアクセスと、Gen-Zを用いたアクセス手法の比較だ。従来型ではファイルシステムとして扱われるため、OSのハンドリングを経由することになり、そこで元データのコピーが作成される。OSの中では、下手をすると5回もコピーが発生する場合があり、これに要する時間が馬鹿にならない。

右側で示されている、従来型ストレージではアクセスに25000命令を要する一方、Gen-Zでは1~3命令というのは、従来型が過大かつZen-Gが過少な気がしなくもない

 さらに、複数の階層構造を取ってアクセスされることになるので、それぞれのレイヤー(上の図で言うならファイルシステム、I/Oバッファー、ドライバー、コントローラー、キャッシュ)での処理時間も馬鹿にならず、結果としてレイテンシが洒落にならなくなる、という話である。

 ところがGen-Zであれば、こうした処理を中抜きし、かつ内部でデータのコピーも作成されないので、高速に処理できるとされる。これは、処理できるとする、というより「そういう処理が可能なように構築される」との言い方が正確だろう。

 スループットの絶対値については、マルチレーンへの対応をネイティブサポートしているため、より広帯域が利用できるとしている。帯域については、イーサーネットでも、ポートトランキングやリンクアグリゲーションなどを用いれば拡張できることは、前回も書いた通りだ。

この「32 Virtual Channel per link」というあたりが、何というかもう何かそっくりだ

 ただポートトランキングは、IEEE 802.1Qに基づくVirtual LANを利用したベンダー独自の拡張となるし、もう一方のリンクアグリゲーションは、IEEE 802.3ad(LACP:Link Aggregation Control Protocol)として定義されたものなので、相互互換性が一応は取れてはいるが、PHY/MAC/Networkのどのレベルでアグリゲーションを取るかがオプション扱いになっている。

 このアグリゲーションを上層で取る場合は、帯域はともかくレイテンシは必然的に増える傾向になる。Gen-Zのマルチレーンは、強いて言うならPCI Expressと同様にPHY/MAC層での対応となるため、ハードウェアでの対応が必須となり、レイテンシも必然的に少ない。また、スイッチも30~50ns程度のレイテンシで対応可能となるので、イーサーネットを利用するより高速だ。

 コネクタについては、汎用のものをそのまま流用するとの方向性が打ち出されていたが、最終的にはSNIAの規定する「SFF-TA-1002 Rev 1.2」(PDF)を利用することになった。ちなみにSFF-TA-1002そのものは"Protocol Agnostic Multi-Lane High Speed Connector"(プロトコル非依存マルチレーン高速コネクタ)とされるので汎用との位置付けなのだが、これを利用しているのはGen-Zだけなので、事実上はGen-Z専用ということになる。

 Gen-Zではさらに、個々のモジュール形状も定義している。SSD/SCM/DRAMに加え、GPUやFPGAとして使えるモジュールも用意されており、これに沿ったモジュールとして提供することでサーバーへの組み込みを容易にし、かつ低価格化しようという訳だ。

ちなみにこのスライドの時点では4cまでしか出ていないが、8c以上はこれを複数並べるのかと思ったら、そうはならなかった
4C-HPというコネクタも定義されており、NICなどには、これを利用するかたちとなる

InfinityFabricを前提にしたGen-Zだけでなく競合のCAPI、CCIX、CXLにも参画するMellanox

 さて、ここまでの話でお分かりの方もいるかと思うが、構想時点でのGen-Zは、InfinityFabricを前提としたものだった。要するに、InfinityFabricの上にGen-Zを載せる、というか、ほとんどの部分はInfinityFabricそのままとしてもいいほどだ。

 もともとInfinityFabricは、サーバー間のInterconnectとサーバー内のInterconectの双方を狙っており、仕様にはサーバー内接続も入っていたから、あとはコネクタだけを汎用のものへ切り替える程度で、基本的な仕様は完成したことになる。

 その仕様はもちろんオープンスタンダードなので、Gen-Z Consortiumメンバーの意見に応じて拡張なども施されることになる。そのため完全に同一と言うわけではないにせよ、製品化という意味では、InfinityFabricをベースに最低限の構成をすぐに提供することができる。

 通常この手のものであれば、コネクタなどよりも、インターフェースチップやスイッチの開発に時間を要するわけだが、Gen-Zの1.0に関して言えば、MellanoxのInfinityFabric向けチップがそのまま利用できるので、マーケットの立ち上げも迅速に行える。

 それに、こうした用途には、少なくとも現状のイーサーネットはあまり向いているとは言えない。今までであれば、こうした用途には、各サーバーベンダーが独自のInterconnectを提供していた(というか、そもそもメモリやSCMをFabricの先に付ける、という構成がこの時点では存在しなかった)から、ある意味競合の存在しない、ブルーオーシャンの獲得を目指していたことになる。

 もっともこの目論見は、IBMの「CAPI(Coherent Accelerator Processor Interface)」+NVIDIAのNVLinkの組み合わせや、「CCIX(Cache Coherent Interconnect for Accelerators)」、「CXL(Computer Express Link)」という3種類の競合技術が相次いだことで崩れてしまった。

 CAPIは2014年発表であるが、このときには単にCPUの外部バスの延長という認識であり、実際にはPOWER 8/9とNVIDIAのGPUをキャッシュコヒーレンシを保ってアクセスするための手段とだけ考えられていた。だが、2016年にCAPIがOpenCAPIへ変更され、GPUのようなアクセラレーターだけでなくメモリも接続対象となったことで、やや雲行きが怪しくなってきた。

 CCIXは「OpenCAPI」への対抗といった位置付けで、2016年にCCIX Consortiumが設立され、2019年3月にRelease 1.0 Revision 1.0aの仕様が公開されたが、メンバー企業にはそれ以前から仕様が提供されており、実際2018年中からCCIXを利用したSoCの開発などが進んでいた。その名前の最後に"for Accelerator"とあるように、主な用途はCPU同士、ないしCPUとアクセラレーターの接続であるが、DRAMあるいはSCMとの接続もターゲットに入っている。

 そして最後発のCXLは2019年に突如発表され、こちらもメインはアクセラレーターの接続ながら、やはりDRAMやSCMとの接続もサポートするといった具合だ。

 面白いのはMellanoxで、Gen-ZのみならずOpenCAPIとCCIXについても創業メンバーになっていることだ。

 同社のイーサーネットカードやInfiniBand HCAは、単なるインターフェースカードというよりは、プロトコルオフロード処理機能を持ったアクセラレーターと言う方が近く、であればアクセラレーター向けInterconnectの規格に参画するのはおかしくないと言われれば、その通りではある。

 だが、むしろGen-Z一本に絞るのではなく、競合となる規格にもきちんと参画することで、リスク分散を図っていると言うべきかもしれない。CXLは、創業メンバーにこそ入っていないものの、現在はメンバー企業に名を連ねており、何というか馬券を流しで買うイメージ、とでも言えるだろうか。

「InfiniBandの現在」記事一覧

大原 雄介

フリーのテクニカルライター。CPUやメモリ、チップセットから通信関係、OS、データベース、医療関係まで得意分野は多岐に渡る。ホームページはhttp://www.yusuke-ohara.com/