>>No1エンジニア養成プログラム テックキャンプ
「CPU、GPUという言葉をパソコンショップでよく聞く。けれど何が違うのか、よく分からない」と思っていませんか?
機械学習やディープラーニングに使うPCでは、CPUは非力とされ、GPU搭載のパソコンが増えてきました。VRゲームやeSportsに使うパソコンも同様です。しかし、そもそもGPUとは何なのでしょうか。
CPUとGPUはそもそもどう違うのでしょうか。この記事を読むことで、CPUとGPUについて理解を深めることができます。また、CPUとGPUの違いについても詳しく解説していきます。
この記事の目次

CPUとは
CPUはCentral Processing Unitの略称で、コンピュータの部品の一つです。
中央演算処理装置、プロセッサと呼ばれることもあります。
CPUは記憶装置や入出力装置と接続され、コンピュータ内で演算や制御を行います。コンピュータの司令塔のような役割を果たし、コンピュータの頭脳に当たる存在です。
CPUには、小さくて薄いシリコン基板の表面に数千万個から数億個のトランジスタが搭載。
裏面にはマザーボードと接続するための数百本のピンが並んでいます。
トランジスタで形成された回路は、演算ユニット、制御ユニット、デコーダ、バスインターフェース、キャッシュメモリなどいくつかのブロックにわかれています。
パソコンの中でも最も発熱する部品であるため、冷却するためのファンが近くに設置されています。
CPUは多様な用途に使用できることから、パソコンだけでなく、家電製品、工業製品、携帯機器などたくさんのシステムに組み込まれています。
CPUの構成と働き
CPUは「演算装置」「制御装置」「クロック」「レジスタ」から構成されています。
以下で一つずつ見ていきましょう。
演算装置
主記憶に格納されたデータに対して、四則演算や論理演算などを行います。「四則演算」とは加算、減算、乗算、除算のことで、「論理演算」とは論理和、論理積、否定、排他的論理和などの計算のことです。
制御装置
主記憶に格納されたプログラムを読み出して、デコーダによって命令を解読して様々な処理を行います。デコーダとはプログラムの命令を解読する装置のことです。
クロック
コンピュータが動作するタイミングとなるクロック信号を発生させます。
レジスタ
命令やデータを格納する領域のことです。プログラムはレジスタを使ってデータを処理しています。レジスタには以下のように様々な種類のものがあります。
・命令レジスタ 命令を格納する
・アキュームレータ 演算を行うデータや演算結果を格納する
・フラグレジスタ 演算処理後のCPUの状態を格納する
・プログラムカウンタ 次に実行する命令のアドレスを格納する
・ベースレジスタ プログラムの先頭のアドレスを格納する
CPUがプログラムを処理する仕組み
CPUがプログラムを処理する際には、プログラムカウンタに格納されているアドレスを読み込み、主記憶からアドレスに合った命令を取り出します。
命令は、命令部(オペコード)とアドレス部(オペランド)にわかれています。命令部は命令の種類を示し、アドレス部はデータが保存されている場所を示しています。
また、命令はCPUが理解できる機械語と呼ばれるもので記述されています。JavaやCといった高水準言語は機械語に変換されてから実行されます。
CPUは命令を取り出した後、デコーダで命令の解読を行います。その後、データが格納されている主記憶上のアドレスを計算し、データにアクセスして演算を行います。演算の結果を元に命令を実行します。
CPUの性能
CPUの性能を評価する指標には「クロック周波数」が用いられます。コンピュータはクロックと呼ばれる信号で動いており、クロック周波数とは1秒間当たりの信号数のことです。
クロック周波数が大きいほど、データを処理できる回数が多くなり、性能が高いということになります。
クロック周波数はHz(ヘルツ)という単位で表されます。例えば、4GHz(ギガヘルツ)のCPUは、1秒間に40億回もの動作をすることができます。
コア数
コアとはCPUの中核部分のことです。パソコンが登場したばかりの頃は1つのコアしかありませんでしたが。しかし200年代前半から、マルチコアと呼ばれる複数のCPUを搭載するマシンが登場し始めます。
たとえば2つコアのあるものは、デュアルコアと呼ばれるようになりました。
その後、4つコアのあるもの(クアッドコア)、6つコアのあるもの(ヘキサコア)、8つコアのあるもの(オクタルコア)が登場しました。
これらのように複数のコアを持つCPUが、マルチコアです。マルチコアでは、複数のCPUが同時並行で命令を処理する「並列処理」を行うことができます。
無料キャリア相談!本日も予約受付中
徹底したサポート体制があるので、転職成功率は99%!※ 実際に受講した人の体験談はこちらから。
「今の仕事を続けて大丈夫だろうか」と不安なら、何でも相談できる無料カウンセリングに参加してみませんか?IT転職に特化したプロのカウンセラーが、中立な立場であなたの悩みを解決します。
ブログ読者特典でAmazonギフト券3000円分もプレゼント中!無理な勧誘は一切行いませんので、お気軽にどうぞ。※2016年9月1日〜2020年12月31日の累計実績。所定の学習および転職活動を履行された方に対する割合

