TL

Tensorコアと行列演算アクセラレータの仕組み

なぜAI向けGPUは桁違いに速いのか。行列積をハード化するTensorコアと混合精度の原理を押さえ、TFLOPS表記の読み方と性能の勘所が掴めます。

応用TensorコアGEMMシストリックアレイ混合精度AIアクセラレータ最終更新: 2026-06-21
TL;DR要点だけ先に
  • 1.Tensorコアは小行列の積和(例 4x4)を1命令で一括処理する専用回路で、シストリックアレイ風にデータを流して大量の積和を並列実行する。
  • 2.入力をFP16/BF16/FP8/INT8など低精度にし、累算だけFP32で行う混合精度により、帯域とトランジスタを節約しつつ精度を保つ。
  • 3.GEMM(行列積)はデータ再利用が大きく低精度に強いため、AIの主要演算はTensorコアで通常のFP32演算より一桁速くなる。

なぜ行列積を専用回路にするのか

ディープラーニングの計算の大半は GEMM(General Matrix Multiply、行列積) です。全結合層も畳み込みも注意機構も、突き詰めれば大きな行列同士の積に落ちます。行列積は C = A × B で、C の各要素が「A の1行と B の1列の内積」、すなわち積和(multiply-accumulate, MAC)の連続です。

汎用の演算器でこれを回すと、要素1つを計算するたびに命令フェッチ・デコード・レジスタ読み書きが発生します。GPUのSIMT実行で多数のスレッドに分散しても、MAC 1回あたりの制御オーバーヘッドは残ります。そこで「積和を大量に・固定パターンで行う」という性質に特化し、小さな行列積を丸ごと1命令で処理する専用回路を置いたのが Tensorコア(NVIDIA の呼称。一般には行列演算ユニット、MMA ユニット)です。

行列積はデータ再利用が大きい

N×N の行列積は演算量が N の3乗のオーダー、入力データ量は N の2乗のオーダーです。つまり1要素を読むほどに何度も使い回せる「演算密度の高い」処理で、メモリ帯域より演算器の数が効きます。だからこそ演算器を敷き詰める専用ハードが報われます。

シストリックアレイ ─ データを流して積和を稼ぐ

行列演算アクセラレータの古典的な実装が シストリックアレイです。心臓(systole)が血液を送り出すように、データを格子状に並べた PE(処理要素、各PEは1個のMAC器) へ規則正しく流し込みます。

シストリックアレイ(積和の格子)
        B列 → → →
  A行 ┌───┬───┬───┐
   ↓  │PE │PE │PE │   各PE: acc += a * b して
   ↓  ├───┼───┼───┤   a を右へ、b を下へ受け渡す
   ↓  │PE │PE │PE │
      └───┴───┴───┘

各 PE は毎サイクル「流れてきた ab を掛けて自分の累算器に足し、a を右隣へ、b を下隣へ送る」だけを行います。データは外周から一度入れれば、あとは PE 間をバケツリレーで伝播するので、1つの入力値が多数の PE で再利用され、レジスタファイルや SRAM への往復が激減します。N×N のアレイなら毎サイクル N の2乗回の MAC を、わずかな制御で実行できます。Google の TPU はこの方式を大規模化したものです。

NVIDIA の Tensorコアはアレイをそのまま露出する代わりに、D = A × B + C という小行列の積和を1つの命令(MMA)で実行する形を取ります。内部では同様に多数の MAC を空間的に並べて一括処理しますが、ワープ(32スレッド)が協調して断片を持ち寄る点が GPU 流です。

累算する C があるのが肝

Tensorコアの基本演算が「積 A × B に既存の C を足し込む」形なのは、大きな行列積をタイル(小ブロック)に分割して部分積を足し上げるためです。大行列を一度に置けないので、小タイルの積和を繰り返し累算して最終結果を組み立てます。

混合精度 ─ 入力は低精度、累算はFP32

Tensorコアが効率的な最大の理由が 混合精度(mixed precision) です。乗算の入力には FP16・BF16・FP8・INT8 といった低ビット幅を使い、積を足し込む累算器だけは FP32(または INT32)の広い精度を保ちます。

なぜ分けるのか。掛け算は入力の精度が低くても、結果を足し合わせる段で誤差が累積します。多数の積を低精度のまま足すと桁落ちで精度が崩れますが、累算器を広く取れば、入力を削っても全体の精度は実用上保てます。一方で入力を低精度にすると、データ量が半分・1/4になりメモリ帯域とキャッシュ占有が減り、同じ面積により多くの乗算器を詰め込めます。

