【发布时间】:2018-06-20 19:44:48
【问题描述】:
我知道这个问题被问了好几次,但在我的应用程序中,把握好时间至关重要,所以我可能想再试一次:
我为这样的内核方法计算时间,首先用clock_t计算CPU时钟时间;
clock_t start = clock(); // Or std::chrono::system_clock::now() for WALL CLOCK TIME
openCLFunction();
clock_t end = clock; // Or std::chrono::system_clock::now() for WALL CLOCK TIME
double time_elapsed = start-end;
还有我的 openCLFunction():
{
//some OpenCLKernelfunction
clFlush(queue);
clFinish(queue);
}
两种方法的结果有很大的不同,老实说我不知道哪个是正确的,因为它们以毫秒为单位。我可以相信 CPU 时钟时间吗?有没有一种确定的方法来测量而不关心结果?(请注意,我调用了两个函数来完成我的内核函数。)
【问题讨论】:
-
std::chrono::system_clock为您提供经过的时间。clock为您提供 CPU 时间。它们是两种完全不同的东西。你想要哪一个取决于你的目标。