Оптимизировать алгоритм, используя динамический параллелизм
У меня есть следующий фрагмент кода, и я экспериментирую с возможностями новой архитектуры Kepler. Ядро вызывается несколько раз в цикле с фиксированным значением NUM_ITERATIONS. Как вы думаете, перенесет ли цикл в родительское ядро, т. Е. Будут ли издержки ядра меньше при вызове из GPU по сравнению с CPU?
Можно ли будет использовать динамический параллелизм для увеличения производительности алгоритма ниже? Если да, не могли бы вы предложить аналогичный вариант использования для динамического параллелизма, который помог бы мне реализовать его в моей собственной программе?
for (i = 0; i < NUM_ITERATIONS; i++)
{
kernelGPU<<<gridSize, blkSize>>>(
d_a,
d_b,
d_c,
d_d,
d_e,
R,
V,
N
);
}
1 ответ
Я фактически реализовал это, поместив цикл в родительское ядро и используя DP, но производительность стала намного хуже (примерно на 50% медленнее).