形式ビット幅特徴主な用途
FP3232基準精度。指数8・仮数23従来演算・最終累算
FP1616仮数10で精度高いが指数5で範囲が狭い学習・推論
BF1616指数8でFP32と同じ範囲。仮数7学習(範囲重視)
FP88E4M3/E5M2。さらに高密度大規模学習・推論
INT88整数。要量子化推論(量子化後)

BF16 と FP16 の違いは資格・実務で頻出です。両者とも 16 ビットですが、FP16 は仮数(精度)を、BF16 は指数(ダイナミックレンジ)を優先します。学習では勾配が極端な大小を取るため、範囲が FP32 と同じ BF16 が扱いやすく、損失スケーリングなしで安定しやすいのが利点です。FP8 は指数4・仮数3の E4M3 と、指数5・仮数2の E5M2 を用途で使い分けます。

低精度化はタダではない

ビット幅を削るほど表現できる値が粗くなり、量子化(特に INT8)では値域のスケーリングや外れ値処理を誤ると精度が大きく劣化します。混合精度が成立するのは「累算を広く保つ」「範囲に合った形式を選ぶ」前提があってこそで、闇雲に全部を FP8 にすれば速いわけではありません。

TFLOPS換算と「GPUが速い」の正体

カタログの TFLOPS(毎秒1兆回の浮動小数点演算) は、ざっくり次で決まります。

ピークFLOPS ≒ (MAC器の数) × (クロック周波数) × 2
  ※ 1回のMAC = 乗算1 + 加算1 で2 FLOP と数える

Tensorコアが通常のFP32演算より一桁以上速いのは、この式の MAC器の数を稼げるからです。混合精度で1つの乗算器が小さくなる分、同じシリコン面積により多くの器を敷き詰められ、さらに低精度ほど器あたりの面積が小さいので FP16 はFP32の数倍、FP8/INT8 はさらに倍のスループットが出ます。

ただしこれは理論ピークです。実効性能は、行列が小さくアレイを埋めきれない、タイルの端数で器が遊ぶ、入力供給がキャッシュ/メモリ帯域に律速される、といった要因で下がります。実測の指標が MFU(Model FLOPs Utilization、ピークに対する到達率) で、これが GPU を使いこなせているかの目安になります。

試験のポイント

「TensorコアはGEMMの積和を1命令で一括処理する専用回路」「シストリックアレイはデータをPE格子に流して再利用し積和を稼ぐ」「混合精度は入力を低精度(FP16/BF16/FP8/INT8)、累算をFP32にする」「BF16はFP16より範囲が広く学習向き」「TFLOPSはMAC数×周波数×2で、低精度ほど高い」の5点を押さえましょう。

まとめ

  • AIの計算の大半は GEMM(行列積) で、積和の繰り返しという固定パターンを専用回路化したのが Tensorコア
  • シストリックアレイはデータを PE 格子に流して各値を多数の器で再利用し、わずかな制御で大量の MAC を並列実行する。
  • 混合精度は乗算入力を FP16/BF16/FP8/INT8 に落とし累算を FP32 に保つことで、帯域と面積を節約しつつ精度を維持する。BF16 は範囲重視で学習向き。
  • ピーク TFLOPS は MAC 数×周波数×2 で決まり、低精度ほど器を詰め込めて速い。実効性能は供給帯域とタイル充填率で決まる。

Tensorコアは「行列積に絞って演算器を敷き詰め、精度を必要な分だけ使う」設計です。土台にある並列実行とメモリ階層はGPUのSIMTアーキテクチャキャッシュメモリの原理も合わせてどうぞ。

CPU/メモリ/ディスク Article

Tensorコアと行列演算アクセラレータの仕組みを実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

Tensorコア

比較で見る軸

難易度: advanced / カテゴリ: CPU/メモリ/ディスク / タグ数: 5

導入後に効く点

入力をFP16/BF16/FP8/INT8など低精度にし、累算だけFP32で行う混合精度により、帯域とトランジスタを節約しつつ精度を保つ。

先に潰すリスク

用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。

数字・仕様の読み方
難易度
advanced
カテゴリ
CPU/メモリ/ディスク
タグ数
5

判断チェックリスト

  • 自社の用途が「Tensorコア / GEMM」に近いか確認する。
  • 強みである「Tensorコアは小行列の積和(例 4x4)を1命令で一括処理する専用回路で、シストリックアレイ風にデータを流して大量の積和を並列実行する。」が本当に評価軸になるか確認する。
  • 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

TensorコアGEMMシストリックアレイ混合精度AIアクセラレータTensorコアGEMMシストリックアレイ
参考: 公式情報