このウェブページは、お客様の便宜のために機械翻訳されたものです。翻訳されたコンテンツの正確性や信頼性は保証いたしかねます。翻訳されたコンテンツの正確性について疑問をお持ちの場合は、ウェブページの公式な英語版をご覧ください。
GPUとは何ですか?
グラフィックス処理単位(GPU)は、多くの計算を並列に実行するように設計された特殊なプロセッサーであり、元々は画像、ビデオ、 3Dグラフィックスのレンダリングするを目的としていました。現在では、GPUは機械学習、科学シミュレーション、ビデオエンコーディングなど、その他の高度に並列化されたワークロードも高速化している。
ゲームやリアルタイム3Dアプリケーションでは、GPUがシーンデータを処理してプレイヤーが見るピクセルを生成し、1秒間に数十回画像をレンダリングします。
GPUはどのように動作するのですか?
GPUはそのスピードを並列処理によって実現している。少数の強力なCPUコアに頼ってタスクを順次処理するのではなく、GPUは大規模なワークロードを並列処理可能な多数の小さな処理に分割する。
GPUはCPUと連携して動作し、CPUはゲームロジックなどのタスクを処理し、グラフィックスやその他の並列処理のためにGPUに命令を送信します。2つのプロセッサの比較については、以下を参照してください。 CPU 対GPU.
GPUは、いくつかのキーコンポーネントとソフトウェアレイヤーに依存しています。
- コア数:多数の演算を並列に実行する処理装置。それらのアーキテクチャと名称はGPUメーカーによって異なり、例えばNVIDIA製GPUではCUDAコア、AMD製GPUではストリームプロセッサと呼ばれている。
- ビデオメモリ(VRAM) :テクスチャ、メッシュ、フレームデータ、その他のリソースをGPUの近くに保存する、専用の高帯域幅メモリ。統合型GPUは通常、システムメモリを共有。
- シェーダー:GPU上で実行され、頂点の位置決め、ピクセル色の計算、およびコンピュートシェーダーによって処理されるものを含む汎用ワークロードの処理などのタスクを実行するプログラム。
- ドライバーとグラフィックス API :アプリケーションがGPUと通信できるようにするソフトウェア層。DirectX、Vulkan、 Metal、OpenGLなどのAPIは、グラフィックスコマンドを発行するためのインターフェースを提供し、ドライバはそれらのコマンドを特定のGPUハードウェア向けに変換する。
GPUがフレームをレンダリングすると、何が起こるのでしょうか?
単一フレームのレンダリングはグラフィックスパイプラインに従って行われ、これは3Dシーンデータを2D画像に変換する一連の段階です。
- 提出する:CPUは、使用するメッシュ、マテリアル、レンダリング設定を指定する描画呼び出しを送信します。
- 頂点を処理する:頂点シェーダーは、各メッシュの頂点を3Dシーンスペースから画像のレンダリングに使用される位置にTransform。
- ラスタライズ:GPUは、生成された三角形を、画面上の潜在的なピクセルに対応するフラグメントに変換します。
- シェーディングピクセル:フラグメントシェーダーは、テクスチャ、照明、マテリアルなどの情報を使用して、各フラグメントの色を計算します。
- 出力:生成された画像はフレームバッファに書き込まれ、ディスプレイに表示されます。
GPUにはどのような種類がありますか?
GPUは、その配置場所、メモリへのアクセス方法、およびコンピューティングリソースの提供方法に基づいて、大きく3つのタイプに分類できます。
統合型GPUはCPUとシステムリソースを共有ため、一般的に電力効率が高く、スペースや電力に制約のあるデバイスに適しています。
ディスクリートGPUは独自の処理ハードウェアと専用メモリを備えており、消費電力と発熱量の増加という代償を伴うものの、より高いグラフィックスと演算性能を提供する。
仮想GPUは、GPUコンピューティングリソースをリモートで提供することで、アプリケーションがローカルデバイスではなくデータセンターにホストされているGPUハードウェアを使用できるようにします。
GPUとグラフィックスカードの違いは何ですか?
GPUとグラフィックスカードという用語はしばしば同じ意味で使われますが、実際には異なるものを指します。
すべてのグラフィックスカードにはGPUが搭載されていますが、すべてのGPUがグラフィックスカード上に搭載されているわけではありません。統合型GPUはCPUと同じチップまたはパッケージに組み込まれており、別個のグラフィックスカードを使用するのではなく、システムリソースを共有。
GPUは何に使われるのですか?
GPUは、ワークロードに並列処理が可能な多数の計算が含まれるあらゆる場面で使用されます。
- ゲームとリアルタイム3D :スマートフォン、PC、ゲーム機、その他のデバイス向けのゲームやインタラクティブな体験のためのフレームをレンダリングします。
- VRとAR :特にVRにおいて、快適な体験に必要な没入感のある映像をレンダリングし、高水準で安定したフレームレートを維持する。
- AIと機械学習:多数の並列数学演算を伴う機械学習モデルのトレーニングと推論を高速化する。
- 動画およびコンテンツ制作:クリエイティブアプリケーションにおけるビデオエンコーディング、レンダリング、視覚効果 (VFX)、およびGPUアクセラレーションによるワークフローを高速化します。
- シミュレーションとデジタルツイン:工学、自動車、産業分野の可視化のために、物理演算、粒子シミュレーション、照明シミュレーション、その他の計算シミュレーションを実行します。
- ウェブグラフィックス:WebGLなどのAPIを使用することで、ブラウザがGPUアクセラレーションを利用してインタラクティブな2Dおよび3Dグラフィックスをレンダリングするできるようになります。
GPUとUnity
Unityでは、GPUはアクティブなURP (URP)またはHigh Definition Render Pipeline(HD レンダーパイプライン)設定に従ってフレームをレンダリングします。GPU使用状況プロファイラモジュールは、フレームの各部分がどれだけのGPU時間を消費しているかを表示し、開発者がレンダリングのボトルネックを特定するのに役立ちます。GPU常駐ドロワーは、GPUインスタンス化を利用して、多数のオブジェクトをレンダリングする際の描画呼び出しとCPUオーバーヘッドを削減します。
よくある質問(FAQ)
ゲームがGPU 依存であるとはどういう意味ですか?
ゲームがGPU 依存であるというのは、GPUがフレームをレンダリングするのにかかる時間が、CPUがフレームを準備するのにかかる時間よりも長い場合を指します。高解像度、複雑なシェーダー、オーバードローなどのレンダリング要求は、GPUのフレーム時間を増加させ、フレームレートを制限する可能性があります。プロファイリングは、CPUとGPUのどちらがボトルネックになっているかを特定するのに役立ち、UnityのGPU使用率管理ガイドでは、一般的な最適化手法が解説されています。
コンピューターはGPUなしでも動作しますか?
コンピュータは専用のGPUがなくても動作できますが、グラフィックスをディスプレイほとんどのコンピュータは、統合型またはディスクリート GPUを使用しています。一部のサーバーは、グラフィックスをレンダリングする必要がないため、GPUを搭載せずに動作し、代わりにCPUを使用してソフトウェアレンダリングで画像を生成することができます。しかし、要求の厳しいリアルタイム3Dグラフィックスにおいては、CPUベースのレンダリングは一般的にGPUアクセラレーションよりも効率が劣る。
GPUベンチマークとは何ですか?
GPUベンチマークとは、フレームレート、フレーム時間、合成スコアなどのメトリクスを用いて、グラフィックスや演算性能を測定するテストのことです。合成ベンチマークは、標準化されたワークロードを実行してGPUを比較するのに対し、実世界ベンチマークは、実際のゲームやアプリケーションにおけるパフォーマンスを測定します。結果は、解像度、グラフィックス設定、ドライバー、および特定のワークロードによって異なる場合があります。