[有奖问答]CUDA测试出现不可理解的现象

用事件管理方式来测试程序运行时间,但在处理一个数组,规模为1000010000的时候内核程序运行时间反倒比规模为100010000的时间小很多,这是怎么回事啊。谁能不能给分析下可能的原因??

你确定内核正确运行了,有可能内核出错了,另外也有可能计时方法不正确。

大致估计一下你的程序使用了几百M显存

应该是正确执行了的,我从100100的规模逐步扩大,前面的运行时间都是逐步增大的,就是从100010000变到10000*10000的时候时间反而减小了,而且减小了很多

你在内核启动后面使用cudaThreadSynchronize()看看,然后再在其后使用cudaGetLastError查一下

出错的那个尺寸可能结果不对