1行定義
GPUとは、画像の描画のために開発され、多数のコアで大量の単純な計算を同時に処理することを得意とするプロセッサのことです。
くわしく
GPU(Graphics Processing Unit)は、もともとゲームなどの3次元の画像を画面に描くために作られたプロセッサです。画面の何百万もの画素について同じ種類の計算を一斉に行うため、単純な計算を大量に同時にこなす作りになっています。
CPUとの違い
CPUは、複雑な処理を1つずつ順番に、できるだけ速く実行するのが得意です。分岐の多いプログラムや、全体の制御に向いています。GPUは、1つ1つの処理の速さではCPUに劣ります。その代わりに数千もの処理を同時に進め、全体としての処理量を大きくしています。CPUは何でもこなす少数の熟練者、GPUは同じ作業を一斉に行う大人数のチームにたとえられます。
ディープラーニングで使われる理由
ニューラルネットワークの計算の大部分は、行列の掛け算と足し算です。同じ形の計算を大量のデータに繰り返すので、GPUの得意な処理にそのまま当てはまります。2006年にNVIDIAが、GPUで汎用の計算を行うための仕組みCUDAを発表し、GPUを画像処理以外に使うGPGPUが広まりました。2009年にはGPUで深いモデルの学習を大幅に速める研究が発表され、2012年のILSVRCで優勝したAlexNetも2枚のGPUで学習しました。
AIプロジェクトでの位置づけ
大規模言語モデルのように学習に膨大な計算を要するモデルでは、使えるGPUの台数やメモリの量が、扱えるモデルの大きさや開発期間を左右します。GPUは高価で電力も多く使うため、クラウドで必要な分だけ借りる方法もよく使われます。また、GoogleのTPUのように、ディープラーニング専用に設計されたプロセッサもあります。
覚え方
「CPUは少数精鋭、GPUは大人数で一斉作業」と覚えます。
G検定での出題
出題のされ方
CPUとの役割の違い(GPUは大量の行列演算を並列に処理し、CPUは制御や逐次的な処理を担う)、ディープラーニングの発展を支えた背景、TPUとの違いが問われます。
混同しやすい用語
| 用語 | 意味 |
|---|---|
| GPUこのページの用語 | 画像の描画のために開発され、多数のコアで大量の単純な計算を同時に処理することを得意とするプロセッサ |
| TPU | Googleがニューラルネットワークの計算を速く、少ない電力で行うために独自に開発した、行列演算に特化したプロセッサ |
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
GPUを、画像の描画以外の汎用的な計算に使うことを、GPGPUと呼ぶ。
答えを見る
答え ◯ 正しい
General-Purpose computing on GPUの略です。NVIDIAが2006年に発表したCUDAなどの仕組みにより、科学技術計算やディープラーニングにGPUを使えるようになりました。
-
GPUで学習が速くなるのは、GPUの1つ1つのコアが、CPUのコアよりも1つの処理を速く実行できるからである。
答えを見る
答え × 誤り
1つの処理を順番にこなす速さでは、GPUはCPUに劣ります。その代わりに数千もの処理を同時に進め、全体の処理量を大きくしています。並列に分けられる計算で強みが出ます。
-
ニューラルネットワークの学習にGPUを使う研究は、2012年のAlexNetよりも前から行われていた。
答えを見る
答え ◯ 正しい
たとえば2009年には、GPUで深いモデルの教師なし学習を大幅に速める研究が発表されています。AlexNetは、GPUの活用を広く知らしめた例です。
この用語の練習問題
出典
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目11 ニューラルネットワークとディープラーニング)
- NVIDIA, CUDA Programming Guide (1.1 Introduction(1.1.1 The Graphics Processing Unit、1.1.2 The Benefits of Using GPUs))
- Rajat Raina, Anand Madhavan, Andrew Y. Ng, Large-scale deep unsupervised learning using graphics processors, ICML 2009, 873–880
- Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton, ImageNet Classification with Deep Convolutional Neural Networks, NIPS 2012