web-dev-qa-db-ja.com

CUDAコアはGPUでのレンダリングコアと同じですか?

CUDAコアを読んだ後、私はCUDAコアがGPUの通常のコアにすぎないと思い込んでいます。これらは、PhysXを使用してCPUをアンロードするための物理計算を実行するために使用できます。または、CPUで低速になることが多いエンコード/レンダリングなど、他の計算を必要とする作業を実行するために使用できます。これはまた、グラフィックのレンダリングが私の知る限り正しい多くのコンピューティングにすぎないことを前提としています。

質問のコンテキストは、ゲームのプレイとレンダリング/変換を同時に実行して、マシンの電源が入っているときに生産性を向上させることが可能かどうかを知りたいということです。

CUDAコアはGPUの動作中のコアですか、それとも計算専用に使用できる別個のコアですか?

2
Remy Baratte

最新のグラフィックエンジンはシェーダーに基づいています。シェーダーは、グラフィックハードウェア上で実行され、ジオメトリ(シーン)、画像(レンダリングされたシーン)、およびピクセルベースのポストエフェクトを生成するプログラムです。

シェーダーに関するウィキペディアの記事から:

シェーダーは、頂点またはピクセルのいずれかの特性を記述する単純なプログラムです。頂点シェーダーは頂点の特性(位置、テクスチャ座標、色など)を記述し、ピクセルシェーダーはピクセルの特性(色、z深度、アルファ値)を記述します。プリミティブシェーダーは、プリミティブ内の各頂点に対して呼び出されます(おそらくテッセレーション後)。したがって、1つの頂点が入力され、1つの(更新された)頂点が出力されます。次に、各頂点は一連のピクセルとしてサーフェス(メモリのブロック)にレンダリングされ、最終的に画面に送信されます。

最新のグラフィックカードには、これらのシェーダーを実行できる数百から数千の計算コアがあります。以前はジオメトリ、頂点、ピクセルシェーダーに分割されていましたが、アーキテクチャが統合され、コアはあらゆるタイプのシェーダーを実行できるようになりました。これにより、ゲームエンジンやグラフィックカードドライバーが、どのタスクに割り当てられるシェーダーの数を調整できるため、リソースをより有効に活用できます。ジオメトリシェーダーに割り当てられたコアが多いほど、風景の細部がより詳細になり、ピクセルシェーダーに割り当てられたコアが多いほど、モーションブラーや照明効果などのAfterEffectsが向上します。

基本的に、画面に表示されるすべてのピクセルに対して、使用可能な計算コア上でさまざまなレベルで多数のシェーダーが実行されます。

CUDAは、開発者がGPUのコアにアクセスできるようにする単なるNvidiasAPIです。 「CUDAコア」という用語を聞いたことがありますが、グラフィックスでは、CUDAコアはグラフィックスカードが使用する処理コアのタイプであるストリームプロセッサに類似しています。 CUDAはプログラムonグラフィックコアを実行します。プログラムはシェーダーにすることも、ビデオエンコーディングなどの高度に並列化されたタスクを実行するための計算タスクにすることもできます。

ゲームの詳細レベルを下げると、グラフィックカードの計算負荷をcan他のことを行うために使用できるように、実現可能に減らすことができます。これらの他のタスクにも速度を落とすように指示できない限り、それらはグラフィックプロセッサコアを占有しようとし、ゲームをプレイできなくする可能性があります。

3
Mokubai