プログラミング処理におけるCPUとGPUの違い

cpu-gpu-difference

記事内に広告を含む場合があります

『楽天の三木谷会長が、プログラミング言語の学習を楽天社員に要求している。』というニュースがありました。

具体的にニュースをチェックしたら、『コンピュータープログラムの仕組みや、CPU(中央演算処理装置)とGPU(画像処理半導体)の違いを理解するよう求める見通しだ。』ということらしいです。

英語の次は、プログラミングなんですね。

でも、CPUとGPUの違いを、ひとことで説明するのは難しいです。

そこで、プログラミング処理におけるCPUとGPUの違いについて確認しました。

CPUとは

CPU(Central Processing Unit)は、中央処理装置のことです。

CPUは、パソコンでいうと『脳』の部分にあたると表現されることが多く、どの処理をどの順番で、どのような手順で処理をするといった、複雑な判断をしている装置です。

つまりCPUは、パソコンで一番重要な部分といっても過言ではないところです。

CPUは、パソコンに必ずある装置です。

CPUで有名なのはインテル製(Core-i)ですが、最近はAMD製(Ryzen)も人気が出てきています。

GPUとは

GPU(Graphics Processing Unit)は、画像処理装置のことです。

GPUは、最新のパソコンに搭載されていることが多く、オンラインゲームや動画の書き出しなどで活躍する装置です。

つまりGPUは、大量処理が必要な場合に活躍する装置です。

ちょっと前の世代のパソコンには搭載されていません。

GPUは、仮想通貨ブームで、マイニングPCを作る人が多くなったため、一時的に市場価値が高騰しました。

GPUは、ディープラーニング需要やe-Sports需要で、いまだに市場では高い値段で取引されています。

GRUで有名なのは、NVIDIA製(GeForce)やAMD製(Radeon)です。

CPUとGPUの違い

プログラミングにおける『CPUとGPUの違い』を、Q&Aサイトの『teratail』で確認しました。

レンダリング(※画像処理のこと)をすべて CPU で行うことも可能ではありますが、最近のコンピューターグラフィックスでは何百万というポリゴン(※多角形データのこと)を扱うことが当たり前なので、並列に大量のデータを計算する必要がある場合、GPU が有利です。

そのため、最近ではコンピューターグラフィックスの他、Deep Learning の計算などにも GPU が使われるようになっています。

teratail

GPUは原理的に多量の単純処理が得意でしょう。CPUはGPUより複雑な処理を担えます。

ですので、基本的にはCPUで処理し、その内GPUに任せた方が高速化できるだろう処理をGPUに任せるのが妥当です。

teratail

つまり、プログラミング処理におけるCPUとGPUの違いは

CPUは、複雑な作業を効率よく処理するのに優れているのに対し、

GPUは、単純作業を大量に処理するのに優れている。

という認識であっています。

もうちょっとわかりやすくいうと、最近話題のディープラーニングのような処理は、CPUでも処理できるけど、GPUを使った方が高速に処理ができる。ということです。

CPU GPU
正式名称 Central Processing Unit Graphics Processing Unit
日本語訳 中央処理装置 画像処理装置
得意処理 複雑な処理 大量な処理

補足すると、プログラミング処理において、CPUが得意なのは条件分岐処理(if文)で、GPUが得意なのは繰り返し処理(for文)という考え方であっています。

まとめ

楽天の三木谷社長が求めていると発表されたコメント『コンピュータープログラムの仕組みや、CPU(中央演算処理装置)とGPU(画像処理半導体)の違いを理解するよう求める見通しだ。』というのは、今回解説した内容を理解しておけば、おおよそ問題ないと思います。

GPUが、そもそもゲームを快適にやれるようにするための装置として、1999年にNVIDIAによって開発された装置で、オタクと呼ばれる人たちにしか注目されていませんでした。

NVIDIAと聞いてピンっとくる人もいると思いますが、NVIDIAはクルマの自動運転のリーダー的な企業で、ディープラーニング業界において注目されています。

ですから、『GPUがどんなものなのか』ということを、CPUと比較して理解しておくことが、とても重要なのかと思います。

参考になれば幸いです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です