Оптимизировать алгоритм, используя динамический параллелизм

У меня есть следующий фрагмент кода, и я экспериментирую с возможностями новой архитектуры 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% медленнее).

Другие вопросы по тегам