期待のネット新技術
PCIeの処理オーバーヘッドを36分の1に、IBM独自の「CAPI」から「OpenCAPI」へ
【InfiniBandの現在】
2020年2月18日 06:00
「InfiniBandの現在」では、規格としての歴史と現状、今後の動向をまとめて紹介している。大半の読者にとっては「InfiniBandって何?」というところだろうが、僚誌クラウドWatchをご覧になっておられる読者の中には「何で今さら」という方も居られるかもしれない。
そう、InfiniBandという規格は、1999年に作業が始まり、2000年に最初の規格策定が行われたという「えらく古い」規格なのである。
「InfiniBandの現在」記事一覧
- 汎用的なInterconnectへ進化しつつあるInfiniBandの成り立ちは?
- ラック間やサーバー間で2.5GT/sの転送速度を実現する「InfiniBand 1.0」
- Intelが開発中止、発熱対処に難、サーバー間接続一本化は実現せず
- 低コスト低レイテンシーでHPC向け分散型構成に活路
- InfiniBandで高性能を実現するMPIの仕様策定と、その実装「MPICH」
- HBAとMPIとの組み合わせで、低レイテンシーを安価に実現する「RDMA」
- RDMAでパケットを高速転送する「SDP」、これをiSCSIで実現する「iSER」
- 売上から見るInfiniBand市場規模の推移、急速な世代交代もポイント
- SDRの2.5GT/secに加え、DDRの5GT/secとQDRの10GT/secを2004年に追加
- 低レイテンシ―かつ高速なMellanox初のDDR対応HCA「InfiniHost III Ex/Lx」
- 「QDR」に初対応のInfiniBand HCA「ConnectX IB」と10GbEカード「ConnectX EN」
- InfiniBand QDR/Ethernet両対応「ConnectX-2」、324ポートスイッチ「MTS3610」
- 14GT/secの「FDR」と25GT/secの「EDR」、64b66bでのエラー増に「FEC」で対応
- InfiniBand FDR対応の「ConnectX-3 VPI」カード、HPC向けが中心
- SANスイッチ向けにInfiniBand市場へ参入したQLogic、撤退の後、2006年にはHCA向けに再参入
- QLogic、市場シェアを拡大も2012年にInfiniBand部門をIntelへ売却
- Intel、QLogicから買収したInfiniBandからOmni-Path Fabricへ
- InfiniBandが主戦場のMellanox、独自の56GbEでイーサーネット関連を拡大するも……
- Mellanox、100Gbpsの「EDR」製品を2014年リリース、2017年は売上の中心に
- 4x構成で200Gbps超の「InfiniBand HDR」、Mellanoxが2018年後半に製品化
- データ量と演算性能増によるメモリ帯域不足解消へ、Gen-Z Consortiumへ参画
- Gen-Zに加え、競合InterconnectのCAPI、CCIX、CXLにも参画するMellanox
- PCIeの処理オーバーヘッドを36分の1に、IBM独自の「CAPI」から「OpenCAPI」へ
- DRAMサポートを追加、メモリI/F統合も考慮した「OpenCAPI 3.1」
- 3種類の接続形態をサポートする「Gen-Z Ver.1.1」
- HDRは好スタート、InfiniBandのこの先は?
PCIe 3.0で13μsのオーバーヘッドを0.36μsへと引き下げる「CAPI 1.0」
今回は脇道に逸れるが、Gen-Zの競合規格の1つとして、前回も少しだけ触れた「OpenCAPI」について紹介したい。“メモリ拡張”という意味では、現時点でGen-Zへの最有力の競合候補の1つと言えるものだ。
OpenCAPIは元々、「CAPI(Coherent Accelerator Processor Interface)」としてIBMのPOWER8プロセッサーで搭載されたメカニズムである。
このときはまだ、IBMが開発したPOWER8における独自規格であり、そのメリットも限られたものだった。そして、IBMの説明によれば、このときのCAPIは汎用のアクセラレーター接続用で、PCI Express Gen 3よりも帯域が広く、かつキャッシュコヒーレンシを提供できるというものだった。しかし、事実上の対応製品は、NVIDIAのNVLinkを搭載したGPUと、FPGAボードに限られていた。
IBMはこのCAPIを利用し、「Sierra」と「Summit」というスーパーコンピューターを構築、ORNL(米オークリッジ国立研究所)とLLNL(米ローレンス・リバモア国立研究所)に納入している。最終的に納入されたSierraとSummitは、IBM POWER9とNVIDIA「Volta(Tesla V100)」の組み合わせだったが、本格納入に先立つアプリケーションの移植などに向け、POWER8に「Pascal(Tesla P100)」を組み合わせたパイロットシステムが2016年あたりから納入され、これがCAPIベースでPOWER8とPascalを接続するかたちとなっていた。
物理的な意味では、PCI Express Gen 3の配線やPHYをそのまま利用していたが、その上位層は、PCI ExpressではなくCAPI独自のものとなっている。
ちなみにCAPIを利用した場合のメリットについて、IBMでは処理におけるオーバーヘッドの引き下げとしていた。従来型のSNAP Frameworkを利用し、CPUからGPUへデータを送るのは以下右のような構成となるが、CAPI(とCAPI SNAP)を利用すると、アプリケーションはメモリへ書き込むだけで、その領域を外部のデバイス(GPU/FPGA)を直接参照できるので、右下のように余分な処理は必要なくなるわけだ。
その結果として、例えばFPGAなりGPUに何か処理を投げ、その結果を返してもらうという処理におけるオーバーヘッドが、従来型では13μsにも及ぶのに対し、CAPIではこれを0.36μs程度まで引き下げることが可能になる、との数字が示されている。
倍速化した「CAPI 2.0」のリリースと並行し、「OpenCAPI Consortium」を設立
そんなわけで、CAPI(CAPI 1.0)は完全にPOWERアーキテクチャの独自規格であったが、これをもう少し汎用化したものが、2016年10月に登場したOpenCAPIである。正確に言えば、IBMは2017年に登場したPOWER9プロセッサーとともに「CAPI 2.0」をリリースする。
このCAPI 2.0ではInterconnectがPCI Express Gen4 x16(正確には2×PCI Express Gen4 x8)へと切り替わって速度が倍増しているほか、いくつかの新機能(CPU側でのAddress Translation、アクセラレーターからのDMA実行並びにアトミック命令、アクセラレーターからCPU側のスレッドへの通知)が追加されてはいるが、基本的には速度を倍増した「だけ」の仕様である。
このCAPI 2.0は、CAPI 1.0と同じくIBMの独自仕様となるが、これと並行してIBMはCAPIのオープン化を図り、具体的には前述した2016年10月に「OpenCAPI Consortium」を設立した。創立メンバーはAMD・Dell EMC・Google・HPE・IBM・Mellanox Technologies・Micron・NVIDIA・Xilinxに加え、何とCCIX ConsortiumとGen-Z Consortiumまでが加盟している。
オープン化ということは、仕様の策定のレベルからConsortium内で行われるという意味であり、理屈から言えば、例えばOpenCAPI対応のデバイスをGen-Zで接続したり、CCIXと相互接続するといったこともあり得るわけで、2者の加盟は、そうした可能性を見据えてのことではないかと思われる。
ただ、OpenCAPI Consortiumに戦略的なレベルで現状でも残っているのは、Google・IBM・Mellanox Technologies・NVIDIA・Xilinxの5社とWDだけで、ControbutorとしてもMicronが残っている程度。AMD・Dell EMC・HPEの3社とCCIX Consortium・Gen-Z Consortiumはすでに脱退しているようだ。参加してみたものの、メリットが見い出せなかった、というあたりではないだろうか。
独自Interconnectで25GT/secを実現、汎用化も進んだ「OpenCAPI 3.0」
OpenCAPI Consortiumでは、CAPI 2.0(のドラフト)をベースに、最初のOpenCAPIの仕様となる「OpenCAPI 3.0」を2016年10月にリリースする。もっとも、DataLink Layerこそ、この2016年10月のリリースのものが最終であるが、Transaction Layerに関しては、2017年1月に改訂版であるVersion 1.1がリリースされ、これが最新となっている。
主な特徴をまとめたのが以下となるが、このうち特筆すべきはPHYがPCI Express 4.0互換の16GT/secから、独自の25GT/secのものに変わった(厳密には両対応で、このあたりはCCIXも似たようなかたちとなっている)ことで、これによってさらなる高速化が可能、というものだ。
さらに詳細な説明が以下だ。CAPI 1.0/2.0はPOWERアーキテクチャーと厳密に結び付いた仕様となっていたが、OpenCAPIではこのあたりが完全にアーキテクチャ非依存化され、汎用的な利用も可能となっている。
このOpenCAPI 3.0では、OpenCAPI側に、メモリとそのメモリを管理するHome Agentという機能を実装することがサポートされている。ただ、この時点でのメモリというのは、主にSCM(Storage Class Memory)であった。
細かいところでは、CAPI 1.0/2.0で可能だった「PSL(Power Service Layer)」におけるホスト側メモリのキャッシング機能が、OpenCAPI 3.0では落とされているなど、単純にCAPI 2.0をそのまま置き換えたわけではない。
これはおそらくアーキテクチャ非依存化のために行われた変更と思われる。ただOpenCAPI 3.1では、Standard DRAMをサポートするような変更が施されることになった。次回は、このOpenCAPI 3.1における「OMI(OpenCAPI Memory Interface)」の話を紹介していきたい。
「InfiniBandの現在」記事一覧
- 汎用的なInterconnectへ進化しつつあるInfiniBandの成り立ちは?
- ラック間やサーバー間で2.5GT/sの転送速度を実現する「InfiniBand 1.0」
- Intelが開発中止、発熱対処に難、サーバー間接続一本化は実現せず
- 低コスト低レイテンシーでHPC向け分散型構成に活路
- InfiniBandで高性能を実現するMPIの仕様策定と、その実装「MPICH」
- HBAとMPIとの組み合わせで、低レイテンシーを安価に実現する「RDMA」
- RDMAでパケットを高速転送する「SDP」、これをiSCSIで実現する「iSER」
- 売上から見るInfiniBand市場規模の推移、急速な世代交代もポイント
- SDRの2.5GT/secに加え、DDRの5GT/secとQDRの10GT/secを2004年に追加
- 低レイテンシ―かつ高速なMellanox初のDDR対応HCA「InfiniHost III Ex/Lx」
- 「QDR」に初対応のInfiniBand HCA「ConnectX IB」と10GbEカード「ConnectX EN」
- InfiniBand QDR/Ethernet両対応「ConnectX-2」、324ポートスイッチ「MTS3610」
- 14GT/secの「FDR」と25GT/secの「EDR」、64b66bでのエラー増に「FEC」で対応
- InfiniBand FDR対応の「ConnectX-3 VPI」カード、HPC向けが中心
- SANスイッチ向けにInfiniBand市場へ参入したQLogic、撤退の後、2006年にはHCA向けに再参入
- QLogic、市場シェアを拡大も2012年にInfiniBand部門をIntelへ売却
- Intel、QLogicから買収したInfiniBandからOmni-Path Fabricへ
- InfiniBandが主戦場のMellanox、独自の56GbEでイーサーネット関連を拡大するも……
- Mellanox、100Gbpsの「EDR」製品を2014年リリース、2017年は売上の中心に
- 4x構成で200Gbps超の「InfiniBand HDR」、Mellanoxが2018年後半に製品化
- データ量と演算性能増によるメモリ帯域不足解消へ、Gen-Z Consortiumへ参画
- Gen-Zに加え、競合InterconnectのCAPI、CCIX、CXLにも参画するMellanox
- PCIeの処理オーバーヘッドを36分の1に、IBM独自の「CAPI」から「OpenCAPI」へ
- DRAMサポートを追加、メモリI/F統合も考慮した「OpenCAPI 3.1」
- 3種類の接続形態をサポートする「Gen-Z Ver.1.1」
- HDRは好スタート、InfiniBandのこの先は?