profiler:Unable to collect metric and event values

profiler:Unable to collect metric and event values.“The profiler encountred an out-of-memory error”
请问一下这是什么原因,我的kernel是在一个循环当中多次调用的。

亲。。。您循环了多少次??

100000?还是100000000?

您如果做profiling的话,启动个几次也就够了吧。

您记得我上次对您说的三要素了么?

(1)单独抽取出来测试。不要放在生产环境。
(2)确保每次的形状配置一样,且kernel能成功执行。
(3)结束的时候cudaDeviceSynchronize(); cudaDeviceReset();

您确保了这三点,无任何问题。
您在大循环里上去来个10000次循环,谁都会挂的。

测试就是测试。请您考虑这点。

我所说的循环不是特意循环那么多次,我是程序需要,求最优解的迭代算法,每一次迭代都要调用这个kernel,我现在对这个kernel做了点改进,在这个kernel前后分别加了cudaprofilerstart() cudaprofilerstop(),然后profiler就出现上面的问题了。

迭代也没多少次,整个程序总共调用了该kernel 180 次左右吧。你说的形状配置是指kernel的配置参数吧?这个我都是固定的啊。

如果对于每个kernel都要单独提取出来,专门写一个测试程序的话这样是不是很麻烦呢,那么cudaprofilerstart() cudaprofilerstop()的左右又是做什么呢的?