GPUとCPUとの違いってそもそもなんだっけ?

      2016/02/22

GPUとCPUとの違いってそもそもなんだっけ?

パソコンの心臓部は、CPU(Central Processing Unit 中央演算処理装置)だと思っていたのですが、最近はディープラーニングが大流行で、GPUによる演算というのをよく耳にします。GPUってそもそもGraphics Processing Unitだから、パソコンのモニタに描画するためのもの、すなわちただの脇役に過ぎないと思っていたのですが、なんだか主役に躍り出てきた様相です。そうなると、CPUとGPUって何が違うの?という素朴な疑問が生じます。

GPUは並列処理に特化しているため、画像処理のような一部分の計算が全体の結果に影響しない場合に高速に演算できます。 … 例えば独立した100個の掛け算をする場合、CPUは掛け算を100回繰り返して答えを出します。GPUは100個の掛け算を並列に処理して答えを出します。つまりCPUに対して100倍の速度でGPUは処理が終了します。それに対して独立していない掛け算の場合、つまりAxB=C CxD=E ExF=G のようにAxBの計算をしてCの値を計算してからでないと次のCxDの計算ができない処理の場合は並列処理ができませんからGPUはCPU以下の処理能力しか発揮できません。  (http://ziddy.japan.zdnet.com/qa4626817.html)

これはとってもわかりやすい説明でした。コンピュータは逐次計算、人間の脳は並列に処理とよく言われますが、GPUはまさに人間の脳のように働きます。GPUは単にPCのモニタに描画するだけしか能が無いと思っていたのに、いつのまにCPUと比較されるほどの計算能力を身につけたのでしょうか?GPUの歴史を振り返る必要がありそうです。

 - GPU