後藤弘茂のWeekly海外ニュース

NVIDIAのマルチダイGPU構想の要となる「GRS」インターコネクト技術

モノリシックな巨大ダイのGPUから、マルチダイのGPUへ向かうNVIDIAの構想(PDF)

 現在、プロセッサはダイ間接続インターフェイスの低電力化に向かっている。

 目標とするのは1-bitあたり1pj(ピコジュール)以下での転送だ。1pj/bit(ピコジュール/ビット)以下でデータを転送できれば、マルチダイ化した場合のダイ間のデータ転送も、許容できる電力レベルに抑えることができる。

 1pj/bitなら、片方向1TB/sのデータ帯域でも、計算上は片方向で8.4W、双方向で16.9Wにまでピーク電力を抑えることが可能だ。

プロセッサベンダーはダイ間インターコネクトの開発にフォーカス

 プロセッサベンダーは、各社とも異なるアプローチでダイ間インターコネクトの開発を行なっているが、ゴールが1pj/bit以下である点は共通している。というか、1pj/bitは現在見えている最初のゴールで、1pj/bitより下へと持って行くことが目的だ。

 この開発競争の背景には、米DARPA(米国防高等研究計画局: Defense Advanced Research Projects Agency)の影がちらつく。たとえば、Intelの「EMIB(Embedded Multi-die Interconnect Bridge)」はDARPAの「CHIPS(Common Heterogeneous Integration and Intellectual Property Reuse Strategies)」プロジェクトと結びついている。DARPAが、ある程度方向性を示している。

 ちなみに、歴史的にはインターコネクトの消費エネルギーはpj/bitは年に20%下がって来た。メモリでは、DDR3は70pj/bit前後、DDR4が40pj/bit前後だったのが、最近のメモリでは、GDDR5メモリが14~18pj/bit、LPDDR4が約4pj/bit、HBM2が4pj/bit以下となっている。

 現在の開発ではpj/bitの低減をもっと加速する動きになっており、数pj/bit台に入って、ますます低消費エネルギー化が加速されている。

 ダイ間インターコネクトでは、Intelは切り札であるEMIB技術を持っており、ファインピッチのマイクロバンプによる幅広インターフェイスに賭けている。HBM2メモリもEMIBでカバーすることが可能であるため、Intelは最終的に、メモリとロジックチップレットすべてをEMIBで接続しようとしている。

 AMDは、現状ではシリコンインタポーザによるHBM2の2.5Dと、有機サブストレート上でのロジックチップレット間配線の2つの手法の混合だ。チップレット間の配線はシングルエンド信号を使っている。将来的には、AMDは3Dスタッキングへ進もうとしている。

NVIDIAによるマルチダイ化したGPUの概念ダイアグラム(PDF)
最大36個のダイをスケーラブルにMCM化できるRC 18(PDF)

 NVIDIAはここ数年、有機サブストレートやプリント基板での高速かつ低電力インターフェイスを開発して、学会発表を続けている。

 NVIDIAの1pj/bitのための技術は、同社のテストチップ「RC 18」に実装されたNVIDIA独自の伝送技術「Ground-Referenced Signaling(GRS)」だ。

 NVIDIAは、6月の学会「2019 Symposia on VLSI Technology and Circuits」にて、「A 0.11pj/Op, 0.32-128 TOPS, Scalable Multi-Chip-Module-based Deep Neural Network Accelerator with Ground-Reference Signaling in 16nm」(Brian Z. et al. Symposia on VLSI Technology and Circuits, 2019)でRC 18の概要を発表している。

 GRSによって低電力のダイ間データ転送を可能にすることで、最大36個のダイ構成というスケーラブルなマルチダイを可能にしている。

 NVIDIAは、チップ間接続インターコネクトとして「NVLink」を持っているが、GRSはより近接したダイ間接続のインターコネクトから、近距離のチップパッケージ間接続をカバーする。

 RC 18では、チップパッケージ上でのダイのインターコネクトとしてGRSが使われている。テストチップのもっとも重要なポイントは、GRSインターコネクトにあると言って良い。

