在我的程序中,我有两个内核,对于每个内核,我只启动两个 256 个线程的块。
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 进程中午餐多个内核。(或其他过程)