このページの本文へ

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

イロモノだと思っていたSamsungのプロセッサー内蔵メモリーがわりと本気だった AIプロセッサーの昨今

2021年10月11日 12時00分更新

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

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

PIMを実装しても消費電力はわずか5.4%の増加で済む

 さて、ここからが新情報だ。ISSCCでの話はハードウェア的な機構のみでソフトウェアの話はほぼなかったが、今回まずGPU向けに、PIMを利用するためのソフトウェアスタックが提供されることが明らかになった。

Native ExecutionとPIM-direct、という2種類の命令パスが用意されているのはおもしろい

 なぜGPU用か? といえば、そもそもHBM2ではCPUに使われるケースが非常に少なく(まもなく登場するSapphire RapidsにはオプションでHBM2を搭載するSKUがあるようだが、現行の汎用CPUでは富士通のA64fxくらいしかない)、ほとんどはGPUかAI向けプロセッサーのみとなる。

 その意味ではCPU用よりもGPU用の方が最初の実装には適切ということだろう。ただ実際のテストプラットフォームは、GPUではなくFPGAだったので、その意味ではFPGA向けのスタックも別途開発されているものと思われる。

 実際に処理を実行した結果が下の画像だ。縦軸は相対性能であり、HBM2をそのままメモリーとして利用した場合のスコアを1.0とし、NativeかPIM-directかは不明だがPIMに処理させた場合の性能比をグラフとして示したものだ。

折れ線はLLC(Last Level Cache)のミスレートとなっており、これはBatch Sizeが大きくなるほど減少している

 興味深いのは、Batch Sizeが小さい場合には大きな性能を発揮するが、Batch Sizeが増えるとむしろ性能が下がることで、このあたりはPIMの構造上、扱うべきデータ量が増えるとBankに収まりきらなくなる、というのが理由かと思われる。

 もっともこの結果だが、AI関連の処理(音声認識)などはオフロード(外部のシステムに渡して負荷を分散)した方が有利というのは理解できるが、GEMMに関してはなにしろ扱えるのがFP16のみなので、科学技術系には精度的に利用が難しい。その意味ではやはりAI向けに特化、と考えるのが妥当だと思われる。

 一方消費電力に関する分析が下の画像である。当たり前だが、PIMが入る分消費電力の絶対量は増えるが、その一方で処理のためにプロセッサー側から激しくデータアクセスが行なわれることがなくなるため、トータルとしては5.4%の増加に留まるとしている。

これだけ見ているとむしろ電力が増えるように見えるが、実際にはプロセッサー側が処理をオフロードしたことで処理負荷が大幅に減っているため、トータルでは大幅な省電力化が可能になる

 講演では実際に処理電力の変動の様子なども示された。これは音声認識の機械学習モデル「Deepspeech 2」をHBM2のみで利用した場合とHBM-PIMで処理した場合の比較で、一番上が処理中の入力波形、中段が入力文章と解析後の文章、下段のグラフがレイテンシーその他のパラメーターで、要するにどちらもほぼ同一の精度で処理を実行できているが、HBM-PIMの方がより高速に処理が可能で、結果として消費電力も少なくなっていることを示している(右側のグラフ)。

処理電力の変動。PDFでは左の変動グラフが入っていなかったので、これのみ講演のキャプチャーを。右下が講演者のJin Hyun Kim氏(Samsung Electronics)

 これらの比較は(明言されてはいないが)GPUベースで行なった模様だ。これはGPUベンダーにHBM-PIMを送り、これを実装したGPUチップを製造してもらって、あとは自社で評価ボードに載せればできる(この程度のことはSamsungならたやすいだろう)。

 ただこれとは別に、XilinxのAlveo U280というアクセラレーターカードを利用した評価プラットフォームを発表した。このU280にはXilinxのVirtex UltraScale+ HBMというHBMスタックを2つ搭載したFPGAが搭載されているが、このHBMスタックをHBM-PIMに張り替えたものだ。

XilinxのAlveo U280。HBMスタックをHBM-PIMに張り替えたというか、実際にはSamsungからXilinxにHBM-PIMを送って、特別版のVirtex UltraScale+ HBMを製造してもらい、これをベースにAlveo U280を作ってもらったのだろう

 これにあわせてFPGA用のソフトウェアスタックも新たに開発したようだ。その結果として、さまざまな処理がFPGA+HBMと比較して2.5倍以上高速化されたとしている。またRNN-Tを実装した場合、性能が2.5倍ほどになり、消費電力を62%削減できたという結果も示された。

FPGA用のソフトウェアスタックも新たに開発。FPGAだと直接メモリーコントローラを叩くコードも実装しやすいので、性能を引き上げる方策は容易にとれそうである

RNN-Tを実装した場合、性能が約2.5倍になり消費電力が62%削減できる。左の図、上側は実行時間に占める処理の比率、下段が消費電力に占める処理の比率で、この一番大きい部分をPIMにオフロードすることで高速化や省電力化が実現したというわけだ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

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

ピックアップ

ASCII.jp RSS2.0 配信中

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