GRSのために作られたRC 18チップ

 NVIDIAの研究チップRC 18チップは、パッケージ上に複数のダイ(半導体本体)を統合するMCM(Multi-Chip Module)を前提に設計されている。そのため、RC 18のダイは上下に「Ground-Referenced Signaling(GRS)」のインターフェイスが配置されている。

 4方向に向けたPHYが実装され、各リンクは4データレーンと狭い構成だ。上のチップ向けが「ノース(North)」、下向けが「サウス(South)」、右向けが「ウエスト(West)」、左向けが「イースト(East)」だ。

 チップの上側にはGRSのウエストのRX(レシーバ: Receiver)、ノースのTX(トランスミッタ: Transmitter)とRX、イーストのTXが並ぶ。チップの下側にはGRSのウエストのTX、ノースのRXとTX、イーストのRXが並ぶ。RXとTXユニットは同サイズでダイエリアは0.26平方mm。チップ全体のサイズは6平方mm(2.5×2.4mm)だ。

NVIDIAがGTC(GPU Technology Conference)で発表したRC 18の全体像
NVIDIAがGTC(GPU Technology Conference)で発表したRC 18のダイ
RC 18ダイの詳細(PDF)
RC 18のオンダイとダイ間のネットワーク接続図(PDF)

 RC 18のGRSの転送レートは、11Gbps/ピンから25Gbps/ピン。25Gbpsは、NVLink2と同じだ。

 各TX/RXがそれぞれ4レーンなので、25Gbps時の転送帯域は1リンク当たり片方向100Gbps(12.5GB/s)、双方向で200Gbps(25GB/s)。上下左右4方向で、チップトータルの転送帯域は片方向400Gbps(50GB/s)、双方向で800Gbps(100GB/s)。わずか6平方mmのチップにこの帯域は大きい。

 0.26平方mmのユニットが8個で800Gbpsの帯域なので、ダイ面積あたりの転送帯域は384Gbps/平方mm、48.1GB/平方mmとなる。

伝送ビット幅を広げれば1pj/bitを達成可能なGRS

 RC 18のGRSの消費エネルギーは、6月に京都で開催された半導体技術の学会「2019 Symposia on VLSI Technology and Circuits」での発表では、0.82~1.75pJ/bit。NVIDIAが主催するGPUコンピューティングのカンファレンス「GTC(GPU Technology Conference)」のセッションで発表されたスペックでは、25Gbpsの転送レートで1.6pj/bitとなっている。

 これだけを見ると、消費エネルギーがゴールの1pj/bitよりかなり多いように見えるが、これは、RC 18チップのGRSの実装ではインターフェイス幅が狭いためだ。

 GRSはシングルエンド信号のクロックフォワーディング方式だ。RC 18のGRSの実装は、1リンクあたり、4データバンプに対して1クロックバンプの構成となっている。4-bit幅のインターフェイスに、1本のクロックバスが付属する。

 クロックはかなりの電力を消費するため、対応するデータバスが4-bit幅では、クロックの分だけビット当たりの電力消費が増えてしまう。RC 18はテスト向けなので、インターフェイス幅が狭い実装で、効率はあまり重視していないと推測される。

 ちなみに、同じGRSでも、8-bit幅インターフェイスでは1.2pj/bit、16-bit幅では1pj/bitになるとNVIDIAは説明している。2018年の論文では、8-bitの場合は1.17pj/bitで、そのうちクロックは0.454pjとなっている。本格的に商用チップに実装する段階なら、1pj/bitのゴールは達成できそうだ。

GRSの消費エネルギー効率(PDF)

 ちなみに、AMDのマルチダイCPUの14nm版Epyc(Naples)で、異なるダイの間を接続するインターコネクト「IFOP (Infinity Fabric On-Package)」は、シングルエンド(Single-ended)信号で32-bit幅、転送レートは6.4Gbps、消費エネルギーは2pj/bitとされている。

学会発表の各インターコネクトの消費エネルギー効率と伝送距離の例(PDF)
JEDECが示したメモリでのpj/bitと電力消費の例(PDF)

 消費エネルギーをワットに換算すると、pJ/bit=mW/Gbit/sなので、チップトータルでのGRSの電力消費は、1.6pj/bitとしてピークで1.28Wとなる。

 双方向で800Gbps(100GB/s)の帯域の電力なので、帯域に対しては非常に低いが、それでもチップサイズからすると電力は大きい。

 もっとも、RC 18のマルチダイ実装では、データはネットワーク経由で各ダイに分配した後は、ダイ間のデータの転送はかなり抑えられる。そのため、GRSが常にフルに稼働しているわけではなく、ワークロードを分散した後のIOの稼働率は低いので、実際には電力消費はそれよりずっと少なくなる。

 VLSI Symposiaでの発表では、4ダイ構成時のGRSインターコネクトの電力消費は215~220mWと発表された。36ダイでは3.8W~4.09Wだ。