GPUとは
GPUとはGraphics Processing Unitの略称で、コンピュータグラフィックスの演算などを行う画像処理装置のことです。
1999年に半導体のメーカーであるNVIDAが開発しました。
CPUは汎用的な処理を行うことができます。一方、GPUは比較的単純な処理に特化した装置です。GPUは高速なグラフィック処理を主な用途としています。
最近ではGPGPU(General Purpose Computing on GPU)という新しい技術が登場し、画像処理などに限らず、CPUのように汎用的な処理を行うことができるものも登場しています。
この記事もオススメ

3Dグラフィックなどの画像処理に最適
文字だけのデータと異なり、画像のデータは容量が大きくなります。画像データは、縦軸・横軸で区切られたピクセル(画素)という単位で表されます。
縦のピクセル数×横のピクセル数×1ピクセルのバイト数で画像データの容量が決まります。三次元だと縦・横に高さが加わり、さらに容量が大きくなります。
容量の大きな画像を処理するためには高速で処理できるコンピュータが必要になります。そのための装置がGPUというわけです。
例えば、3D グラフィックスでは、ユーザーの操作に対応して、縦・横・高さの位置情報をリアルタイムに計算して映像を生成しています。GPUはこれらの処理に必要な複雑で高度な計算を大量に行っています。
GPUの用途
ゲーミングPC
映像の美しいゲームを堪能するためのPCがゲーミングPCです。
一般のパソコンは、映像を映すためのグラフィックボードの機能がマザーボード上に組み込まれています。
映像を映し出すことは可能ですが、あくまでも最低限の機能であり、3Dゲームを楽しむためには性能的に十分ではありません。
ゲーミングPCにはGPUを中心としたグラフィックボードが搭載されています。3Dの映像でも処理落ちすることなく、快適に映し出すことができます。
高度な処理が長時間にわたって行われることを想定し、優れた冷却装置も備わっています。
機械学習
コンピュータに大量のデータを学習させ、そのデータから有用なパターンなどを導き出すものです。
囲碁の世界王者を破ったことで知られる人工知能(AI)「AlphaGo」で採用された「ディープラーニング」も機械学習の一種です。
主な機械学習の手法には「教師あり学習」「教師なし」学習があります。検索エンジン、画像診断、音声認識、金融市場など様々な分野で応用されてきています。
機械学習では膨大な量のデータを利用し、無数の行列演算を行います。
トレーニングにはたくさんの時間が必要になりますが、GPUは行列演算を得意としているためトレーニングの期間を短縮することができます。
そのため、AIの研究・開発においてGPUが利用されています。機械学習について詳しく知りたい方は、以下の記事を参考にしてみてください。
・機械学習(マシンラーニング)とは?人工知能との違いや学習方法を紹介
コア数
そのため、GPUは同時に大量の処理を実行する並列処理に適しています。
GPUを開発したNVIDIAの「TITIAN X」のCUDAコア数は3584となっています。ちなみにCUDAとはGPUコンピューティング向けの統合開発環境のことです。

CPUとGPUの違い
複雑な作業を得意とするのがCPU
CPUは中央演算処理装置と呼ばれるように、コンピュータ内で中心的な役割を担っています。
プログラムの命令を元に演算を行って、メモリ、ディスプレイ、マウス、キーボード、プリンタなどを制御しながら命令を実行しています。
また、これらの命令は順番に処理していく必要があるため、GPUのようにコアがたくさんあれば処理が速くなるというものではありません。
CPUは連続的で複雑な処理をするのが得意という性質を持っています。
単純作業を人海戦術でこなすのが得意なのがGPU
GPUは単純な作業を並列に行うことを得意としています。3Dグラフィックスなどの画像処理は、単純な計算を大量に行う必要があるためGPUが向いています。
例えて言うならば、工場の単純作業を1つの優秀なCPUに任せるよりも、たくさんのGPUに任せた方が作業がはかどるということです。
本当に負荷の大きい処理はCPUもGPUもどちらも重要
CPUとGPUには向き不向きがありますが、負荷の大きい処理ではどちらも重要になってきます。
CPUのような複雑な処理を行うと同時に、GPUのような大量な単純作業を行う必要がある場合です。
そのような場合、連続的で複雑な処理をCPUに任せ、並列演算部分をGPUに任せることで、負荷の大きな処理でも対応することが可能になります。
この記事のハッシュタグ
まとめ
以上、CPUとGPUについてそれぞれ詳しく解説してきました。
コンピュータがどのような仕組みで動いているかを理解することは、よりよいプログラムを書く上でとても大切なことです。
また人工知能開発や、VR開発などコンピュータの処理の負荷が大きい開発に興味がある方は、なおさらパソコンへの理解が重要です。パソコンのスペックによって開発の効率や、できることが大きく変わるからです。
プログラミング能力を向上させたいと思っている人は、コンピュータの仕組みについても理解を深めていきましょう。