コンテンツにスキップ

NPUとは

NPUとは、ニューラルネットワークの計算だけを引き受けるために、チップへ載せる専用の演算ユニットです。 AIの電力を食うのは演算よりデータの移動で、NPUはその往復とむだな演算を削ります。代わりに、特定の計算へ専用化した分だけ硬くなり、受け持たない演算にはCPU側の実装が要ります。設計の勝負どころは、どれだけ運ばずに済ませるかと、硬さをどう補うかの2点です。

100Wクラスの推論を数Wへ収めるために、専用の演算ユニットを載せる

Section titled “100Wクラスの推論を数Wへ収めるために、専用の演算ユニットを載せる”

Armは、NPUをニューラルネットワークが使うテンソル演算のための専用アクセラレータ1と位置づけています。畳み込みや行列積は、大量の積和演算(MAC)でできています。中核は積和演算ユニットで、ニューラルネットワークで多用される積和演算に特化した演算器を大量に並べ、並列に動かして高速に処理します2。AIアクセラレータは、ニューラルネットワークなど機械学習のアルゴリズムを実行するエンジンです。

ルネサスのMPU「RZ/V2L」は、同社独自のAIアクセラレータ「DRP-AI」と1.2GHzのデュアルコアArm Cortex-A55 CPU、3Dグラフィックス、ビデオコーデックエンジンを載せた汎用マイクロプロセッサです3。仕様表では3D GPUがArm Mali-G31で、NPUの欄はYesです。1つのチップの中に、絵を描く演算ユニットとAIの計算を担う演算ユニットが別々に用意されています。

専用の演算ユニットをわざわざ載せる理由は、電力と発熱です。AI推論には大量の演算が必要なため、既存のAIチップでは発熱が実用化の障害になり、カメラやロボットへ載せるには発熱抑制のためのファンが要ります2。ファンは実装コストとスペース、そして騒音と故障を持ち込みます。100Wクラスのパソコンで動かすような高度なAI推論を数W以内へ収める性能が要ることが、NPUという専用ユニットが生まれた理由です。ArmのEthos-Uシリーズも、演算能力、メモリ、電力、シリコン面積に制約のある組み込みとエッジのシステムを対象にしています。

大規模な学習は別の場所が担います。産業技術総合研究所のABCI 3.0はGPUを6,128基そろえたシステムで、NPUは手元の機器で学習済みの判断を走らせる側です。

NPUを載せてもCPUは残り、起動と制御の流れを受け持つ

Section titled “NPUを載せてもCPUは残り、起動と制御の流れを受け持つ”

NPUを載せても、CPUはシステムに残ります。ArmのEthos-Uの例では、CPUが推論ランタイムのExecuTorchを起動し、メモリを設定し、NPUへ委譲した区間を呼び出し、入出力とアプリケーションの制御の流れを受け持ちます。委譲から外れたモデルの演算には、ランタイム上に互換のCPUカーネルが要ります1。NPUが受け持つのは、委譲された区間だけです。

CPUとNPUの分担
NPU(Ethos-U85、MAC 256個)CPU起動・メモリ設定畳み込み行列積委譲外の演算入出力委譲した区間CPUカーネルが要る
NPUが引き受けるのは委譲された畳み込みや行列積の区間だけで、起動、メモリ設定、入出力、委譲から外れた演算はCPUが受け持ちます。

Ethos-Uは構成ごとにMACユニットの数が異なり、Ethos-U85では256個の構成があります。

電力を食っているのは、演算よりデータの移動

Section titled “電力を食っているのは、演算よりデータの移動”

2021年6月時点で、AIアクセラレータの消費電力は、行列演算そのものによる分に加えて、アクセラレータ内部と外部メモリのあいだのデータ移動による成分も大きくなってきています4。

GPGPUの高並列演算で広く使われるim2colという手法が、その例です。3×3のフィルタを使う畳み込み演算では、1画素のデータが9回のフィルタ演算に使われます。im2colは行列演算の並びに合わせて画像データをあらかじめ並べ直すため、1画素が9か所へ複製され、データ量が9倍にふくらみます4。

データの複製と使い回し
im2col(GPGPU)画像3×3フィルタ同じ画素が9か所 → データ量9倍DRP-AI外部メモリ・内部バッファロード回数 最大9分の1同じ1画素レジスタ
im2colは同じ1画素を9か所へ複製してデータ量を9倍にし、DRP-AIは取り込んだデータを隣のレジスタへ送って使い回し、ルネサスは演算器へのロード回数が最大9分の1になるとしています。

DRP-AIの積和演算ユニットは、取り込んだデータを隣のレジスタへ送りながら使い回します。ルネサスは、これにより外部メモリと内部バッファから演算器へのデータロード回数が、GPUと比べて最大で9分の1になるとしています。DRP-AIの設計が削っているのは、演算の回数より、演算器へデータを運ぶ回数です。

入出力の半分以上がゼロなので、その演算を飛ばす

Section titled “入出力の半分以上がゼロなので、その演算を飛ばす”

画像認識のAIでは、全レイヤの平均で50%以上の入出力データがゼロの値になります4。積和演算の結果がマイナスになったものをゼロへ置き換える活性化関数が広く使われているためです。ゼロを掛けた結果はゼロなので、この演算を走らせても答えは同じです。

ゼロの演算を省く
活性化の前活性化の後積和演算負の値ゼロ実行するゼロを検知して省く
負の値をゼロへ置き換える活性化関数の後では入出力の半分以上がゼロになり、DRP-AIはゼロが来る演算を事前に検知して動かしません。

