TOPSだけ見るな——エッジAIの電力はデータ移動で消える

エッジAIで消費電力を下げたいと思ったとき、多くの人はまず演算量(FLOPsやTOPS)を見る。だが実際にバッテリーを食っているのは、掛け算や足し算そのものではない。データの引っ越しだ。
積和演算は安く、データの移動は高い
現代のチップでは、1回の積和演算(MAC)が使うエネルギーはごくわずかだ。高くつくのは、その計算に渡す数値をどこから持ってくるか、である。チップ外のDRAMから値を1つ読むコストは、演算そのものの数百倍から千倍に達する。チップ内のSRAMからの読み出しはずっと安いが、それでも演算より高い。
つまりニューラルネットを動かすときの電力の主役は計算ではなく、重みと中間出力(アクティベーション)をメモリと演算器の間で往復させる転送なのだ。これがいわゆる「メモリ壁」、フォン・ノイマン・ボトルネックの正体である。
だから設計は「データ局所性」で戦う
この視点に立つと、定番テクニックの理由が一本につながる。
-
量子化(FP32→INT8)が効くのは、計算が速くなるからというより、動かすバイト数が約1/4になり転送エネルギーが減るから。
-
シストリックアレイやタイリングは、一度読んだ重みを使い回し、DRAMアクセスを減らす工夫。
-
モデル全体がSRAMに載るなら、DRAMにこぼさず回せて電力が一気に下がる。
TOPSは小さくてもオンチップメモリが大きいチップが、高TOPSでもDRAMへ頻繁にアクセスするチップに勝つことがあるのは、このためだ。
現場でのチェックリスト
-
スペックはTOPSだけでなく、メモリ帯域とオンチップSRAM容量を見る。
-
モデルがSRAMに収まるか。収まらないなら量子化や枝刈りで削る。
-
「演算1回あたり何バイト動かすか」(演算強度)を見積もり、ルーフラインモデルで律速がメモリか計算かを判断する。
-
データシートのピーク値ではなく、実機で実電力を測る。
電力を制したければ、計算を速くする前に「データを動かさない」設計を考える。これがエッジAIの効きどころだ。
お役立ち情報
- 📄 東工大ニュース - 「メモリの壁」を突破する超省電力・高速なAIチップ開発
- エッジデバイスでのAI処理において、メモリ転送ボトルネック(メモリの壁)を解消するための国内先端技術研究に関する紹介記事。
- 📺 YouTube - The Memory Wall & Cache Hierarchy - CrashCourse Computer Science
- プロセッサ速度とメモリ転送のボトルネックをコンピュータ科学の歴史から分かりやすくアニメーションで解説する動画(英語)。