今回はCPUとGPUをテーマにしてみたいと思います。
- CPU…複数の異なる処理を少数のコアで処理する
- GPU…単一の処理を大量のコアで処理する
CPUやGPUは機械学習の演算を行なう上で重要な役割を果たすハードウェアです。2010年代以降第3次AIブームが続いているのは、ディープラーニングの登場なども理由として挙げられますが、ハードウェアの進歩も大きく貢献しています。
ここではCPUとGPUそれぞれの特徴が分かるように1つずつ解説をしてみようと思います。
CPUの役割とは?
CPUはCentral Processing Unitの略称で、日本語で言えば中央演算処理装置です。
その名が示す通り、まさにコンピュータの中核を担う存在で、我々がPCやスマホでメールをやりとりしたり、音楽を聴いたり、動画を見たりできる裏には常にCPUの働きがあります。CPUはこのように様々な処理をこなすことを得意としており、汎用性の高さが大きな特長の1つです。
CPUというのは(かなり大まかに言えば)ハード的にはシリコン(半導体)チップの上に大量のトランジスタが搭載されているようなものです。これらのトランジスタがいくつかのブロックに分かれており、演算・制御・記憶などの役割を担っています。これらの機能が組み合わさることで、我々が普段使うような複雑な機能を実現しています。
CPUの発展においては「いかにトランジスタを高密度に配置するか?」が大きなテーマになってきました。なぜなら、トランジスタをより高密度に配置できる方が性能も高く、消費電力も少なくできるからです。このトランジスタの高密度化については、Intel社の創設メンバーであるゴードン・ムーア氏のムーアの法則がよく知られています。法則の内容は「半導体チップに搭載されるトランジスタの数は18か月ごとに2倍に増える」というものです。下記のグラフは米国の調査会社が発表した1970年代から現在に至るまでのトランジスタの搭載数の推移です。
米国調査会社 IC insightsのプレスリリース 『Transistor Count Trends Continue to Track with Moore’s Law』
初期の頃は毎年2倍になるくらいの勢いで成長していました。近年は成長が若干緩やかになっていますが、それでも2年で2倍のペースです。
CPUの性能を語る上で重要になるもう1つの要素はコア数です。コアというのはCPUの中でも処理を行なう中核のことで、この数が多い方が素早く作業をこなせるようになります。1人でやるより2人や3人で協力して仕事をする方が早いのと同じですね。PCが登場したばかりの頃は1コア(シングルコア)がでしたが、2000年代前半頃からコア数が増え始め、近年では4コア(クアッドコア)、6コア(ヘキサコア)、8コア(オクタコア)などが一般的になっています。
GPUの役割とは?
GPUはGraphic Processing Unitの略で、名前の通り映像や画像の描画処理に特化した装置のことです。
映像や画像は細かく見ればピクセルという単位に分割することが可能で、このピクセル1つ1つに対して色や明るさが決まっています。このピクセルが例えば横1920×縦1080個などディスプレイ上に並ぶことによって、1つの画像や映像が完成します。従って、各ピクセルに対して決められた色や明るさを出力する処理が必要となります。このような処理はもちろんCPUでも可能ではありますが、先ほども述べたようにCPUは様々な処理をこなすことを得意としており、単一の処理を大量にこなすのはあまり得意ではありません。
このような背景を踏まえて、GPUは単一の処理を大量に同時に行なうことを得意としています。画像や映像の描写は「決められた色や明るさを出力する」という単一の処理を大量のピクセルに対して同時に行なうので、まさにGPUの出番というわけです。
ちなみに、CPUの説明でコア数の話をしましたが、GPUのコア数は数千個とCPUに比べると圧倒的に多くなっています。GPUではコア数を増やすことによって同時に大量の作業を行なえるようにしているわけです。
ここまでの説明だと、GPUがCPUよりも優れているように聞こえてしまうかもしれませんが、必ずしもそういうわけではありません。繰り返しになりますが、GPUは単一の処理をこなすのに適しているため、CPUのようにコンピュータの脳となって、汎用的に働くことはできません。適材適所が重要だということです。
ここまではGPUの画像・映像描画の話ですが、冒頭にも述べたように、GPUは機械学習(特にディープラーニング)においても大いに活躍しています。なぜなら、機械学習では行列やベクトルの演算を大量にこなす必要があるからです。行列やベクトルの演算ルールというのは決まりきっていますから、まさに単一の処理を大量にこなすというGPUの特性と相性がよいのです。
このように画像・映像の描画という当初の目的以外で使われるGPUのことをGPGPUといいます。最初のGPはGeneral Purposeの略で、画像・映像描画以外の汎用目的といった意味ですね。特にディープラーニングにおいて使われるGPUでは米国のNVIDIA社が業界をリードしています。
(補足)TPUとは?
今回のメインテーマではありませんが、実はGoogle社が提供しているTPU(Tensor Processing Unit)という演算装置も存在します。
これはまさに機械学習のために開発されたもので、従来のCPUやGPUに比べると若干演算精度を犠牲にしているものの、より高速に行列やベクトルの演算を実行できるのが特長です。
最後に
今回はCPUとGPUの違いが分かるようにそれぞれを解説してみました。
機械学習の中身とは直接関係しない話だったかもしれませんが、その背景にあるハードウェアの活躍を知っておくことも大切だと思いますので、今回の内容は最低限の基礎として理解していただければ幸いです!!
最後になりますが、機械学習を詳しく学んでみたいという方は、AIの基礎からAI搭載WEBアプリ開発まで学べるキカガク長期コースも活用してみてください!