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