コラム

Column

GPU並列処理の仕組み -なぜGPUの演算処理性能は高いのか

GPU並列処理の仕組み-なぜGPUの演算処理性能は高いのか

機械学習で注目されるGPU。GPUは、CPUに比べ演算処理性能が高いといわれます。「なぜ、GPUの方が演算処理能力が高いのでしょうか?そして、今後もGPUの演算処理性能向上は続くのでしょうか?」

本コラムでは、高速化のキモとなる並列処理の仕組みについて、CPUとGPUを比較し、GPUの演算処理性能が高い原理的な根拠に迫ります。
CPUとGPUの根本的違いを理解し、どのような選択をするべきなのか。将来性も踏まえ、自信を持って選択するための本質的な知識を解説します。

1. 今注目されるGPUとは

1-1. GPUの歴史

GPUとは、Graphics Processing Unit(グラフィックス プロセッシング ユニット)の略です。その名の通り、グラフィック演算処理の為のコンピュータデバイスがGPUです。
コンピュータの頭脳といえば、CPUです。CPU単体でも画像処理は可能ですが、なぜ画像処理に特化したGPUが必要となったのでしょうか。

コラムイメージ画像

<GPUが使われる理由>

(1) 画像処理は、計算は単純だが大量の演算処理性能が求められる
(2) CPUは汎用的な処理ができるのが特長。一方、CPUに比べ、画像処理に特化したGPUは、並列処理技術などにより処理性能向上がしやすい
(3) グラフィック演算処理に求められる性能が急激に増加してきた

<GPUの歴史>

【1970年代〜1980年代】画像を使用したアプリケーションの出現
テキスト表示が主だったパソコンに画像処理が必要なアプリケーションが出現しました。
「グラフィックコントローラ」でCPUの画像処理を補助しました。

【1990年代】GUI浸透でパソコンの画像処理性能が向上
WindowsなどのGUI(グラフィカルユーザインタフェース)を使ったOS・アプリケーションが主流になり、画像処理がネックとなって操作遅延が起こるようになりました。
そして、画像処理専用の「グラフィックアクセラレータ」(GPUの前身)が誕生しました。

【2000年代】コンピュータゲームマニアが育てたGPU
GPUは一部のコアユーザーで高速処理を求めるようになり、処理性能競争が起きました。

原因はアメリカを中心とした、リアルタイム3DCGゲームの流行です。これらのゲームは、高性能なGPUがあれば、スムーズにゲームキャラクターを操作できます。一方、特に対戦型ゲームでは処理性能が低いパソコンでは、ゲームキャラクターの動きがぎこちなく、操作の遅れで負けてしまいます。
このため、ゲームマニアは、ゲームに勝つため高性能を求めました。GPUは、並列処理技術などを駆使して、年々演算処理性能が向上しています。

1-2. 新たな歴史の始まり−機械学習・ディープラーニングで注目されるGPU

そして、2010年代からGPUの新たな歴史が始まりました。

まず、この頃から、機械学習・ディープラーニングの研究成果が次々と発表されました。代表例は、Googleが実現した「コンピュータによる猫の概念の獲得」、囲碁のトッププロを破ったことで知られるDeepMindの「アルファ碁」などです。
「猫の概念の獲得」「囲碁のトッププロの勝利」自体は現実の用途としては役に立たないでしょう。しかし、「認識「判別」「予測」など、これまでコンピュータに任せることができなかった分野で、機械学習・ディープラーニングを使って、人間と同等か人間を遙かに超える性能を発揮する可能性を広く示しました。

その後「病気の診断」「機器故障予測と予防保守」「翻訳精度の向上」など、現実の課題解決のための機械学習の活用が世界中で広がっています。

現実の課題に広く機械学習が使われるようになると、Googleのような巨大IT企業でなくても、もっと自由に機械学習が使える環境が必要とされます。その切り札となるのが、機械学習に求められる超高性能演算処理を、並列処理技術を駆使して実現するGPUです。

GPUは、これまでのグラフィック処理に加え、機械学習・ディープラーニングの高速演算処理に使われるようになりました。
GPUの新たな用途・新たな歴史の始まりです。

