Upgrade to Pro — share decks privately, control downloads, hide ads and more …

NPUわからん

 NPUわからん

NPU って最近聞くようになったけど、いったいどんなプロセッサなのか分からないのでだれか教えてください、という話です(汗
同じ行列演算でも GPU の演算(座標変換等)と NPU の演算(畳み込み演算等)の数学的差が理解できないと腹落ちしないのかもしれない・・・

tsuda.a

May 29, 2024
Tweet

More Decks by tsuda.a

Other Decks in Programming

Transcript

  1. NPU って? • AI処理に特化したユニット? • Neural network (神経組織ネットワーク?) Processing Unit?

    • そもそも AI 処理って何よ? https://atmarkit.itmedia.co.jp/ait/articles/2405/20/news015.html
  2. そして TOPS って何? • CPU や GPU では TOPS という指標はない。

    • てら・オペレーション毎秒、らしい。 • 40TOPS = 40×1012 (40兆回) 演算/秒 • なんて読むの?(テラ・オーピーエス? それともトップス?テラ・オップス?) • 参考 • TFLOPS … てら・ふろっぷす • MIPS … みっぷす/みぷす
  3. CPU とかでは FLOPS という指標がある。 CPU コア数 TFLOPS Core i9(Alder Lake)

    P8/E8 1.18 Xeon Phi (Knights Landing) 72 3.917 GeForce RTX 4090 16384 単精度:82.58 倍精度: 1.29 https://ja.wikipedia.org/wiki/FLOPS • FLOPS = 浮動小数点・オペレーション毎秒 • 1秒当たりの浮動小数点演算実行回数。 • TOPS とは違う。
  4. FPU (FPP) • 浮動小数点演算ユニット • 登場当初は CPU とは別のチップだった • 浮動小数点演算をハードウェアで行う。

    (これがないと、当時の CPU は整数演算しかできなかった) CPU FPU https://commons.wikimedia.org/wiki/File:I386DX-25_IV_SX543_%2B_i387DX_16-33.jpg
  5. SIMD (Single Instruction, Multiple Data streams) • 一つの命令で複数の演算を同時に実行する拡張 • MMX

    Pentium (P55C) から実装 • SSE 以降、浮動小数点演算に対応 (Pentium Ⅲ) • 現在は AVX-512 命令で最大 16 の単精度実数演算が可能。 ※これはコプロじゃないんじゃ?という批判はスルーします(汗 以下同様。
  6. CPU/GPU と NPU の違い • 省電力志向。 • CPU に統合。 •

    CPU に比べて、並列数が膨大? • GPU は高精度浮動小数点演算に対応しているが、NPU は低精度に注力?
  7. ChatGPT に違いを聞いてみた • GPU • 学習に使用 • より高い精度の演算が必要 • FP32(単精度実数/有効桁7桁弱)あたりを使用らしい。

    • NPU • 推論に使用 • 学習ほど高い精度は必要ない • INT8(8bit整数/-128~127?/C言語の char 型相当?)あたりを使用らしい。