NVIDIAがVLSI Symposiaで発表したRC 18のスペック(PDF)

シングルエンド信号でグランドをリファレンス電圧に

 GRSの電力消費が小さい理由は、電圧振幅が小さいためだ。GRSの実装によって異なるが、典型的には200mVの振幅で伝送する。

 GRSは、1本の信号線の電圧の高低でデータを伝送するシングルエンド信号だが、従来のシングルエンドとは方式が異なる。低振幅の伝送を実現するために、GRSではグランド電圧(GND)をリファレンス電圧に使っており、それがグランドリファレンス信号(Ground-Referenced Signaling: GRS)の名前の由来となっている。

 現在、高速I/Oには「ディファレンシャル信号(Differential Signaling)」が使われる場合が多い。しかし、ディファレンシャル信号では信号線が2本必要となるため、I/Oピン数の制約が問題となる。

 近い距離での広帯域伝送ではシングルエンド信号に利点があるが、シングルエンド信号は伝送速度を上げると、電力消費と信号品質が問題となる。

 シングルエンド信号では、データは1本のワイヤ上の電圧の高低で表される。電圧の高低を識別するために、中間電圧としてリファレンス電圧が必要となる。基準となるリファレンス電圧に対して、HレベルかLレベルかで値を決めるためだ。

 しかし、このリファレンス電圧が、伝送路の両端のRXとTXではなかなかマッチしない。そのため、シングルエンド信号では電圧振幅を大きく取る必要があり、それが電力消費を増やす原因となっているという。

シングルエンド信号の困難のひとつはリファレンス電圧(Vref)がマッチしないこと(PDF)
GRSではグランド電圧自体をリファレンスとするため安定する(PDF)

 NVIDIAのGRSでは、システム内でもっとも安定しているグランド電圧(GND)をリファレンスにとり、GNDの上下に振幅させている。

 上下に振る点ではディファレンシャル信号的だが、GRSでは1本の信号線上の電圧振幅だけで値を表すため、差動を使うディファレンシャルとは大きく異なる。GNDを使うことで、TXとRXの間のリファレンス電圧のミスマッチを減らして、低電圧振幅の伝送を実現している。

 こう見るとGRSの仕組みは簡単なようだが、これまで誰もやらなかったのには理由がある。GNDの上下に電圧を振ることで、トランスミッタ/レシーバの設計が難しくなるためだ。

 Rambusが2013年にグランド電圧に近い電圧で低振幅させる「Near-Ground Single(NGS)」と呼ぶ技術を発表しているが、これも、グラウンドの下には電圧を振っていない。NVIDIAのGRSは、その点では特殊な方式だ。

パッケージ間の接続もGRSでカバー

 NVIDIAはGRSの特許を取得しており、2013年からGRSの論文を2~3年おきに大手の学会に発表している。

 テストチップも、最初にインターフェイスだけのチップを起こし、より本格的なGRSリサーチチップとしてRC 17を起こし、RC 18を起こしている。つまり、かなりの研究費を投じて、継続的にGRS技術の研究を続けている。

 NVIDIAは、本気でGRSを使おうとしているように見える。ただし、論文を並べると、GRSの研究のターゲットが徐々にシフトしてきていることがわかる。

NVIDIAが最初に作ったGRSのテストチップ。2013年に発表されている(PDF)
NVIDIAが最初に作ったGRSのテストチップ(PDF)

 初期の2013年頃の構想では、チップパッケージ上で複数のGPUダイをGRSを使って接続することにフォーカスしていた。しかし、最近の論文では、オンパッケージだけでなく、オフパッケージのマザーボードPCB上での接続もGRSでカバーする構想が浮上している。

 2018年の論文では、オンパッケージだけでなく、オフパッケージでの実装例も検証している。

 NVIDIAによると、拡張版のオフパッケージGRSでは、パッケージ上の配線が13mm、PCB上の配線長が54mm、合計で80mmの配線長で実装が可能であるとしている。

 GRSはオンパッケージでの配線は10mmをターゲットにしているが、パッケージ間接続に伸ばすと80mmまで許容できることになる。80mm長でも、データ転送レートは25Gbpsのままで可能だという。

