В моей программе у меня два ядра, и для каждого ядра я запускаю только два блока из 256 потоков.Два параллельных ядра на nvidia kepler 3.0
kernel1<<<2,256>>>()
kernel2<<<2,256>>>()
На течение 4 SMX графических карт текущее выполнение программы что-то подобное (когда профилирование с визуальным профайлер, как ядро execut сам себе один за другим)
SMX1 SMX2
---------
| K1 | K1 |
| K1 | K1 |
-----------
| | |
| | |
---------
SMX3 SMX4
SMX1 SMX2
---------
| K2 | K2 |
| K2 | K2 |
-----------
| | |
| | |
---------
SMX3 SMX4
Мне было интересно, если можно было Lauch как ядро, в то же время в пределах одной и той же программы, и есть то, что посмотреть, как это и разделить время выполнения на 2:
SMX1 SMX2
---------
| K1 | K1 |
| K1 | K1 |
-----------
| K2 | K2 |
| K2 | K2 |
---------
SMX3 SMX4
в ке pler 3.5: Новая функция «Hyper-Q» в архитектуре кеплера позволяет одновременно обедать несколькими ядрами из нескольких процессов MPI. (или другой процесс)
Вы можете найти ответ, используя функцию разделения устройств в OpenCL. – ahmad