3

GPUコンピューティングに関連するいくつかの論文を読んでいる間、私はこれら2つの用語GPUコンテキストを理解することに行き詰まりました.GPUハードウェアチャネルベローはそれらに簡単に言及していますが、それらが何を意味するのか理解できません.

Command : GPU はアーキテクチャ固有のコマンドを使用して動作します。各GPU コンテキストには、CPU で実行されているプログラムがコマンドを送信する FIFO キューが割り当てられます。GPU での計算とデータ転送は、対応するコマンドが GPU 自体によってディスパッチされた場合にのみトリガーされます。

Channel : 各GPU コンテキストには、コマンドのディスパッチが管理されるGPU ハードウェア チャネルが割り当てられます。Fermi は、複数のチャネルが同じ GPU 機能ユニットに同時にアクセスすることを許可しませんが、ハードウェアで自動的に切り替えられて共存できるようにします。

そのための明確で簡単な説明があります。

4

1 に答える 1

10

GPU コンテキストについては、こちらで説明しています。これは、特定のタスク (CUDA 計算、グラフィックス、H.264 エンコードなど) を実行するために集合的に必要とされ、インスタンス化されるすべての状態 (データ、変数、条件など) を表します。CUDA コンテキストは、CUDA ランタイム API によって暗黙的に、または CUDA ドライバー API によって明示的に、GPU で CUDA 計算アクティビティを実行するためにインスタンス化されます。

コマンドは単なるデータのセットであり、そのデータに対して実行される命令です。たとえば、コマンドを GPU に発行して、カーネルを起動したり、グラフィカル ウィンドウをデスクトップ上のある場所から別の場所に移動したりできます。

チャネルは、ホスト (CPU) と GPU の間の通信パスを表します。最新の GPU では、これは PCI Express を利用し、PCI Express を介して交換されるホストとデバイスの両方の状態とバッファーを表し、GPU にコマンドを発行し、他のデータを GPU に提供し、CPU に通知します。 GPU アクティビティ。

ほとんどの場合、CUDA ランタイム API を使用する場合、これらの概念に精通している必要はありません。これらの概念はすべて CUDA ランタイム API の下に抽象化 (隠蔽) されているためです。

于 2014-04-15T15:19:46.627 に答える