我使用 CUDA 5.0,我想比较 C 和 cuBLAS 中的矩阵乘法。我已经编写了一个程序,其中 C 和 cuBLAS 中的矩阵乘法都给出了正确的答案。
现在我想比较他们的表现。对于在 C 中的实现,我使用了clock()
.c,但我发现 cutil 在 CUDA 5.0 中不存在,所以我使用了cudaEvent
. 两种实现都使用相同的矩阵,在 C 中,我只是测量了 C 进行矩阵乘法的时间,而在 cuBLAS 中,我从 until 开始createhandle
测量destroyhandle
。
我得到了这个结果:
当C只用了0.08ms,cuBLAS用了59ms,然后我用clock()
cuBLAS测时间,cuBLAS变得比C快。不知道我用的测时间的方法是否正确。为什么要cudaevent
给出clock()
不同的答案?
我只是按照 Nvidia 的文档使用 cuBLAS、cudaevent。我真的很困惑如何正确测量时间。