我使用两个内核,我们称它们A
为B
.
我运行 CUDA 分析器,它返回的是:
第一个内核有 44% 的开销,而第二个内核有 20%。
但是,如果我决定按照以下逻辑找出实际执行时间:
timeval tim;
gettimeofday(&tim, NULL);
double before = tim.tv_sec+(tim.tv_usec/1000000.0);
runKernel<<<...>>>(...)
gettimeofday(&tim, NULL);
double after=tim.tv_sec+(tim.tv_usec/1000000.0);
totalTime = totalTime + after - before;
totalTime
它将非常小,大约为 0.0001 秒。
我是 CUDA 的新手,我不明白到底发生了什么。我应该尝试使内核更高效还是它们已经高效?