0

私のプログラムには 2 つのカーネルがあり、各カーネルに対して 256 スレッドのブロックを 2 つだけ起動します。

kernel1<<<2,256>>>()
kernel2<<<2,256>>>()

4 つの SMX グラフィック カードでは、プログラムの現在の実行はそのようなものです (ビジュアル プロファイラーでプロファイリングする場合、両方のカーネルが次々に実行されます)。

 SMX1 SMX2
 ---------
| K1 | K1 |  
| K1 | K1 |
-----------
|    |    |
|    |    |
 ---------
 SMX3 SMX4

 SMX1 SMX2
 ---------
| K2 | K2 |  
| K2 | K2 |
-----------
|    |    |
|    |    |
 ---------
 SMX3 SMX4

同じプログラム内で同時に両方のカーネルを起動し、そのように見えて実行時間を 2 で割ることが可能かどうか疑問に思っていました:

 SMX1 SMX2
 ---------
| K1 | K1 |  
| K1 | K1 |
-----------
| K2 | K2 |
| K2 | K2 |
 ---------
 SMX3 SMX4

kepler 3.5 : kepler アーキテクチャの新しい "Hyper-Q" 機能により、複数の MPI プロセスから複数のカーネルを同時に起動できます。(または他のプロセス)

4

1 に答える 1