【发布时间】:2010-05-08 19:30:07
【问题描述】:
我已经完成了将 CRS 矩阵和向量 (SpMV) 相乘的应用程序,现在唯一要做的就是计算我的应用程序所做的 FLOPS。在我看来,在稀疏矩阵-向量乘法的情况下,很难估计浮点运算的数量,因为一行中的乘法数量确实“跳跃”或流畅。
我只尝试使用“cudaprof”(在 ./CUDA/bin 目录中)来测量时间 - 它工作正常。
感谢任何建议和说明!
【问题讨论】:
我已经完成了将 CRS 矩阵和向量 (SpMV) 相乘的应用程序,现在唯一要做的就是计算我的应用程序所做的 FLOPS。在我看来,在稀疏矩阵-向量乘法的情况下,很难估计浮点运算的数量,因为一行中的乘法数量确实“跳跃”或流畅。
我只尝试使用“cudaprof”(在 ./CUDA/bin 目录中)来测量时间 - 它工作正常。
感谢任何建议和说明!
【问题讨论】:
这不仅仅是你的意见;一个简单的事实是,在稀疏矩阵的情况下,操作的数量是依赖于数据的,因此如果不了解数据,就无法得到合理的答案。这使得不可能有一个数字适合所有数据的估计。
这可能是您可以花几个小时认真思考(并进行大量研究)以做出可能准确估计的情况之一,或者您可以花几分钟编写现有的变体每次执行操作时递增计数器的实现。当然,这将需要相当长的时间来运行(特别是如果你不以启用 CUDA 的形式执行它),但可能比思考所需的时间要少得多,当答案出来时,你不需要做很多工作来说服自己这是正确的。
【讨论】: