4 つの同時 CUDA アプリケーションが 1 つの GPU でリソースを求めて競合し、作業をグラフィック カードにオフロードできる場合はどうなるでしょうか?. Cuda Programming Guide 3.1 には、非同期の特定のメソッドがあると記載されています。
- カーネルの起動
- デバイス デバイス メモリのコピー
- 64 KB 以下のメモリ ブロックのホスト デバイス メモリ コピー
- Async のサフィックスが付いた関数によって実行されるメモリ コピー
- メモリーセット関数呼び出し
また、コンピューティング機能 2.0 を備えたデバイスは、カーネルが同じコンテキストに属している限り、複数のカーネルを同時に実行できることにも言及しています。
このタイプの同時実行は、単一の cuda アプリケーション内のストリームにのみ適用されますが、GPU リソースを要求する完全に異なるアプリケーションがある場合は不可能ですか??
これは、同時サポートが 1 つのアプリケーション (コンテキスト???) 内でのみ利用可能であり、4 つのアプリケーションが CPU のコンテキスト切り替えによってメソッドがオーバーラップする可能性がある方法で同時に実行されることを意味しますが、4 つのアプリケーションは待機する必要があります。 GPUが他のアプリケーションによって解放されるまで?(つまり、app4 からのカーネルの起動は、app1 からのカーネルの起動が完了するまで待機します。)
その場合、これら 4 つのアプリケーションは、長い待機時間に苦しむことなく GPU リソースにアクセスするにはどうすればよいでしょうか?