计算 FLOPS(每秒浮点运算数)

Calculating FLOPS (Floating-point Operations per Seconds)

本文关键字:浮点运算 FLOPS 计算      更新时间:2023-10-16

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

我的问题很笼统,非常感谢任何语言的回答。但是我正在寻找由C/C++和CUDA开发的应用程序的解决方案。

我不知道标签是否正确,如果我错了,请纠正我。

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

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

您应该以数学方式对数据处理进行建模。隔离一个循环迭代。然后计算所有简单的浮点加法、乘法、除法等。例如 y = x * 2 * (y + z*w)是 4 个浮点运算。将结果数字乘以迭代次数。结果将是您正在搜索的指令数量。