オンパッケージでのGRSの実装(PDF)
オンパッケージでのGRSの実装。10mmの例(PDF)
パッケージ間の接続でのGRSのボード実装例(PDF)
パッケージ間の接続でのGRSはPCB上で54mmまで可能(PDF)
パッケージ上で10mmの伝送路で25Gbps時のエラーレート(PDF)
パッケージ間のPCBでの80mm伝送路での25Gbps時のエラーレート(PDF)

 また、GPUの場合は、ハイエンドGPUはスタックドDRAMを使っているために、さらに伝送路が少し複雑になる。

 NVIDIAやAMDのハイパフォーマンスGPUのメモリは、2.5DのHBM系メモリが主流となっている。HBM系メモリは、シリコンインタポーザかRDLを配線レイヤに使った高密度インターフェイスだ。帯域と電力を考えると、現状ではハイエンドGPUではHBM系以外の選択肢がない。

GRSは現状では80mmの伝送距離まで

 NVIDIAがHBM系メモリとGRSチップ間インターコネクトを併用しようとすると、必然的にシリコンインタポーザまたはRDL同士を接続するアプローチにせざるを得ない。

 もちろん、シリコンインタポーザまたはRDLの上に複数のGPUダイを配置すれば、ダイ間をHBMのような高密度インターフェイスで接続することもできる。

 しかし、シリコンインタポーザやRDLにはサイズの限界があり、その上に巨大なダイを例えば4個配置することは難しいか、経済的に見合わない。必然的にシリコンインタポーザやRDL同士を接続することになる。この点では、HBM系メモリとロジックチップを同一パッケージ技術で統合できる、IntelのEMIBの方が有利だ。

 そのため、NVIDIAのGPUのダイ間接続では、必然的にGPUダイとパッケージ基板の間にシリコンインタポーザ/RDLが挟まる。

 通常のパッケージに実装できるGDDR系メモリを使うGPUもある。しかし、チップレット型のマルチダイアプローチが必要なのはHBM系メモリを搭載するハイエンドGPUだ。GRS接続では、インタポーザやRDLも考慮して開発されていると見られる。

オンパッケージでGPUダイ同士をGRSで接続するNVIDIAの構想(PDF)
マルチダイを接続したパッケージを基板上でGRSで接続する構想(PDF)
GRSの位置づけがよくわかるDARPAのスライド(PDF)

 こうして見ると、NVIDIAのマルチGPUダイ構想の全体が見えてくる。GPUとメモリはシリコンインタポーザ/RDLでの接続が維持されるが、GPUダイ同士はパッケージ上で短距離GRSで接続し、複数のGPUダイとメモリを載せたモジュール同士はPCB基板上で長距離GRSで接続する。そうすることで、多数のGPUダイを密接に統合したシステムを低電力に実現できる。

 その場合、NVLinkはどうなるのか。まず、ダイ間やモジュール間接続ではNVLinkはGRSに置き換えられる。同レベルの転送レートであっても、より低電力に抑えることが可能で、ピン数でも有利になるからだ。データ帯域を現状以上に広げようとすると、GRSのような技術が望ましくなる。

 しかし、GRSのPCB上の伝送距離は現状で56mmであるため、どうしてもシステム設計上の制約が発生する。NVLink2のように300mm以上の接続はできない。そのため、すべてをGRSへ置き換えることは難しいと見られる。

 ちなみに、NVIDIAはGRSとは別なインターコネクトの研究プロジェクトも走らせており、その中で力を入れているのが光ファイバを使ったインターコネクトだ。

 こちらは、もう少し先を狙ったビジョンで、MCM技術でシリコンフォトニクスチップを統合することで、パッケージ間からノード間までもカバーする。

 なぜ、NVIDIAはここまでしてマルチダイ/マルチチップの接続にこだわるのか。それは、半導体チップの今後は、経済的なコストで、単体のダイのトランジスタ容量を引き上げ続けることが難しいためだ。

 これは、NVIDIAだけでなく、半導体メーカーに共通した課題であり、そのため、NVIDIAだけでなく、IntelもAMDも、みなマルチダイ化への道を全速で走っている。各社ともアプローチが異なるため、この部分の技術競争が、今後のチップベンダーの勝敗を分けるカギとなりそうだ。