ロードマップでわかる!当世プロセッサー事情 第636回
イロモノだと思っていたSamsungのプロセッサー内蔵メモリーがわりと本気だった AIプロセッサーの昨今
2021年10月11日 12時00分更新
3ヵ月近く間が空いてしまったが、AIプロセッサーに戻りたい。今週のお題は、SamsungのPIM(Processor In Memory)である。このSamsungのPIMは連載606回で一度触れている。この時はISSCCにおける発表をベースにPIMの内部構造をお届けした。
実のところ、この時の説明はまだ研究室レベルの話であり、それもあって記事の最後では「今回のものはあくまでも研究レベルの話で、今すぐこれで製品を実用化できるものではない。研究レベルであれば問題ないが、実際にこれを利用するためには開発環境と稼働環境について、OSレベルから手を入れる必要がある(少なくとも今のLinuxのままでは動作しない)」と書いたのだが、今年のHot Chipsでこれをひっくり返す発表があった。
データの移動を減らして電力を下げるため
プロセッサーをメモリー内部に入れるアイデア
PIMについて簡単にまとめておけば、AIに限らず処理性能を高めつつ消費電力を抑えようとすると、どうしてもデータの移動が大きな問題にならざるを得ない。単に、高い処理性能のためには高いメモリー帯域が必要というだけでなく、メモリーとCPUの間でのデータ移動に必要な電力が高くなりすぎる、という問題である。
これを一気に解決するのが、プロセッサーをメモリー内部に入れるというアイディアだ。PIMがProcessor In Memoryの略なのは、まさにこれを狙った効果である。
「ノイマン型プロセッサーは煩雑にメモリーとの間でデータのやり取りが行なわれる」とまで描かれてしまうと、なんと評したものか……。Hot Chipsは一応IEEEが主催する学会なので、こういう大げさな表現も許されると言えば許されるのだが
もっともここにx64コアやArm v9コアなどを突っ込むのはさすがに無理がある。プロセッサーの実装密度はメモリーと比較して桁違いに大きいからだ。
例えば1bitの記憶素子を構成するのに、DRAMならトランジスタ1個、SRAMでもトランジスタが8個あれば足りる。32bit演算(C=A+B)を実現するのに、記憶領域はA~Cそれぞれ32bitづつ必要だから、DRAMならトランジスタ96個、SRAMなら768個必要になる。
これに対してプロセッサーは、Intel 4004ですら2200個、8080なら4500個ほどだ。32bit演算が普通にできる80386だと、トランジスタ数は27万5000個である。要するに、汎用のプロセッサーをメモリーに組み込もうとすると、メモリーとプロセッサの比率がかなりおかしなことになる。
これは汎用プロセッサーを組み込もうとするから無理があるのであって、特定機能に絞ったプロセッサーを作れば回路規模もずっと小さくなるので、メモリーに組み込むことも現実的になる。SamsungのPIMの場合、畳み込み演算に必要な乗加算と積和回路のみを実装することで回路規模を最小に抑えたことで、HBM2メモリーセルと混載させることが可能になった。
具体的な混載のさせ方、PIMがサポートする命令やPIMに対する命令の与え方、PIMとDRAMセルとのデータのやり取りの方法といった技法は連載606回で説明した通りだが、今回もう少し詳細も明らかにされたのでこちらを説明したい。
ちなみにSamsungはHBM2メモリーにAquaboltという商品名を付けており、それもあって今回のHBM2ベースのPIMはAquabolt-XLという名称が付けられている。
まずPIMの内部構造について説明しよう。連載606回では下図で説明したが、これをもう少し見やすくしたのがその下の画像だ。
PIMの演算ユニットは16レーンのFP16 SIMDエンジンというのは今回初発表である。命令種類が全部で9つ、というのは606回でも説明したが、その内訳が下の画像だ。
RISC風命令とあるのは、演算結果は汎用レジスターにしか書き出さないというあたりであろうか。これをメモリーセルに戻すには、そのあとMOVE命令を実行する必要があるわけだ。
また連載606回で「論文を読む限りは、すべてのPCUには共通の命令が与えられることになり、一斉に処理する格好になる。」と書いたが、この詳細が下の画像だ。
この遷移に関してはPIMのConfiguration Registerに値を設定することで実施される格好だ。復帰は同じくConfiguration RegisterのABMR(All-Bank Mode Register)に0を設定することで行なうようだが、PIMのプログラムからの復帰はできないのだろうか?
Single BankとAll Bankはメモリーセルへのアクセスのみであり、PIMを動かすのはAll BankからAB-PIMモードに推移させることで行なわれる格好だ。全バンク一緒に動作、ということなのでやはり全PCU上では同一のプログラムが稼働する格好になると思われる。

この連載の記事
-
第852回
PC
Google最新TPU「Ironwood」は前世代比4.7倍の性能向上かつ160Wの低消費電力で圧倒的省エネを実現 -
第851回
PC
Instinct MI400/MI500登場でAI/HPC向けGPUはどう変わる? CoWoS-L採用の詳細も判明 AMD GPUロードマップ -
第850回
デジタル
Zen 6+Zen 6c、そしてZen 7へ! EPYCは256コアへ向かう AMD CPUロードマップ -
第849回
PC
d-MatrixのAIプロセッサーCorsairはNVIDIA GB200に匹敵する性能を600Wの消費電力で実現 -
第848回
PC
消えたTofinoの残響 Intel IPU E2200がつなぐイーサネットの未来 -
第847回
PC
国産プロセッサーのPEZY-SC4sが消費電力わずか212Wで高効率99.2%を記録! 次世代省電力チップの決定版に王手 -
第846回
PC
Eコア288基の次世代Xeon「Clearwater Forest」に見る効率設計の極意 インテル CPUロードマップ -
第845回
PC
最大256MB共有キャッシュ対応で大規模処理も快適! Cuzcoが実現する高性能・拡張自在なRISC-Vプロセッサーの秘密 -
第844回
PC
耐量子暗号対応でセキュリティ強化! IBMのPower11が叶えた高信頼性と高速AI推論 -
第843回
PC
NVIDIAとインテルの協業発表によりGB10のCPUをx86に置き換えた新世代AIチップが登場する? -
第842回
PC
双方向8Tbps伝送の次世代光インターコネクト! AyarLabsのTeraPHYがもたらす革新的光通信の詳細 - この連載の一覧へ
















