如何计算我的应用程序的FLOPS?如果我有已执行指令的总数,我可以将其除以执行时间。但是,如何统计执行的指令数量呢?
我的问题是一般性的,任何语言的答案都是非常感谢的。但我希望为我的应用程序找到一个解决方案,它是用C/C++和CUDA开发的。
我不知道标签是否正确,如果我错了,请纠正我。
发布于 2012-10-01 07:59:58
如果浮点操作的数量不容易建模,我会做的是生成两个可执行文件:一个是生产版本,给我提供执行时间,另一个是在执行浮点操作时计算所有浮点操作的仪表化版本(这肯定会很慢,但对我们的目的无关紧要)。然后,我可以通过将来自第二个可执行文件的浮点操作的数量除以来自第一个可执行文件的时间来计算FLOP/s值。
这甚至可能是自动化的,但到目前为止我还没有需要这样做。
发布于 2012-09-30 18:09:54
你应该对你的数据进行数学建模。隔离一个循环迭代。然后计算所有简单的浮点加法、乘法、除法等。例如,y = x * 2 * (y + z*w)是4个浮点运算。将结果数乘以迭代次数。结果将是您正在搜索的指令数。
https://stackoverflow.com/questions/12660027
复制相似问题