我想测量GPU内核的时间,如何在NVIDIA CUDA中测量它?
例如
__global__ void kernelSample()
{
some code here
get start time
some code here
get stop time
some code here
}
你可以这样做:
__global__ void kernelSample(int *runtime)
{
// ....
clock_t start_time = clock();
//some code here
clock_t stop_time = clock();
// ....
runtime[tidx] = (int)(stop_time - start_time);
}
这给出了数量时钟周期两次通话之间。但要小心一点,计时器将在几秒钟后溢出,因此您应该确保连续调用之间的代码持续时间非常短。您还应该意识到编译器和汇编器确实执行指令重新排序,因此您可能需要检查时钟调用是否最终在 SASS 输出中彼此相邻放置(使用cudaobjdump
去检查)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)