第17章. CPU / GPU / NPU / TPU の違い
この章の目的
この章では、LLM(大規模言語モデル)の実行に用いられる主要なハードウェアであるCPU、GPU、NPU、TPUそれぞれの特徴と、どのようなタスクや環境に適しているのかを理解することを目的とします。
この章で覚えるべきこと
- CPU、GPU、NPU、TPUそれぞれの基本的な役割と得意分野
- LLMの推論や学習において、各ハードウェアがどのように活用されるか
- どのハードウェアがどのような用途(ローカル実行、クラウド、エッジデバイスなど)に適しているか
導入
LLMの進化は目覚ましく、その性能を最大限に引き出すためには、適切なハードウェアの選択が不可欠です。しかし、CPU、GPU、NPU、TPUといった多様なプロセッサが存在し、それぞれ異なる特性を持っています。これらの違いを理解せずにハードウェアを選定すると、性能が十分に発揮できなかったり、コストが無駄になったりする可能性があります。本章では、これらのプロセッサがどのような計算を得意とし、LLMのどのフェーズ(学習、推論など)で真価を発揮するのかを明確にしていきます。
基本概念
LLMの計算は、大量の行列演算と並列処理が中心となります。この特性に最適化されているかどうかが、各プロセッサの性能を大きく左右します。
CPU (Central Processing Unit)
ひとことで言うと: コンピュータのあらゆる処理をこなす汎用プロセッサ。 何のカテゴリか: 汎用プロセッサ 何に使うのか: OSの実行、アプリケーションの制御、複雑なロジック処理、シーケンシャルな計算。 代表例: Intel Core iシリーズ, AMD Ryzenシリーズ よく混同される用語: GPU, NPU, TPU (これらは特定の計算に特化している点で異なる) 初心者向け注意点: LLMの推論も可能だが、大規模モデルでは速度が遅く、電力効率も悪いことが多い。
CPUは、コンピュータの「脳」として、あらゆる種類の計算を柔軟に処理できるように設計されています。少数の強力なコアを持ち、複雑な命令を高速に、かつ順序立てて実行することに長けています。LLMの推論では、モデルのロードや前処理、後処理など、シーケンシャルなタスクには適していますが、大量の並列行列演算には不向きです。
GPU (Graphics Processing Unit)
ひとことで言うと: 大量の並列計算を高速に処理するプロセッサ。 何のカテゴリか: 並列処理プロセッサ、グラフィックスプロセッサ 何に使うのか: グラフィックスレンダリング、科学技術計算、機械学習(特にディープラーニングの学習と推論) 代表例: NVIDIA GeForce/RTX/Quadro/Teslaシリーズ, AMD Radeonシリーズ よく混同される用語: CPU (GPUは並列処理に特化), NPU (GPUはより汎用的な並列計算が可能) 初心者向け注意点: LLMの学習・推論のデファクトスタンダードだが、消費電力や発熱が大きい。
GPUは、元々グラフィックス処理のために開発されましたが、その並列計算能力がディープラーニングと非常に相性が良いことが発見され、現在ではLLMの学習・推論において最も広く利用されています。数千もの小さなコアを持ち、同時に多数の単純な計算(特に浮動小数点演算)を実行することに特化しています。
LLMの計算において、特に重要なのが行列乗算です。例えば、入力ベクトル $\mathbf{x}$ と重み行列 $\mathbf{W}$ の積は、以下のように表されます。 $$ \mathbf{y} = \mathbf{x} \mathbf{W} $$ この計算は、各要素の積和演算を多数並列に行う必要があり、GPUの持つ多数のコアがこの種の計算を効率的に処理します。
NPU (Neural Processing Unit)
ひとことで言うと: AI処理に特化した専用プロセッサ。 何のカテゴリか: AIアクセラレータ、特定用途向けプロセッサ (ASIC) 何に使うのか: エッジデバイスでのAI推論、低消費電力でのAI処理 代表例: Apple Neural Engine, Qualcomm Hexagon NPU, Intel Core Ultra NPU よく混同される用語: GPU (NPUはAIに特化し、より低消費電力), TPU (NPUはエッジ向け、TPUはデータセンター向け) 初心者向け注意点: 主に推論に特化しており、学習には不向き。特定のモデル形式やフレームワークに最適化されていることが多い。
NPUは、ニューラルネットワークの計算(特に推論)を効率的に実行するために設計された専用ハードウェアです。GPUよりもさらにAI処理に特化しており、低消費電力で高い推論性能を発揮します。主にスマートフォン、タブレット、PCなどのエッジデバイスに搭載され、オンデバイスでのAI処理を可能にします。
TPU (Tensor Processing Unit)
ひとことで言うと: Googleが開発した、テンソル計算に特化した専用プロセッサ。 何のカテゴリか: AIアクセラレータ、特定用途向けプロセッサ (ASIC) 何に使うのか: 大規模なディープラーニングモデルの学習と推論(特にGoogle Cloud環境) 代表例: Google Cloud TPU v2/v3/v4/v5e よく混同される用語: GPU (TPUはテンソル計算に特化し、より大規模な学習向け), NPU (TPUはデータセンター向け、NPUはエッジ向け) 初心者向け注意点: Google Cloudでのみ利用可能。特定のフレームワーク(TensorFlow, JAX)との相性が良い。
TPUは、Googleが自社のディープラーニングワークロードのために開発したASIC(特定用途向け集積回路)です。特にテンソル計算(行列演算)に最適化されており、大規模なモデルの学習においてGPUを上回る性能と電力効率を発揮します。主にGoogle Cloudのデータセンターで提供され、大規模なLLMの学習に利用されています。
TPUの核となるのは、行列乗算ユニット (MXU: Matrix Multiply Unit) です。これは、一度に多数の積和演算を実行できる専用のハードウェアです。例えば、TPU v3のMXUは、128x128の行列乗算を1サイクルで実行できます。これにより、大規模なテンソル計算を極めて高速に行うことが可能です。
具体例
LLMのライフサイクルにおける各プロセッサの活用例を見てみましょう。
LLMの学習 (Training)
LLMの学習は、膨大なデータと計算リソースを必要とします。
- GPU: 現在、LLMの学習におけるデファクトスタンダードです。NVIDIAのA100やH100のような高性能GPUがデータセンターに多数配置され、並列に計算を行うことで、数日から数ヶ月かけてモデルを学習させます。例えば、GPT-3のような大規模モデルは数千台のGPUを使って学習されています。
- TPU: Googleが開発したTPUは、特に大規模なモデルの学習においてGPUを凌駕する性能を発揮します。GoogleのPaLMやGeminiといったモデルはTPUを使って学習されています。TPUは、行列乗算ユニット(MXU)と呼ばれる専用のハードウェアを多数搭載し、テンソル計算を極めて効率的に行います。
LLMの推論 (Inference)
学習済みのLLMを使ってテキスト生成などのタスクを実行する推論は、学習ほどではないにせよ、依然として高い計算能力を要求します。
- GPU: 高速な推論が必要な場合、GPUは依然として最良の選択肢の一つです。特に、複数のリクエストを同時に処理するバッチ推論や、リアルタイム性が求められるアプリケーション(チャットボットなど)で威力を発揮します。クラウドサービスで提供されるLLM APIの多くは、バックエンドでGPUを利用しています。
- NPU: スマートフォンやPCなどのエッジデバイスでLLMを動かす場合、NPUが重要な役割を果たします。例えば、AppleのiPhoneに搭載されているNeural Engineは、デバイス上で画像認識や音声処理などのAIタスクを低消費電力で実行します。今後は、より小型のLLMがNPU上で動作し、オフラインでのAIアシスタント機能などを提供することが期待されます。
- CPU: 小規模なLLMや、量子化されたモデルであれば、CPUでも推論は可能です。特に、ローカル環境で手軽に試したい場合や、GPUが利用できない環境では、CPUが選択肢となります。例えば、
llama.cppのようなプロジェクトは、CPU上でのLLM推論を最適化しており、一般的なPCでもLLMを動かすことを可能にしています。 - TPU: クラウド環境での大規模な推論サービスにおいても、TPUは利用されます。特に、GoogleのAIサービスでは、TPUが推論のバックエンドとして活用されています。
Mermaid図による関係性
graph TD
A[LLMの計算] --> B{計算の種類}
B -- 大規模学習 --> C["TPU (Google Cloud)"]
B -- 大規模学習 --> D["GPU (データセンター)"]
B -- "高速推論 (クラウド/サーバー)" --> E[GPU]
B -- "高速推論 (クラウド/サーバー)" --> F[TPU]
B -- "エッジ推論 (低消費電力)" --> G[NPU]
B -- "エッジ推論 (低リソース環境)" --> H["CPU (量子化モデル)"]
B -- 汎用的なローカル推論 --> I[CPU]
B -- 汎用的なローカル推論 --> J["GPU (ローカルPC)"]
C -- テンソル計算に特化 --> K[GoogleのLLM学習]
D -- 並列浮動小数点演算 --> L[一般的なLLM学習]
E -- "バッチ処理/リアルタイム" --> M[LLM APIバックエンド]
F -- 高効率なテンソル推論 --> N[GoogleのAIサービス]
G -- オンデバイスAI --> O[スマホ/PCのAI機能]
H -- 低リソース環境 --> P[llama.cppなど]
I -- 手軽に試す --> Q[ローカルPCでの実験]
J -- 高速ローカル推論 --> R[ゲーミングPCでの推論]
LLMの学習・推論ワークフローにおけるハードウェアの役割
graph TD
subgraph "LLM開発ライフサイクル"
A
B
C
end
subgraph "ハードウェアの役割"
A
CPU
B
GPU
TPU
C
GPU
TPU
D
GPU
NPU
CPU
end
style A fill:#f9f,stroke:#333,stroke-width:2px
style B fill:#bbf,stroke:#333,stroke-width:2px
style C fill:#bfb,stroke:#333,stroke-width:2px
style D fill:#fbb,stroke:#333,stroke-width:2px
style E fill:#eee,stroke:#333,stroke-width:2px
よく混同される用語との比較
| 特徴/プロセッサ | CPU (Central Processing Unit) | GPU (Graphics Processing Unit) | NPU (Neural Processing Unit) | TPU (Tensor Processing Unit) |
|---|---|---|---|---|
| 得意な計算 | 汎用的なシーケンシャル処理、複雑なロジック | 大規模な並列浮動小数点演算、行列演算 | ニューラルネットワークの推論(特に整数演算) | 大規模なテンソル計算、行列乗算 |
| コア数 | 少数 (数個〜数十個) | 多数 (数百個〜数千個) | 少数〜多数 (設計による) | 多数 (専用の行列乗算ユニット) |
| 電力効率 | 中程度 | 低 (高性能GPUは高消費電力) | 高 (特に推論時) | 高 (大規模学習時) |
| 主な用途 | OS/アプリ実行、汎用計算、LLM前処理/後処理 | グラフィックス、科学計算、LLM学習・推論 | エッジAI推論、オンデバイスAI | 大規模LLM学習・推論 (クラウド) |
| LLMとの相性 | 小規模モデル推論、前処理/後処理 | 大規模モデル学習・推論のデファクトスタンダード | エッジデバイスでの効率的な推論 | 大規模モデル学習に最適化 |
| 利用形態 | PC、サーバー、組み込み機器 | PC、サーバー、ワークステーション | スマホ、PC、IoTデバイス | Google Cloud (データセンター) |
LLMの利用シーン別ハードウェア選択の比較
| 利用シーン | 主な目的 | 推奨ハードウェア | 特徴/考慮点 |
|---|---|---|---|
| 大規模学習 | 最新モデルの開発、大規模データ学習 | TPU, GPU | 高い計算能力、大規模並列処理、クラウド利用が一般的 |
| クラウド推論 | APIサービス提供、多数ユーザー対応 | GPU, TPU | 高スループット、低レイテンシ、スケーラビリティ |
| ローカル推論 | 個人利用、オフライン環境、開発 | GPU (PC), CPU | コスト、手軽さ、量子化モデルの活用 |
| エッジ推論 | スマホ、IoTデバイス、組み込み | NPU, 低消費電力CPU | 低消費電力、リアルタイム性、プライバシー |
実務での位置づけ
LLMを実務で活用する際、どのハードウェアを選択するかは、コスト、性能要件、電力制約、利用環境によって大きく異なります。
- LLMの開発・研究: 大規模なモデルの学習や、新しいモデルアーキテクチャの実験には、高性能なGPUクラスターやTPUが不可欠です。これらは主にクラウドサービス(AWS, Azure, GCPなど)を通じて利用されます。
- クラウドでのLLMサービス提供: 多数のユーザーからのリクエストを処理し、高速な応答を返す必要がある場合、データセンターに設置された高性能GPUやTPUが利用されます。これらはスケーラビリティとコスト効率のバランスが重要になります。
- ローカル環境でのLLM推論: 開発者が手元でモデルを試したり、オフライン環境でLLMを利用したりする場合には、自身のPCに搭載されたGPU(ゲーミングPCなど)や、CPUでの推論が選択肢となります。特に量子化されたモデルはCPUでも実用的な速度で動作することが増えています。
- エッジデバイスでのLLM活用: スマートフォン、スマートスピーカー、組み込み機器などでLLMの機能(音声アシスタント、画像認識など)を実装する場合、低消費電力で効率的な推論が可能なNPUが重要になります。これにより、クラウドへの依存を減らし、プライバシー保護やリアルタイム性を向上させることができます。
実務では、これらのプロセッサを単独で使うだけでなく、組み合わせて使うことも一般的です。例えば、クラウドで学習したモデルを、エッジデバイスのNPUで推論するといったワークフローです。
ハードウェア選択の意思決定フロー
graph TD
A[LLM利用の目的は?] --> B{大規模学習が必要か?}
B -- はい --> C{クラウド環境か?}
C -- はい --> D[TPU / 高性能GPU]
C -- いいえ --> E["高性能GPU (オンプレミス)"]
B -- いいえ --> F{推論のみか?}
F -- はい --> G{どこで推論するか?}
G -- "クラウド/サーバー" --> H{"高速性/スループットが重要か?"}
H -- はい --> I[GPU / TPU]
H -- いいえ --> J["CPU (コスト重視)"]
G -- エッジデバイス --> K{"低消費電力/リアルタイム性か?"}
K -- はい --> L[NPU]
K -- いいえ --> M[低消費電力CPU]
G -- ローカルPC --> N{GPU搭載PCか?}
N -- はい --> O["GPU (ローカル)"]
N -- いいえ --> P["CPU (量子化モデル)"]
まとめ
4行まとめ
- CPUは汎用性が高いが、LLMの並列計算には不向き。小規模モデルのローカル推論や前処理・後処理に。
- GPUは並列計算に特化し、LLMの学習・推論のデファクトスタンダード。高性能だが高消費電力。
- NPUはAI推論に特化し、低消費電力でエッジデバイスでのAI処理に最適。
- TPUはGoogleが開発したテンソル計算特化プロセッサで、大規模LLMの学習・推論をクラウドで高速化。
混同しやすい用語
- GPUとNPU: どちらもAI計算に利用されますが、GPUはより汎用的な並列計算が可能で、学習から推論まで幅広く利用されます。NPUはAI推論に特化し、低消費電力でエッジデバイス向けです。
- NPUとTPU: どちらもAI専用プロセッサですが、NPUは主にエッジデバイスでの低消費電力推論を目的とし、TPUはデータセンターでの大規模な学習・推論を目的としています。
次に読むべき章
- 第10章: 量子化(Quantization) (CPUやNPUでの効率的な推論に不可欠な技術)
- 第15章: KV cache / batching / paged attention (推論効率化のための技術で、ハードウェアの選択にも影響)
- 第16章: speculative decoding / EAGLE / DFlash (推論速度向上技術で、ハードウェア性能を最大限に引き出すための知識)