DRP-AIは、演算の要素ごとに入力へゼロが来ることを事前に検知して、その動作を省くスイッチングを備えています。同社は、この仕組みで不要な演算にかかる電力を削っているとしています。認識精度への影響が小さい演算を省いて演算量を減らすスパース性の活用と同じ方向の工夫です。

演算を9割削って、精度の低下は3%程度

Section titled “演算を9割削って、精度の低下は3%程度”

NEDOとルネサスは2022年12月に、この方向をさらに進めた測定値を発表しました。認識精度への影響が小さい演算を省くプルーニング(枝刈り)という手法をAI軽量化に使い、演算量を最大90%削減しても、認識精度の低下は3%程度にとどまり、ほぼ同等の精度を保てたとしています。

難しさは、省ける演算の散らばり方にありました。AIモデルの中で認識精度に影響しない演算は不規則に散らばっているのが一般的で、ハードウェアの並列処理と枝刈りの不規則さが噛み合わず、効率よく処理できないことが大きな課題でした2。両者は、演算量を最大90%削減する枝刈り率のAIモデルで、従来技術と比べて最大10倍の高速化と1W当たり最大10TOPSの電力効率を達成したとしています。同社の現行製品と比べても10倍以上とされています。この数字は、10分の1に軽量化した畳み込み層を試作チップで評価した結果で、両者は製品化されているエンドポイント機器向けAIプロセッサーとして世界トップレベルの実効効率だとしています。

専用にした分だけ硬くなり、動的再構成で補う

Section titled “専用にした分だけ硬くなり、動的再構成で補う”

特定のAI演算に特化した専用ハードウェアは消費電力を抑える手立てですが、AIモデルは日々進化しているため、特定のAIに特化したハードウェアはすぐ陳腐化します4。

ルネサスの答えが、動的再構成という方式です。DRP(動的再構成プロセッサ)は、チップ内の演算器の回路接続構成を処理内容に応じて動作クロックごとに切り替えながらアプリケーションを実行し、必要な演算回路だけが動くので消費電力が小さく、高速化もできる2とされています。このDRPと積和演算ユニット(AI-MAC)を一体にしたものがDRP-AIです。同社は、学習済みモデルを実行ファイルへ変換するソフトウェアを継続して更新することで、ハードウェアを変えずに新しいAIモデルへ対応できるとしています。

柔軟さは学習にも使われています。NEDOとルネサスは、DRPが学習アルゴリズムの実装までこなせる柔軟性を持つことを利用し、DRP-AIの中でAIの実行と追加学習を同時並行で進めるエンドポイント学習技術を開発しました。両者は、低消費電力でリアルタイムに応答するAI機器として、セキュリティカメラや自動搬送車、サービスロボットなどの装置に組み込めるとしています。

冷却でも差が出ています。ルネサスの試作実験では、TinyYolov2を動かしたとき、市販のGPUがヒートシンク付きで表面温度79.0℃だったのに対し、DRP-AIの試作品はヒートシンクなしで40.9℃、フレームレートは42fpsでした。製品版のRZ/V2Lも、ヒートシンクや冷却ファンなどの放熱対策が不要とされています。

こうした専用チップの開発は、公的な事業としても続いています。NEDOの「高効率・高速処理を可能とするAIチップ・次世代コンピューティングの技術開発」は、事業期間が2016年度から2027年度で、2024年度の予算額は48億円です5。

NPUとは何ですか?

ニューラルネットワークのテンソル演算だけを引き受けるためにチップへ載せる専用の演算ユニットです。ルネサスのMPU「RZ/V2L」の仕様表にはNPUの欄があってYesと記され、そのAIアクセラレータは同社の「DRP-AI」です。

GPUとどう使い分けますか?

置き場所と役割で役目を分担します。産業技術総合研究所のABCI 3.0のように、大規模な学習はGPUを6,128基そろえたシステムが担います。手元の機器で学習済みの判断を走らせる部分を、NPUが小さな電力で引き受けます。

なぜAIの計算はそんなに電力を食うのですか?

演算そのものに加えて、データの移動が電力を占めるためです。AIアクセラレータの消費電力では、内部および外部メモリとのデータ移動による成分が大きくなってきています。

積和演算とは何ですか?

掛け算した結果を足し合わせる計算です。畳み込みや行列積は大量の積和演算でできているので、これに特化した演算ユニットを大量に並列動作させると高速化できます。

プルーニングとは何ですか?

認識精度への影響が小さい演算を省くAI軽量化の手法です。NEDOとルネサスは、演算量を最大90%削減した場合でも認識精度の低下は3%程度にとどまったとしています(モデルによって異なります)。

TOPSとは何ですか?

1秒あたりの演算回数を兆回単位で表す言葉です。NEDOとルネサスは、1W当たり10TOPSという電力効率を2022年12月に発表しました。1W当たりの値が大きいほど、同じ量の演算をより小さな電力で終えられます。

専用にすると困ることはありますか?

柔軟性を手放す点です。特定のAIに特化したハードウェアはAIモデルの進化ですぐ陳腐化するため、ルネサスは回路のつなぎ方を動作クロックごとに切り替える方式でこれに備えました。ArmのEthos-Uでは、NPUへ委譲されない演算に互換のCPUカーネルが要ります。

  • GPUとは── 描画のために育ち、汎用の並列演算へ広がった側
  • ASICとは── 用途を1つへ絞って作る、専用化そのものの考え方
6件を表示
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6