1行定義
CPUとは、プログラムの命令を読み取って順に実行し、コンピュータ全体の動作を制御する、汎用の中央処理装置のことです。
くわしく
CPU(Central Processing Unit)は、中央処理装置とも呼ばれるプロセッサです。
設計の特徴
CPUは、一連の命令を順番に、できるだけ速く実行することを重視して作られています。NVIDIAのCUDAプログラミングガイドによると、CPUが同時に進められる処理の流れ(スレッド)は数十程度です。その代わり、GPUと比べて多くのトランジスタを、データを一時的に置くキャッシュや、処理の流れを制御する回路に割いています。条件によって処理が分かれる複雑なプログラムや、全体の制御に向いています。
GPUは反対に、演算を行う回路に多くのトランジスタを割き、数千のスレッドを同時に進めます。TPUはさらに行列演算に絞った専用のプロセッサです。
ディープラーニングでの役割
ニューラルネットワークの学習の計算の大部分は行列の掛け算で、この部分はGPUやTPUのほうがはるかに速く処理できます。ただし、GPUやTPUだけでプログラム全体が動くわけではありません。データの読み込みや前処理、学習の進行の管理などはCPUが受け持ちます。初代のTPUも、ホストのサーバーから命令を受け取って計算する補助的な装置(コプロセッサ)として設計されました。
CPUだけで足りる場面もあります。Google Cloudの資料は、柔軟さが求められる試作、短時間で学習できる単純なモデル、小規模でバッチサイズの小さいモデルなどを、CPU向きの例に挙げています。
覚え方
「CPUは何でもこなす司令塔、GPUとTPUは行列計算の実働部隊」と覚えます。
G検定での出題
出題のされ方
GPU・TPUと並べて、CPUは汎用的で逐次的な処理や全体の制御に向くこと、大量の行列演算の並列処理ではGPUやTPUに及ばないこと、学習でもデータの読み込みや制御をCPUが担う役割分担が問われます。
混同しやすい用語
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
CPUは、GPUと比べて多くのトランジスタをキャッシュや処理の流れを制御する回路に割き、一連の処理を1つずつできるだけ速く実行するように設計されている。
答えを見る
答え ◯ 正しい
同時に進められる処理の流れは数十程度です。GPUは逆に、演算そのものに多くのトランジスタを割き、数千の処理を同時に進めます。
-
小さなモデルを短時間で試すような場面では、GPUやTPUを使わず、CPUだけで学習することも選択肢になる。
答えを見る
答え ◯ 正しい
Google Cloudの資料も、柔軟さが求められる試作や、学習に時間のかからない単純なモデル、小規模でバッチサイズの小さいモデルなどをCPU向きの例に挙げています。
-
学習済みのニューラルネットワークを使った推論は、GPUかTPUがなければ実行できない。
答えを見る
答え × 誤り
推論はCPUでも実行できます。初代TPUの論文では、応答時間の制約がある推論で、当時のGPUは同時期のCPUよりわずかに速い程度だったと報告されています。
この用語の練習問題
出典
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目11 ニューラルネットワークとディープラーニング)
- NVIDIA, CUDA Programming Guide (1.1 Introduction(1.1.2 The Benefits of Using GPUs))
- Norman P. Jouppi et al., In-Datacenter Performance Analysis of a Tensor Processing Unit, ISCA 2017 (1. Introduction to Neural Networks、2. TPU Origin, Architecture, and Implementation)
- Google Cloud, Introduction to Cloud TPU (When to use TPUs)