このページの本文へ

前へ 1 2 3 次へ

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

インテルがAIプロセッサーに関する論文でIntel 4の開発が順調であることを強調 AIプロセッサーの昨今

2022年06月27日 12時00分更新

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

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

 今年6月13日から開催されたVLSI Symposium 2022はいろいろ話題が多く、例えばインテルはIntel 4の詳細を公開していたりする。この話はまた改めてきちんと説明するが、インテルは今回全部で15もの発表を行なっている。もっともこの中にはShort Course(技術講座)の分も含まれているので、論文そのもので言えば12本となっている。

 論文の中に、“[C08-1] An 8-core RISC-V Processor with Compute near Last Level Cache in Intel 4 CMOS”と呼ばれるものがある。これだけ見ると「Intel 4プロセスを使ったRISC-Vコア?」ということでちょっとびっくりしたのだが、中を見ると「そりゃRISC-V使った方が楽だよね?」という、分類としてはAIプロセッサーに属するものだった。

 これはあくまで研究レベルの話で、そのまま製品になることはなく、将来のx86プロセッサーに応用される「かもしれない」レベルの話であるが、なかなかおもしろかったので解説したい。

Intel 4プロセスのAIプロセッサー

 さてこの論文であるが、タイトルの中で重要なのは“An 8-core RISC-V Processor”でも“in Intel 4 CMOS”でもなく、“with Compute near Last Level Cache”である。要するに分類としては、連載668回でも触れたPIM(Processor In Memory)の延長にある。

 ただPIMはメモリベンダーには容易なソリューションなのだが、そうでないとまずメモリーを構築するところから始まるので大変である。これに対して、Last Level Cacheは、インテルで言えば3次キャッシュに演算ユニットを突っ込むのはそれほど大変なことではない。

左は現在のインテルのプロセッサーの構成で、右が今回提案する方式である

 さて、もうすこし厳密にCompute Unitをどこに入れるか? を検討したのが下の画像だ。CPUコア内に置くのが一番悪手というのはわかるとして、アクセラレーター/LLC/DRAMのどこで置くのがベターか? というのはエネルギー効率、容量、帯域の観点でトレードオフの関係になる、としている。

アクセラレーター方式が一番汎用性が低い、というのはやや怪しい気はする。ただエネルギー効率は(ScratchPadを使って処理を行なう限りは)一番効率が高いだろう

 インテルは今回、LLCの中にCompute Unit(CNC)を実装することで、それなりに高い演算性能とメモリー帯域・容量をバランスよく利用できるようにする選択肢を選んだ格好だ。

 この効果を試すためのプラットフォームとしてインテルはRISC-Vコアを選んだ。この構図はCoreアーキテクチャーのRing Busを彷彿させるが、厳密にはRing Busではなく2D Meshの構成になっている。8つの64bit RISC-Vコアに、それぞれ64KBのSRAMとCNCを組み合わせて配する格好で、2次キャシュ(今回の構成はRISC-VはL1 I/D-Cacheのみ搭載されている)の合計は512KBになる。なんというか非常に小規模なコアである。

x86ではL3にCNCを入れる格好になるだろうから、CNCの効果を確かめるのはやや面倒くさいのは事実だ。あとx86に手を入れるのそのものが超面倒くさい、という話もある

 ここに搭載されるCNCであるが、256bit幅の比較的単純なSIMDで、演算も可能なのはMAC演算のみである。命令も演算(MACCNC)以外にLLCからのロードとLLCへのストアー(Load/Store)、CNC用のRF(Register File)への書き込みと読み出し(RDCNC/WRCNC)の5種類のみとなっている。

PIMに比べると、メモリーアクセスのコマンドパケットにあれこれ細工しなくても直接リクエストを出せるようにできるという意味では実装は楽だっただろう

 もちろん演算そのものはCNCに隣接したLLCとの間でしか行なわれない形になっている。

MAC演算を行なった後の総和は、RDCNC命令の中で取ることになっているというのがおもしろい。逆に言えば、総和を取るような演算しか想定していないということだろう

 演算の詳細そのものはこちらのスライドでは明記されていないが、論文の方を読むと“CNC multiplies an 8×8 INT8 Matrix by an 8×1 INT8 Vector and accumulates the INT32 result in RFCNC”とあるので、INT8の8×8の行列と8×1行列の乗算を行ない、その結果をINT32としてCPUコアの側の汎用レジスターに送り出す、という処理をするとしている。

前へ 1 2 3 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

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

ピックアップ

ASCII.jp RSS2.0 配信中

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