- GPGPUって何なの?
- GPGPUって実際どういうところで活用されてるの?
- GPUって付いているからグラフィックボードやグラフィック関係な気はするけど…
GPGPUは、GPUの高い演算能力をグラフィック処理だけではなく、他の処理にも活用する技術で、主な活用例としては、動画編集のエンコードやディープラーニングなどのAIの学習です。
実際、私もYouTubeのための動画編集やGPGPUを使ったAIをプログラミングした経験があるので、その辺りも交えつつ解説していきます。
目次
GPGPUとは
GPGPU(※)とは、GPUの高い演算能力をグラフィック処理以外に活用する技術のことです。
※General purpose computing on graphics processing unitsの略で、直訳するとGPUによる汎用計算となります。
GPUは基本的にグラフィック処理担当
GPUは、画像編集時のエフェクト処理やゲームのグラフィック処理、モニターへの映像出力処理などのグラフィック関係の処理を担当する装置です。
細かいですがPCパーツで言うと、グラフィックボードにあたり、GPUはグラフィックボードの中にあるチップのことですね。
ケンさん
名前から分かるように基本的にはグラフィックに関する処理をするので、それ以外の処理については、出番がありませんでした。
また、内蔵GPU機能というグラフィック処理をする機能を持ったCPUもあります。
CPU内蔵GPUはグラフィックボードと比べると性能は低いのですが、軽い画像編集、モニターへの映像出力ぐらいであればできます。
そのため、グラフィックボードは、主に3Dゲームや重い画像・動画編集などのプレビューやエフェクトをかけるぐらいしか使いません。
グラフィック以外への活用がGPGPU
GPUは、CPUと比較しても高い演算能力を持っているので、せっかく高い演算能力を持ったGPUの使い道がこれだけなのは正直もったいないので、他にも活用できないかと考えられた技術がGPGPUです。
元々、単純な演算能力で言えば、グラフィックボードは、CPUより高い演算能力を持っています。
その高い演算能力をゲームなどのグラフィック処理だけでなく、他の処理にも役立てようというものです。
GPGPU活用例
ゲームなどのグラフィック以外の処理で活用すると言っても、具体的にどんなことに使うのか気になると思うので、活用例を紹介します。
例えば、次のような用途で使われます。
- 動画編集のエンコード
- 機械学習・ディープラーニングなどのAI学習
- 仮想通貨の採掘(マイニング)
- 科学計算・シミュレーション
上3つは割とよく聞く用途で、その分野をやる方であれば個人でも気軽に手の出せる用途ですね。
ただ、最後の科学計算やシミュレーションは、研究所や企業がやるような分野なので、あまり馴染みはないと思います。
動画編集のエンコード
動画編集では、エフェクトをかけたり、編集した動画を再生して確認するプレビュー時にグラフィック処理が行われますが、これはGPU本来の処理です。
これに対して、編集した動画を1本の動画に出力するためのエンコード処理にGPUを使うことができるのですが、グラフィック以外の処理にGPUが使われているのでGPGPUです。
通常、CPUを使ってエンコードをするところをGPUで処理するので、エンコード時間を短縮することができます。
GPUを使ってエンコードするためには、動画編集ソフトがGPUエンコードに対応していることとGPUでエンコードするように設定する必要があります。
とは言え、最初からGPUが搭載されていれば、GPUを使う設定になっていることもあるので事前に確認しておきましょう。
最近の有名な動画編集ソフトであれば、ほとんどGPUエンコードに対応していると思います。
少なくとも、私が使っているAdobe Premiere ProとFilmoraでは対応しています。
また、自分が使おうと思っている動画編集ソフトがGPUエンコードに対応しているかどうかについては、最近は無料・試用期間があるソフトがほとんどなので、自分で一度使って確認してみましょう。
≫ 関連記事:FilmoraのGPUアクセラレーションでエンコード速度を比較【約60%も高速】
ディープラーニング・機械学習などのAIプログラミング
GPGPUは、ディープラーニングや機械学習などのAIの分野でも使われます。
AIをプログラミングする際は、データの収集や整形・加工、AI学習、学習したAIから予測するなどの処理がありますが、この中で最もパフォーマンスが求められるのがAIの学習です。
この学習処理をCPUでやるところをGPUを使うことで高速にすることができます。
AIのパラメータや学習に使うデータ件数で、学習時間が全然違いますし、CPUとGPUの性能によっても変わってくるので、一概にどのくらい速くなるかは言えないのですが、20~50倍程度高速になります。
ケンさん
また、AIのアルゴリズムや使用するライブラリによって、GPUで処理できるか、できないかが変わってくるので、全てのAIの学習工程で、GPGPUが使えるわけでは無いので注意しましょう。
例えば、ディープラーニング系であればGPUを使うことができ、遺伝的アルゴリズムでは使えないです。
(一部しかやったことがないので例外もあるかもしれませんが…)
ただ、AIをプログラミングするためにPCを検討している方であれば、GPUを搭載しておくことをおすすめします。
AIを勉強すると色々なAIを試すことになりますし、GPUでの実装方法も学ぶことができます。
GPUで学習速度を短縮することもできるので、データ量を増やしたり、パラメータを多くしても現実的な時間で学習することができます。
例えば、CPUで学習すると1週間ぐらいかかるところをGPUだと数時間で学習ができるとなれば、きちんと学習できたか早く確認できるので、AIを改善していくサイクルを早めることができます。
また、1日ぐらい使っても良いから、データ件数を増やして精度を高めたりといった検証もできます。
≫ 関連記事:ディープラーニング・機械学習に必要なPCスペックとおすすめBTOパソコンを解説!
仮想通貨の採掘(マイニング)
仮想通貨は、取引をして売買差益を得たり、支払いをしたりするだけでなく、マイニングをして仮想通貨を得ることもできます。
このマイニングという作業をする際にGPUを使います。
マイニングとは、仮想通貨の取引を記録するための計算に貢献し、その対価として新たに発行される仮想通貨を受け取ることを言います。
この記録には、不正や改ざんが起きないようにするためのセキュリティ的な側面もあります。
ただ、GPUメーカーのNVIDIAはマイニングを良く思っておらず、マイニングをした場合に性能を下げるような対応を入れたりしています。
また、マイニングのために一部のユーザーの間ではGPUの買い占めが発生し、一時期GPUの価格が高騰したこともありますね。
ケンさん
科学計算・シミュレーション
物理、流体、気候、天体などの科学計算やシミュレーションをする際にGPGPU技術が使われます。
特に、時間毎に移り変わっていくようなシミュレーションだと1コマ1コマの計算も多いですが、それを時間分演算しないといけないので計算量が膨大です。
そのため、CPUではなく演算能力の高いGPUを使うことで、シミュレーションの速度を上げたり、精度を上げることができます。
とは言え、研究所や企業がやる分野で、個人でPCを使う分にはほとんどの方は関係ないですね。
CPUとGPUの性能差・処理速度の違い
CPUとGPUの処理速度について、様々な観点から性能差や処理速度の違いを解説します。
単純計算な性能差
CPUやGPUの性能は、基本的に、クロック周波数とコア数で決まってきます。
例えば、ハイエンドなCPUとGPUで比較すると次のようになります。
Intel Core i9 13900K | NVIDIA GeForce RTX 4090 | |
---|---|---|
クロック周波数(最大) | Pコア:5.4GHz Eコア:4.3GHz | 2.5GHz |
コア数 | 24コア Pコア:8 Eコア:16 | 16384 |
ミドルレンジのCPUとGPUも比較してみましょう。
Intel Core i5 13600K | NVIDIA GeForce RTX 3060 | |
---|---|---|
クロック周波数(最大) | Pコア:5.1GHz Eコア:3.9GHz | 1.7GHz |
コア数 | 14コア Pコア:6 Eコア:8 | 3584 |
クロック周波数については、GPUはCPUの半分以下程度で処理速度は遅いもののコア数が256、682倍と桁違いに多いのが特徴です。
このコアが並列で演算するので、総合的に処理速度は凄まじいものとなります。
とは言え、そのまま処理速度が速くなるわけでは無いですし、比較するCPUとGPUによっても変わってきます。
演算する制度やそれぞれの機能によっても影響するので、単純にクロック周波数とコア数では比較は難しいですが、どれほどの性能差があるかイメージは持って頂けたかと思います。
動画編集のエンコード時間のベンチマーク
Filmoraを使って、CPUとGPUの動画編集のエンコードを比較してみました。
素材動画や設定などの検証環境は次の通りです。
【素材動画と設定】
・動画時間:10分23秒
・解像度 :FHD (1,920×1,080)
・フレームレート:30FPS
・出力設定:MP4 (デフォルト設定)
・BGM、テロップを10個程度、カット編集を200箇所程度
Intel Core i7 7700K | NVIDIA Geforce GTX 1070 | |
---|---|---|
エンコード時間 | 7:43 | 3:46 |
少し古いCPUとGPUではあるものの結果としては、3分57秒(277秒)短縮し、約60%早くなりました。
搭載しているCPU, GPUにもよりますが、ハイエンドなCPU, GPUで比較した時に、エンコード時間が半分以下になります。
プログラミングで実装した際の処理速度
私が過去に同じ処理をCPUとGPUで実装した際は、大体20~30倍ほど早くなったことがあります。
ケンさん
AIの1つである遺伝的アルゴリズムで、大量のパターンの適応度を評価するための計算部分をCPUでは長時間かかるため、GPU上で実装したことがあります。
その時使用したCPUとGPUは次の通りです。
Intel Core i7 7700K | NVIDIA GeForce GTX 1070 | |
---|---|---|
クロック周波数(最大) | 4.2GHz | 1.6GHz |
コア数 | 4コア | 1920 |
全てをGPUで処理することはできず、一部のみGPUに処理させた形になりましたが、それでも、約2,30倍は早くなっていましたね。
私はその時、C#を使ってアプリ開発をしていたのですが、GPUを使ってのプログラミングは、C#のようなクラスが使えなかったり、定数定義が使えなかったりと色々と制限があり、通常のプログラミングとは勝手が違いかなり難しかった覚えがあります。
ディープラーニングなどはPythonでライブラリも充実しているので、普通はGPU向けに自分でプログラミングを実装することは滅多にないので安心して下さい。
まとめ:動画編集のエンコードを早くする、AIの勉強をしたいならNVIDIAのGPUは欲しい!
GPGPUの主に活用例や性能差・処理速度について解説しました。
仮想通貨のマイニングやシミュレーションは別にしても、動画編集のエンコードやAIのプログラミング用途でPCを検討しているのであればGPUは欲しいですね。
処理速度については実体験を元に解説したものの、CPUやGPUの性能やソフトウェアの処理方法によって何倍速くなるかは一概には言えません。
しかし、多くの場合でGPUの方が処理速度が速いので、速度を早めて効率的作業したい方は搭載しておきましょう。
特に、NVIDIA GeForceシリーズは手頃な価格帯ですし、3Dゲームでもよく使われるので、研究や業務ではなく一般向けユーザーにはおすすめですね。
≫ 関連記事:ディープラーニング・機械学習に必要なPCスペックとおすすめBTOパソコンを解説!