GAIO CLUB

2023年08月22日

【第7回】ガイオ用語集「GPU」

ガイオ用語集

GPUとは

GPU(Graphics Processing Unit)は、コンピュータの画像や動画の表示などを担う部品のことです。コンピュータ内の他の部品と連携し、スムーズな画面表示や高速なデータ処理を可能にします。例えば、3Dシミュレーションや動画編集、AI(機械学習)の学習/推論にも活用されており、不可欠な存在となっています。また、画像処理以外にもGPUを汎用的に利用することをGPGPU(General-purpose computing on graphics processing units)と呼びます。

CPUとGPUの違い

なぜGPUが様々な分野で利用されているのでしょうか。
その理由は、コンピュータの頭脳とも言われるCPU(Central Processing Unit)との性質の違いにあります。(※1)

CPU

逐次処理に優れており、複雑なロジックや分岐を高精度に処理できます。汎用性の高さから様々な処理に利用されます。処理コア(実際に演算を行う部分)の数は、数個から数十個です。

GPU

並列処理に優れており、多数の分岐を伴わない単純なロジックを高速に処理できます。数千~一万個を超える処理コアを持つため、画面描画などの単純処理を大量に並列実行でき、高速化を可能にします。
GPUは一部の処理を担当する特化型のプロセッサであり、CPUは様々な処理を担当する汎用型のプロセッサです。GPUは単独では動作できないため、ホストとなるCPUから制御される形で利用することとなります。
※1
コンピュータの構成::コンピュータは以下の装置で構成されています。
入力装置:キーボード、マウス、タッチパネルなどのユーザからの命令を信号に変換する装置です。
出力装置:ディスプレイ、プリンタなど、処理結果をユーザに伝達する装置です。
中央処理装置(CPU):データや命令を処理する装置です。
メインメモリ:CPUが直接アクセスできる記憶領域で、作業中のデータやプログラムを一時的に保存する装置です。
記憶装置:データや命令を一時的または永久的に記憶する装置です。

GPUの種類

GPUには、主に2つのタイプがあります。

1. 独立型GPU

PCに追加できるグラフィックカードとして搭載されていて、高性能で高速な画像処理が可能です。

2. 統合型GPU

CPUに内蔵されているGPUで、省スペースかつ低コストで利用できます。一般的なラップトップやデスクトップPCによく使用されています。
主なGPUメーカーとしては、NVIDIA社とAMD社があります。近年では、AI活用に特化したGPU開発が進んでいます。

1. NVIDIA社

GeForceシリーズやQuadroシリーズなどが該当します。ChatGPTなどの生成系AI向けのGPUであるNVIDIA Hopperや、CPUとGPUを1つのモジュールに統合したGrace Hopper Superchip、NVIDIA DGX GH200などの数百基のGPUを連携させて動作させられる製品も発表されています。

2. AMD社

RadeonシリーズやRadeon Proシリーズが該当します。Ryzen AIなどの生成系AI向けのNPU(Neural Processing Unit)があります。

GPUのメリット・デメリット

メリット、デメリットは以下の通りです。また、クラウドサービスを活用することで、時間単位でGPUを借りることができ、一部のデメリットを緩和できます。

メリット

・3Dグラフィックスや動画編集などの画像処理の高速化ができる
・AI(ディープラーニング)開発を高速化ができる
・スーパーコンピュータの代替品として使える

デメリット

・高性能なGPUは購入費用が高い
・GPU利用時の消費電力や発熱が大きい
・特定のアプリケーションやプログラム言語に対応していない場合がある

GPUを有効活用するために

一般に、並列処理ができる処理タスクについてはGPUによる高速化が見込めます。(例:画像処理のように単純な処理を各ピクセルに対して実行するようなケースや、ディープラーニングのように多次元の行列計算を多用するケース)一方で、前の処理の結果を元に次の処理を行うような場合(逐次処理と言います)、十分な高速化を実現することができません。(例:各ピクセルの処理が相互に関連しているケースやワークフローシステムなど)
GPUの並列処理が高速になるのは、GPU内部に多数の処理コアや専用メモリが存在しているためです。前述した通り、GPUはCPUから制御されて動作します。そのため、CPUが利用しているデータをGPUのメモリに転送する必要があります。GPUに転送するデータ量が多いほど、転送時間が長くなります。この転送時間が、GPUの高速化効果を低下させる可能性があります。そこで、GPUのメモリに転送するデータ量を最小限に抑えるように設計することが重要です。
例えば、対応前はCPUで1秒かかっていた処理が、GPUで0.1秒に改善されたとします。しかし、その処理に必要なデータの転送に0.9秒以上かかっていたとしたら、トータルでは1秒以上かかってしまいます。つまり、対応前と変わらない処理速度になってしまうのです。
GPU活用の効果を最大限に引き出すには、現状分析が欠かせません。どこがボトルネック(処理速度の低下に最も大きく寄与している箇所)になっているのかを特定し、I/Oの高速化やアルゴリズムの見直しなど、他の高速化手段と併用することが高速化の近道です。

GPUの使い方

GPUを利用するためには、次の手順を踏みます。

1. 必要なGPUのタイプと性能を検討する
2. GPUを購入する
3. PCにGPUを取り付ける
4. GPUに対応したドライバやソフトウェアをインストールする
5. GPUプログラミングを行う(あるいは利用先アプリケーションでGPU有効化の設定を行う)
6. プロファイラソフトウェアやルーフラインモデルを用いて、処理速度の分析、パフォーマンスチューニングを行う

まとめ

GPUの概要や特徴について解説しました。

・GPUはコンピュータの画像処理、動画処理、AI(機械学習)の学習や推論に利用される
・GPUはCPUよりもコア数が多く、単純な処理を大量実行することに特化している
・GPUはホストとなるCPUから起動される
・統合GPUと独立GPUの2種類がある
・GPUとCPUのメモリ間でデータを転送する必要がある
・GPUを有効活用するためには現状分析を行った上で、他の高速化手段との併用が必要


GPUは、AI(機械学習)の進化/発展に欠かせない部品であり、その重要性は今後も高まると考えられます。用途に応じて最適なGPUを選んで活用しましょう。

人気のコラム

最新のコラム