AIや高性能計算(HPC)の分野では、計算性能を高めるために
並列計算アーキテクチャが重要な役割を果たしてきました。
2000年代まではCPUのクロック周波数向上によって性能が向上してきましたが、
消費電力や発熱の問題から単純なクロック向上は難しくなりました。
その結果、現在のコンピューティングでは
並列処理による性能向上が主流になっています。
特にAI計算の世界では、並列処理の方式は次のように進化してきました。
SIMD → SIMT → Tensor → Dataflow
それぞれの段階で、並列処理の対象や計算モデルが変化しています。
SIMD(Single Instruction Multiple Data)
SIMDはCPUで広く使われている並列計算方式です。
SIMDは1つの命令で複数のデータを同時に処理する仕組みです。
画像処理や信号処理など、
同じ演算を大量のデータに対して行う処理に適しています。
代表例
- Intel SSE
- Intel AVX
- ARM NEON
SIMT(Single Instruction Multiple Thread)
SIMTは主にGPUで採用されている並列計算モデルです。
SIMTでは多数のスレッドが同じ命令を同時に実行します。
ただし重要な点として、
SIMTは内部的にSIMDの仕組みを利用しています。
例えばNVIDIA GPUでは
Warp(32スレッド)
という単位で命令が実行されます。
このWarpはハードウェア内部では
SIMDユニットとして一斉に動作
しています。
つまりSIMTは、
SIMDの考え方を拡張し、大量のスレッドを扱いやすくしたモデル
と言えます。
Tensor(Tensor Core / AIアクセラレータ)
AI計算ではさらに専用化された並列計算方式が使われています。
それがTensor演算です。
Tensor Coreは行列演算を高速化する専用回路です。
AIのニューラルネットワークでは、
膨大な行列計算が行われます。
C = A × B
Tensor Coreの最大の特徴は
積和演算(FMA)です。
D = A × B + C
この計算を1クロックで大量に実行できます。
さらに現在のAI計算では
混合精度演算が重要になっています。
- FP16
- BF16
- INT8
- INT4
精度を適切に調整することで、
消費電力と演算速度を大きく改善できます。
Google TPUとSystolic Array
GoogleのTPUは
Systolic Array(シストリック・アレイ)
という方式でTensor演算を実装しています。
これは行列計算を
データを流しながら処理するパイプライン構造
で実行する方式です。
この構造により、
非常に高い演算密度を実現しています。
TenstorrentとDataflow Architecture
AIチップ分野では
Tenstorrent(テンストレント)
という企業も注目されています。
Tenstorrentは
RISC-VベースのAIプロセッサ
を開発している企業です。
同社のチップでは
Dataflow Architecture
という設計思想が採用されています。
Tenstorrentの最大の特徴は、
Tensixコアと呼ばれる計算ユニットが
Mesh(網目状)に配置されている点です。
この構造では、
データが準備できた順に計算が進む非同期処理
が行われます。
これは従来のCPUやGPUのような
命令駆動型(Instruction-driven)
の計算モデルとは異なり、
データ駆動型(Data-driven)
の計算モデルと呼ばれます。
つまり、
計算の効率だけでなく
データ移動の効率
を最大化するアーキテクチャです。
並列アーキテクチャの比較
| 項目 | SIMD | SIMT | Tensor | Dataflow |
|---|---|---|---|---|
| 主な処理対象 | ベクトル | スレッド | 行列(Matrix) | データフロー |
| 計算の次元 | 1次元 | 多数の1次元 | 2次元(行列)〜多次元 | 多次元 |
| 代表例 | AVX / NEON | NVIDIA GPU | Tensor Core / TPU | Tenstorrent |
まとめ
並列計算アーキテクチャは次のように進化してきました。
SIMD (CPUのベクトル並列) ↓ SIMT (GPUのスレッド並列) ↓ Tensor (AI専用の行列並列) ↓ Dataflow (データ駆動型AIプロセッサ)
現在のコンピューティングでは
- CPU:SIMD
- GPU:SIMT
- AIチップ:Tensor
- 次世代AIチップ:Dataflow
という役割分担が形成されています。
AIモデルが巨大化するにつれて、
演算だけでなくデータ移動の効率
も重要になっています。
そのため、
Tensor演算だけでなく
Dataflow型アーキテクチャ
も次世代AIチップの重要な方向性として注目されています。
参考URL
-
Google TPU Architecture
https://cloud.google.com/tpu/docs/system-architecture
-
NVIDIA Tensor Core
https://developer.nvidia.com/tensor-cores
-
Tenstorrent
https://tenstorrent.com/
-
Google AI Chip Design
https://research.google/blog/chip-design-with-deep-reinforcement-learning/