Alibabaのネットワーク向けに
命令そのものを最適化
Hanguang 800の内部構造が下の画像だ。4つの推論用コアが200GB/秒のリングバスでつながり、その外にコントロールプロセッサーやPCIeなどが付いている。
個々の推論用コアはTensor Engine/Pooling Engine/Memory Engineと48MBのSRAMから構成される。ここで外部にDDRやHBMを搭載しないことで、これらをアクセスすることによるレイテンシーの増大や、そもそもの消費電力増大、さらにHBM2の場合はコストアップにもなるわけで、こうした制約から逃れることが可能になった。
ただ後で出てくるが、その分ダイのほとんどをSRAMが占めることになっており、ただそれでも全部で192MBとあまり大きな容量を取れないあたりがネックになる部分で、このあたりのバランス感覚はやはり外販向けではありえない感じである。
ここのコアのうち、まず最初がTensor Engineでテンソル処理を行なう。要するに畳み込み計算や量子化などの処理である。ここで特徴的なのは、命令セットがもう特定のネットワーク専用ではないか? というほどに最適化されていることだ。
畳み込み→BN(バッチ正規化)→ResidualADD(残余加算)→ReLU(活性化)という流れは、例えば昨今でもBNやReLUを畳み込みの前に入れる方法や、BNを3回実施するなど、いろいろな方法が提案されているが、Hanguang 800ではこのあたりを割り切ったようで、特定のネットワークに向けて命令そのものを最適化していることが示されている。
プーリングエンジンも独特である。INTで受けた値を、内部ではFP19という独自精度で処理して、出力段でフォーマットを変更する形の実装になっている。ここはROI(Region of interest:識別対象が入っているピクセルの絞り込み)の処理も同時に行なうことになっている。
メモリーエンジンは画像データの1次元展開や重みのハンドリングなどを行なう。メモリーエンジンそのものはローカルで一切メモリーを持たないので、対象はそれぞれの推論用コアのLM(Local Memory)が対象となる。
Hanguang 800の要になるのが192MBのオンチップSRAMである。各コアに48MBずつ割り振られ、それぞれ4つのクラスターに分割。1つのクラスターはさらに32個のモジュールに分割されているので、1モジュールあたりの容量は384KBとなる。
ただ分割されているとはいえ、基本的には共有メモリー構造になっている。幸いというかなんというか、Hanguang 800ではキャッシュに当たるものが見る限り一切ない(上の画像に出てきたCredit MemoryやResharpe Memoryなどのバッファをキャッシュとみなすかどうかは微妙なところ)から、分散メモリー構造としてもキャッシュコヒーレンシーのトラフィックなどは発生しない。3つ前の画像で出てきたW-BufferやA-Bufferは、このモジュールを1個そのまま割り当てる形で動作するようになっている。
ちなみにこの4つのコアはそれぞれ独立して動くことも可能だし、全体を連動させて動かしたり、必要ならPCIe Switch経由で複数チップを連動させることも可能としている。

小さなネットワークなら、最大で4つまで1つのチップ上で同時に利用できる(左)。ある程度大きくなると、4つのコアを連動させて1つのネットワークを動かす形(中央)、超大規模だとマルチチップ構成ということになるが、この超大規模だと共有メモリー構造が災いして、PCIe Switchがボトルネックになりそうに思える
チップそのものはTSMCの12nmプロセスで製造され、ダイサイズは709mm2だから決して小さいチップではない。ただ動作周波数は700MHzと意外に抑えられており、その割にINT 8では825TOPSと結構な性能を示す。
ダイ写真を見ると、もう全体の半分以上がローカルメモリーで占められており、Tensor Engine(それぞれのコアに4つづつあるDPとEW)の面積はすごく小さく見えるのだが、仮に全体の25%程度だとしてもトータルで175mm2ほどだから、結構な数の演算器が含まれることになる。
そもそもAlibabaはTensor Engineの内部を今もって説明していないが、700MHz駆動で825TOPSということは、コア1個あたり1サイクルで295 Ops程度の処理ができることになる。MAC演算は2 Ops/サイクルと換算して148 Ops/サイクル程度。17並列のSIMDエンジン×9とかそんな感じになる。
数字があまり普通ではない(17並列のSIMDは普通作らない)ので組み合わせはもう少し異なる(例えば16並列のSIMD×9と、それと並行して動く別のMACユニット×9などかもしれない)とは思うが、ダイサイズ的には無理がない構成だ。

この連載の記事
-
第812回
PC
2倍の帯域をほぼ同等の電力で実現するTSMCのHPC向け次世代SoIC IEDM 2024レポート -
第811回
PC
Panther Lakeを2025年後半、Nova Lakeを2026年に投入 インテル CPUロードマップ -
第810回
PC
2nmプロセスのN2がTSMCで今年量産開始 IEDM 2024レポート -
第809回
PC
銅配線をルテニウム配線に変えると抵抗を25%削減できる IEDM 2024レポート -
第808回
PC
酸化ハフニウム(HfO2)でフィンをカバーすると性能が改善、TMD半導体の実現に近づく IEDM 2024レポート -
第807回
PC
Core Ultra 200H/U/Sをあえて組み込み向けに投入するのはあの強敵に対抗するため インテル CPUロードマップ -
第806回
PC
トランジスタ最先端! RibbonFETに最適なゲート長とフィン厚が判明 IEDM 2024レポート -
第805回
PC
1万5000以上のチップレットを数分で構築する新技法SLTは従来比で100倍以上早い! IEDM 2024レポート -
第804回
PC
AI向けシステムの課題は電力とメモリーの膨大な消費量 IEDM 2024レポート -
第803回
PC
トランジスタの当面の目標は電圧を0.3V未満に抑えつつ動作効率を5倍以上に引き上げること IEDM 2024レポート -
第802回
PC
16年間に渡り不可欠な存在であったISA Bus 消え去ったI/F史 - この連載の一覧へ