コラムイメージ画像

2. GPU並列処理の仕組み

2-1. CPU、GPU性能を向上させる並列処理

CPU、GPUの歴史は、処理性能向上の歴史といってもよいでしょう。CPU、GPUメーカー各社は、高速化でしのぎを削り、次々とより高速な新製品を出してきました。

処理性能を向上させる方法は大きく2つあります。

(1) 一つのタスクの計算処理時間を短くする
(2) 一度に複数のタスクを処理できるようにする(並列処理)

(1) のタスク処理時間は、「ムーアの法則」により、CPU、GPU構成単位のベースとなる半導体性能向上だけで、自然と18ヶ月ごとに2倍になっていきます。
さらに、高速化を目指すのが(2)の並列処理技術です。仮に同時に2つのタスクが処理できれば2倍の処理性能、10個のタスクが処理できれば10倍の処理性能になります。

そして、CPUとGPUで、大きく異なるのが並列処理技術です。

2-2. CPUの並列処理:スーパースカラ

CPUを並列処理する技術を「スーパースカラ」といいます。CPUには「読込」「解読」「実行」「書出」の4種類の処理があります。
命令実行処理を行う回路が1つしかないのが「非スーパースカラ」です。一方、「スーパースカラ」の場合、命令処理を実行する回路を複数持ち、複数の命令を同時に実行できます。

コラムイメージ画像

並列処理を行う回路を増やせば増やすほど、CPU処理性能はあがりそうです。しかし、CPUは複雑な命令処理機構を持っており、現在のスーパースカラ技術では、3〜5程度の並列処理が限界です。
一方、数値計算に特化したGPUは、よりシンプルな方法で並列処理が行えます。

2-3. GPUの並列処理:ベクトルプロセッサ

CPUの並列処理技術スーパースカラに対して、GPUでは「単一命令複数データ処理」「ベクトルプロセッサ」という並列処理技術を採用しています。

このようにCPUとGPUでは、採用している並列処理技術が異なります。

コラムイメージ画像

このベクトルプロセッサという並列処理機構は、GPU用途である「画像処理」「機械学習」で威力を発揮します。

2-4. CPUよりGPUの方が並列処理しやすい

<CPUとGPUの処理の特徴>
(1) GPUの画像処理、機械学習計算
・シンプルな演算処理である
・順番を気にせず一度に計算してもよい
(2) CPUの汎用処理 ・複雑な命令の組み合わせ ・命令処理する順番が決まっており順次処理するしかない

CPUはせいぜい3〜5の並列処理が限界でした。一方、最新のGPUでは、512もの並列処理を実現できるようになっています。
CPUとGPUで、並列処理可能な数が大きく異なることがわかります。

コラムイメージ画像

3. CPUと違い、GPU計算能力は並列処理で高速化し続ける

3-1. CPUの成長限界-ムーアの法則は終わった?

18ヶ月で性能が2倍になるという「ムーアの法則」に支えられCPUは驚異的な早さで、性能向上し続けました。
しかし、ムーアの法則は、もうすぐ終焉を迎えると言われています。半導体の原理的な性能上限がくる。そうなれば、毎年のように上がっていたCPUの処理性能も頭打ちを迎えることになります。

3-2. 伸び続けるGPUの計算処理性能

GPUメーカーはCPUと違って、GPU性能向上に限界はないと主張しています。その根拠が、2で説明したCPUとGPUの並列処理技術の違いです。
半導体性能が頭打ちになったとしても、GPUは並列処理できる数を増やすことにより、さらなる性能向上余地があります。これが、画像処理・機械学習などのシンプルな演算処理に特化したGPUの大きなメリットです。

まとめ

CPU性能が本当に頭打ちになるのか?それは、いつか?確実なことは専門家の中でも意見がわかれています。
しかし、画像処理・機械学習といったシンプルな演算処理のみが必要な分野では、原理的に並列処理数を上げやすいGPUの方が、今後の高速化に有利なのは確かです。

Contact

データセンター見学のお申し込み、サービス詳細や価格、資料請求など
お気軽にお問い合わせください