GPUは Graphics Processing Unit の略で、パソコンのグラフィック、つまり描画を専用に処理するパーツです。
AIの中の一つの種類であるディープラーニング(深層学習)の流行と共に注目を浴びました。
1993年頃のコンピュータは、3Dグラフィックの様に高度なものを描画する能力がありませんでした。
そこで、後付けという形で、グラフィックの機能を強化する専用のパーツを搭載した製品(拡張基盤)が発売されました。
当時はグラフィックアクセラレータと呼んでいましたが、この製品が進化して、今では GPU と呼ばれています。
それまでは3Dに必要な計算を高速で行う用途に限定されていましたが、その高性能な演算能力が気象や地震などのシミュレーションに活用できることに気づき、NVIDIAが 2006年から汎用言語(当時は主にC言語)で演算能力が簡単に使える仕組み CUDA (Compute Unified Device Architecture/クーダ) を提供しました。
ここから一気に GPU はブレイクし、AIで使われる機械学習でも利用されるようになったのです。
CPU と GPU はどちらも演算を行うという点では同じですが、CPU はメモリやハードディスクなどの周辺機器との通信も含めて担当する、いわば何でもこなす優等生的な存在です。
一方 GPU は、3D計算に必要なベクトルや行列計算を、高速に計算することに特化した、その道の天才といったところです。
最近の CPU の多くは、GPU を含んでいるのですが、データを置くメモリが CPU とシェアしていること、それから CPU の面積内に収める必要があることから、性能にも限りがあります。
後付けの GPU 製品はこれらの制約が無く自由に設計できるため、当然高性能なものが作れます。
1つの CPU は1つの処理しかできないので、並列処理を行わせるためには1つの CPU の中に、CPU が受け持つ演算機能(コア)を複数個入れ込む(マルチコア化)事を行いますが、CPU のコア数が数個~十数個なのに対し、GPUは数百~数千の単位でマルチコア化されています。
つまり、ベクトルや行列計算など、単純だけど量があまりにも多い処理に対しては、マルチコア化された GPU を使う方が効率が良い訳です。
ちなみに、2019年1月現在、中級クラスのパソコンに搭載されている3万円台のCPU INTEL Core-i5 7600K の演算性能は 、4コアで 23.8 GFlops なのに対し、3万円で販売されている GPU NVIDIA GeForce GTX 1060 はコア数が 1280 、演算性能が136.7 GFlops となっています。
単純計算すると、コア数で320倍、演算性能で5.7倍の性能があることになります。
GPUは数千円のものから100万円を超える物まで、性能に応じて値段隊の幅が広く、最近はディープラーニングに特化した製品も登場しています。
例えば、NVIDIA GV100 は、その代表的な製品で、値段も100万円を超えますが、その性能は凄まじく、5120コアと32GBのメモリを搭載、7.4TFlops (= 7400 GFlops)の演算能力を持っています。更に、ディープラーニング専用のコアを640個搭載しており、行列演算に関して 120 TFlops(=120000 GFlops) の性能を誇ります。
値段帯 | 3万円台のCPU | 3万円台のGPU | 100万円越えのGPU |
---|---|---|---|
メーカー | INTEL | NVIDIA | NVIDIA |
製品名 | Core-i5 7600K | GeForce GTX 1060 | Tesla GV100 |
登場年月 | 2017年1月 | 2016年7月 | 2018年3月 |
コア数 | 4 | 1280 | 5120+640(行列専用) |
数値演算 | 23.8 GFlops | 136.7 GFlops | 7400 Gflops (7.4 TFlops) |
行列演算 | – | – | 120000 Gflops (120 TFlops) |
これは、行列演算だけに限定するなら、2009年に登場した200億円規模のスーパーコンピュータ「地球シミュレータ第2世代」に匹敵します。
近年、技術の進歩が目覚ましいことが実感できますね。
コメント