我有以下代码片段,正在试验新的Kepler架构的功能。在具有固定NUM_ITERATIONS个循环的循环中多次调用内核。您是否认为将循环转换为父内核会有所帮助,即,与CPU相比,从CPU调用时内核开销是否较小?
是否可以使用动态并行来提高下面算法的性能?如果是这样,你能否建议一个类似的动态并行用例,这将有助于我在自己的程序中实现它?
for (i = 0; i < NUM_ITERATIONS; i++)
{
kernelGPU<<<gridSize, blkSize>>>(
d_a,
d_b,
d_c,
d_d,
d_e,
R,
V,
N
);
}
答案 0 :(得分:1)
我实际上通过将循环放在父内核中并使用DP来实现,但性能变得更差(大约慢50%)。