このページの本文へ

ロードマップでわかる!当世プロセッサー事情 第560回

Centaurの新製品はAIコプロセッサー内蔵のx86互換CPU VIAのCPUロードマップ

2020年04月27日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/) 編集●北村/ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

16個のスライスに分割した
巨大な32768bit幅のSIMD

 各々のスライス構造を示したのが下の画像である。

物理的には16個のスライスに分かれているものの、処理そのものは16個のスライスが同期して動く形になるので、本当に巨大な32768bit幅のSIMDなわけだ

Ncoreのワークフロー

(0) Bus Subsystem経由でD-RAM(Data RAM)とW-RAM(Weight RAM:ネットワークの重みを格納する領域)にデータが格納される(これは処理パイプラインの外)

(1) NDU(Neural Data Unit)が4096Bytes分のデータとWeightを読み込み、これの並べ替えや回転、Edge Swap、あるいは前サイクルで処理の終わった出力画像の取り込みといった処理を1サイクルで実行する。

(2) NPU(Neural Processing Unit)で処理する。処理はMAC(乗加算)と加減算、最大/最小、論理命令その他をサポート。9bit/16bit整数とBFloat16が取り扱える。9bit整数ならMACが1サイクル、BFloat16でも3サイクルで処理できる。ちなみにデータ型そのものは8/16bit整数とBFloat16で、8bit整数は内部で9bit化して処理される。ここでWeightのデータを基に、データをネットワーク構造にあわせて処理する。

(3) OUT-unitでは、NPUの結果の量子化やReLU(ランプ関数)/Tanh/シグモイド関数を利用した活性化、出力の正規化などが行なわれ、結果がD-RAMないしNDUに引き渡される。ほとんどの処理は1~3サイクルで完了するが、例えば8:1の重ね合わせなどは最悪値で10サイクルほど要する

 ここで1回分のデータ(例えば映像処理なら1フレーム分の画像データ)が完了するまで(1)~(3)をパイプライン式に繰り返し、終わったら(0)に戻る、という形である。

 一方制御命令であるが、128bit幅のもので、これを見ると限りなくVLIWに似ている。ただし詳細は未公開である。

制御命令は128bit幅だが詳細は不明。きっと以前と同様、秘密保持契約を結ぶと開示されるのであろう

 このあたりは昔のVIA C3などで提供されてきた独自拡張命令に近い感じに見える。ただ必要なツールやスタックはCentaurから提供されるので、直接アプリケーションプログラマーがこれを触る必要はない、としている。

 さてNcore、構造そのものはシンプルながら、なにしろ32Kbit幅のデータパスであるから、それなりに実装は困難だったらしい。

これを2.5GHzで動かすのも確かに大変。そこらのAIアクセラレーターよりはるかに難易度の高い構成になってるのは気のせいだろうか?

 下の画像がNcoreのうちでロジック部のアップである。この部分だけで11mm2というのは、性能を考えるとかなり小さい方である。

ロジック部のアップ。実際には、NCORE COMPUTEの倍近い面積を必要とするNCORE RAMも必要になるので、実質的なエリアサイズは30平方mm超と思われる

※お詫びと訂正:制御命令の名称に誤りがりました。記事を訂正してお詫びします。(2020年5月1日)

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン