コラム

Column

GPUアーキテクチャ入門-GPU性能を引き出すために知るべき基本原理とは

GPUアーキテクチャ入門-GPU性能を引き出すために知るべき基本原理とは

「アーキテクチャ」とはコンピュータシステムの論理構造のことです。
「CPUとGPUのアーキテクチャの違いを知っていますか?」
「GPU性能を引き出すためにGPUアーキテクチャの基本理解が、必要なことを知っていますか?」

本コラムでは、CPUとGPUアーキテクチャの根本的な構造の違いを解説します。このアーキテクチャの違いは、今後CPU・GPUが進化しても変わらない普遍的な違いです。
CPU・GPUの計算処理性能の違いを生み出す基本構造と、その構造設計に至った理由を説明します。

ところで、なぜGPUアーキテクチャの基本構造を知るべきなのでしょうか。それは、GPUの性能を最大限に引き出すために、GPUアーキテクチャの理解が欠かせないからです。
機械学習・ディープラーニングなどの計算処理を高速に行うには、桁違いの並列処理を行うGPUの基本構造を抑えたプログラミングをする必要があります。
GPUアーキテクチャの基本構造を理解し、GPUを最大限に活用しましょう。

1. GPUアーキテクチャの目指すこと

1-1. 汎用的処理をするCPU

GPUと類似した半導体としてCPUがあります。CPUとは、Central Processing Unitの略で、制御・演算を担当するコンピュータの心臓部です。メーカーの代表はIntel、AMDでしょう。
CPUの制御・演算対象は、多種多様です。キーボードの入力やディスプレイの表示、パソコンで代表的なWindows OSでは、Word・EXCELなどのオフィスソフトウェアから、ゲームまで、すべての制御・演算処理にCPUが関わっています。

CPUは毎年のように進化し、一昔前の大型コンピュータより、今のスマートフォンの方が高性能です。
しかし、元々コンピュータのハードウェア構造をシンプルにするため、汎用的な処理ができるよう作られたのがCPUです。高速化と同時に「汎用的な制御・演算ができること」を常に実現しなければいけないため、CPUアーキテクチャも、どんどん複雑になっています。

1-2. 数値計算処理に専門化したGPU

一方、汎用的な制御・演算を行うCPUに対して、画像処理や機械学習・ディープラーニングをはじめとする数値計算に特化したのがGPUです。数値計算に専門特化しており、汎用的な処理をすることはできません。
汎用機能をそぎ落とし専門特化することで、GPUはCPUに比べシンプルなアーキテクチャになることが特徴です。

コラムイメージ画像

1-3. 異なる進化をするCPUアーキテクチャとGPUアーキテクチャ

CPU、GPUともに、「高速化」を最重要目標として進化してきました。
※近年は、「高速化」に加え、「低消費電力」も重視されています。

目標は同じ高速化でも、「汎用的な制御・演算ができること」が必要なCPUと「数値計算だけできればよい」GPUでは、基本構造が異なります。そのため、CPUとGPUは、それぞれ大きく異なる方向でアーキテクチャを進化させています。
あえて単純にまとめると、GPUアーキテクチャは「1つのGPUにシンプルな計算処理チップをたくさん搭載し、並列処理できる数をCPUに比べて圧倒的に増やす」ことを目指しています。

2. アーキテクチャ

2-1. CPUとGPUアーキテクチャの違いは並列処理の複雑さ

CPUとGPUが目指すアーキテクチャで、重要な違いは並列処理方法の違いでしょう。
CPU・GPUの性能は単純には、以下の式で表されます。

『(単体での)命令処理速度』 × 『並列処理数』

2000年頃までは、前者の「単体での命令処理速度」が、重視されていました。いわゆる「クロック数」で、クロック数=1GHzなら、1秒間に100万回の命令処理ができます。
次に、2000年以降、消費電力などの問題からクロック数向上が限界に達してきました。そこで、CPU・GPUメーカー各社は「並列処理数」を増やすアーキテクチャを採用します。
いわゆる「マルチコア」で、4コアなら、1コアに比べ単純計算で4倍の命令処理ができます。

コラムイメージ画像

「コア」の定義:命令処理できるチップの単位を「コア」としているが、メーカーによって、コア定義が異なることがある

「コアを増やすことで、並列処理数向上を目指す」こと自体は、CPUもGPUも同じです。
しかし、ここで「汎用処理をするCPU」と「専門特化したGPU」の違いが効いてきます。
つまり、
① 汎用処理をするCPUは複雑で、命令処理をうまく並列化することが難しい
② 計算処理しかしないGPUはシンプルで、計算処理の並列化が比較的容易

これは、「人がする仕事」をイメージするとわかりやすいでしょう。
例えば、単純な事務作業であれば、一般には、人を増やせば増やすほど作業は早くなります。
しかし、複雑な仕事、例えば、「お客様提案書の作成作業」で、作業者を10人増員したら、かえって作業が遅くなるかもしれません。

コラムイメージ画像

2-2. 圧倒的な並列処理数を実現するGPUアーキテクチャ

厳密には、単純にコア数に比例して処理性能が上がるわけではありません。しかし、ぴったり比例しないまでも、「コア数が多ければ多いほど、高性能になる」ということは、CPUもGPUも同じです。
ただし、GPUのアーキテクチャは、GPUに比べ圧倒的に多いコア数を実現します。2018年現在、最も多いGPUのコア数は512個、対してCPUは8個です。つまり、GPUアーキテクチャは、CPUの64倍のコア数を実現しています。
単純比例はしないといっても、64倍となると大きな性能差に繋がります。実際、同じテストデータを使った計算処理で比較すると、CPUよりGPUが最大100倍程度の高速処理を実現しています。

コラムイメージ画像
最新のGPUアーキテクチャ例:32×16=512個の演算チップ

2-3. GPUは消費電力が高い

圧倒的な並列化を実現するアーキテクチャにより、数値計算で高性能を発揮するGPUですが、実用においては注意すべき点があります。それは、GPUの消費電力が高いことです。
コンピュータの中で、CPU・GPUは、最も消費電力が高い部品の一つです。そして、消費電力は、一般にコア数が多いほど大きくなります。
よって、実際にGPUを運用する場合は、「消費電力がどの程度か」「準備するべき電源設備どの程度になるか」を、事前にしっかり把握しておきましょう。

なお、データドックでは、GPUサーバー運用のような高い消費電力が必要な用途に対応できるように、ラック当りの最大提供電源容量を30kVAで設計しています。

コラムイメージ画像

3. まとめ:GPUアーキテクチャ

3-1. GPUアーキテクチャは、CPUと似ているようで異なる

CPUとGPUの基本原理は似ています。しかし、機械学習・ディープラーニングの普及などにより、さらなる高速化を求められるGPUは、512個にも及ぶ演算処理チップを1つの筐体に実装するなどCPUと大きく異なるアーキテクチャへと進化しています。

3-2. GPUアーキテクチャを理解し性能を引き出す

最後に、GPUアーキテクチャの理解は、GPU性能を引き出すことに繋がります。
なぜなら、高速処理を求めれる計算処理プログラムを作成する際には、並列化を意識しなければいけないからです。512個にもなる演算処理チップの性能を最大限に引き出すプログラム作成のために、GPUアーキテクチャの基本を理解しておきましょう。

Contact

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