我把部分计算迁移到GPU后,发现以帧率计算的程序,帧率下降;但是看各个函数的时间,又比之前减少了。
很奇怪,既然各个函数的时间减少,为什么帧率反而下降?
原来计算帧率使用了 gettimeofday() , 而计算函数调用时间用了 clock_gettime(CLOCK_THREAD_CPUTIME_ID, &start);
clock_gettime(CLOCK_THREAD_CPUTIME_ID, &start) 使用的是当前线程的CPU时间。把计算迁移到GPU,cpu的时间肯定降低,但是CPU等待GPU结果的时间并未计算。
看来应该统一换成墙上时间。