计算FLOPS(每秒浮点运算)

时间:2012-09-30 09:02:12

标签: c++ c cuda gdb gpu

如何计算应用程序的FLOPS? 如果我有执行指令的总数,我可以将它除以执行时间。但是,如何计算执行指令的数量?

我的问题很普遍,任何语言的答案都受到高度赞赏。但我希望找到一个由C / C ++和CUDA开发的应用程序解决方案。

我不知道这些标签是否合适,如果我错了,请纠正我。

2 个答案:

答案 0 :(得分:7)

如果不容易建模浮点运算的数量,那么我要做的是生成两个可执行文件:一个是生产版本并给我执行时间,一个在执行它们时对所有浮点运算进行计数的检测(肯定会很慢,但这对我们的目的无关紧要)。然后我可以通过将第二个可执行文件的浮点运算数除以第一个可执行文件的时间来计算FLOP / s值。

这甚至可能是自动化的,但到目前为止我还没有这个需要。

答案 1 :(得分:6)

您应该以数学方式模拟您的数据所做的工作。隔离一个循环迭代。然后计算所有简单的浮点加法,乘法,除法等。例如, y = x * 2 * (y + z*w)是4个浮点运算。将结果数乘以迭代次数。结果将是您要搜索的指令数量。