我正在尝试将 GPU 与 CPU 性能进行比较。对于 NVIDIA GPU,我一直在使用 cudaEvent_t
类型来获得非常精确的时序。
对于 CPU,我一直在使用以下代码:
// Timers
clock_t start, stop;
float elapsedTime = 0;
// Capture the start time
start = clock();
// Do something here
.......
// Capture the stop time
stop = clock();
// Retrieve time elapsed in milliseconds
elapsedTime = (float)(stop - start) / (float)CLOCKS_PER_SEC * 1000.0f;
显然,仅当您以秒为单位计算时,那段代码才有效。此外,结果有时会很奇怪。
有人知道在 Linux 中创建高分辨率计时器的方法吗?
原文由 sj755 发布,翻译遵循 CC BY-SA 4.0 许可协议
查看
clock_gettime
,这是高分辨率计时器的 POSIX 接口。如果在阅读了手册页后,您想知道
CLOCK_REALTIME
和CLOCK_MONOTONIC
之间的区别,请参阅 CLOCK_REALTIME 和 CLOCK_MONOTONIC 之间的区别?有关完整示例,请参见以下页面:http: //www.guyrutenberg.com/2007/09/22/profiling-code-using-clock_gettime/