计算FLOPS(每秒浮点运算)

las*_*gar 8 c c++ gdb cuda gpu

如何计算我的申请的FLOPS?如果我有执行指令的总数,我可以将它除以执行时间.但是,如何计算执行指令的数量?

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

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

ter*_*era 7

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

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


小智 6

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