NVIDIAはムーアの法則後の時代に向けてマルチダイを研究 NVIDIAはGPUのマルチダイ化に向けて進んでいる。そう遠くない将来、NVIDIAのハイエンドGPUは、1個の巨大ダイではなく、2～4個のダイで構成されるようになるだろう。NVIDIAは、学会などで、将来のGPUアーキテクチャとして、複数のロジックダイをパッケージ内に封止したマルチダイ実装の構想について、何回も説明してきた。 そして、NVIDIAが主催するGPUコンピューティングのカンファレンス「GTC(GPU Technology Conference) 2019」では、マルチダイ化へ向けた具体的な取り組みが明らかにされた。NVIDIAのリサーチ部門を統括するBill Dally氏(William J. Dally, Chief Scientist and SVP of Research, NVIDIA/Professor(Research), Stanford University)は、GTCの技術セッションと、GTCに合わせて開催された説明会で、マルチダイ構想のための研究用チップについて解説を行なった。 大手の半導体メーカーは、研究目的のために実際にチップを設計する。Intelなどは毎年のように複数の研究用チップを学会発表しているが、NVIDIAが自社の研究用チップについて説明することは珍しい。 NVIDIAのリサーチ部門を統括するBill Dally氏は、次のように研究用チップを説明する。 「深層学習をスケーラブルにする実験として、研究のためのプロトタイプ(チップ)をデモした。これは、基本的には最近テープアウトして製造したもので、現在評価中だ。我々は『RC 18』と呼んでいる。“2018年のリサーチチップ”の意味だ。深層学習のアクセラレータチップであり、非常に小さなサイズからスケール(アップ)できる。小さなダイ1つに16個のPE(Processing Element)が載っている」。 実際にRC 18のチップ自体は相対的に小さく、TSMCの16nmプロセスで8,700万トランジスタしかない。また、スライドのように、この研究用チップは単体ダイではなく、複数のダイをパッケージに載せたマルチダイ構成となっている。具体的には36個のダイを有機サブストレート上に配置したMCM(Multi-Chip Module)で、複数のダイで連携するスケーラブルなアーキテクチャとなっている。

多くの実験を試みたNVIDIAの研究用チップ「RC 18」 「このチップでは多くの技術をデモできることが利点だ。技術の1つは、スケーラブルな深層学習アーキテクチャ。もう1つは、有機基板(Organic Substrate)上でのダイとダイの間の、非常に効率的な伝送技術だ」(Dally氏)。 正確に言えば、NVIDIAがこのチップで実証している技術は、4つだ。Dally氏が触れなかったものが2つある。(1)オブジェクト指向のハイレベル論理合成ベースの設計手法「Object-Oriented High-Level Synthesis (OOHLS)」、(2)パーティション単位でクロックを生成する「Fine-grained Globally Asynchronous Locally Synchronous (GALS)」システム、(3)スケーラブル深層学習アーキテクチャ、(4)低電力低レイテンシのダイ間の伝送信号「Ground-Referenced Signaling(GRS)」だ。また、Dally氏が将来のGPUの内部ネットワークとして触れたことがある、オンダイのメッシュネットワークも実装している。 このうち、Object-Oriented High-Level Synthesis (OOHLS)とFine-grained Globally Asynchronous Locally Synchronous (GALS)については、NVIDIAは昨年(2018年)のDAC(Design Automation Conference)で発表をしている。チップのアーキテクチャもここで発表した。また、Ground-Referenced Signalingについては、昨年のISSCC(IEEE International Solid-State Circuits Conference)で発表している。 簡単に言えば、将来のNVIDIAのチップのために必要な、マルチダイ実装、開発ツール、クロッキングシステム、内部アーキテクチャ、ダイ間のスケーラブルな制御などについての研究の集大成チップがRC 18だ。RC 18自体は深層学習やコンピュータビジョン向けアクセラレータチップだが、RC 18で試みている技術の大半は、GPUなどほかのチップに転用可能なものだ。ぱっと見ただけではわかりにくいが、ここに、将来のNVIDIAのGPUやほかのチップについてのヒントが詰まっている。

RC 18のベースアーキテクチャ RC 18はTSMCの16nm FinFETプロセスで製造されている。8,700万トランジスタと、16nm世代のチップとしては比較的小さなダイだが、このなかに、深層学習用のPE(Processing Element)が16個と、制御用のCPUコア、オンチップのグローバルバッファメモリ、それに、GRS(Ground-Referenced Signaling)が8リンク搭載されている。実際のダイでは、GRSリンク群がかなりの面積を占めており、1チップあたりのGRSによるI/O帯域は100GB/sに達している。このあたりの設計からは、このチップがマルチダイの実証用に開発されたことがわかる。 16個のPEは、4x4のアレイになっており、構造は「Eyeriss」と似ていると論文で説明されている。Eyerissは、NVIDIAとMIT(Massachusetts Institute of Technology)でのリサーチプロジェクトのニューラルネットワークアクセラレータチップで、GTC 2016でもポスター発表された。きわめて低い電力でディープコンボリューショナルニューラルネットワーク(DCNN)を実行できる。NVIDIA関係のニューラルネットワークプロセッサには、このほか、Stanford UniversityとのEIEやNVIDIA自身のDLAなどがあるが、RC 18はそれらとは異なるアーキテクチャとなっている。 各PEは、プロセッシングユニットとスクラッチパッドメモリ、コントロールユニットとルーターで構成されている。PEはオンチップのメッシュ「Network-on-Chip (NoC)」に、ルーターを通して接続されている。NoC型のインターコネクトは、Dally氏が将来のGPUの概念図で以前示しており、現在クロスバスイッチであるGPUの内部インターコネクトへの適用も視野に入れているとみられる。また、PC 18のPE群は、NoCからクロスバスイッチを介して、オンチップのマルチバンクのグローバルメモリに接続されている。CPUコアはAXI Bus経由でNoCに接続されている。 RC 18には通常のCPUコアも実装されている。RISC-V命令セットアーキテクチャの「Rocket」コアだ。Rocketコアはシンプルなシングルイシュー/5ステージのCPUコアだ。比較するならArmのCortex-A5クラスのコアだが、Armよりも実装面積が小さく、効率がよい。Rocketコアの役割は、グローバルイコントローラで、各PEのコントロールレジスタをセットすることでPEを始動し、また、PE内のスクラッチパッドメモリとオンダイでPE共有のグローバルメモリ、さらにオフチップメモリまでのメモリ階層でのデータトランスファを制御する。 RISC-VはオープンなCPU命令セットアーキテクチャであり、誰でもRISC-VアーキテクチャのCPUを開発できる。しかし、RISC-Vで設計したCPU自体はオープンソースにする必要はなく、商用ライセンスのCPUコアも作ることができる。Rocketは、US Berkeleyで開発された最初期のRISC-Vコアで、オープンソースであるため使いやすく、大学などの研究開発には浸透しつつある。また、NVIDIAの2007年以降のGPUには、現在、「Falcon(FAst Logic CONtroller)」という独自プロセッサコアがマイクロコントローラとして複数個組み込まれているが、これも近い将来RISC-VベースのCPUコアに変わる見込みだ。