计算 FLOPS(每秒浮点运算数)
Calculating FLOPS (Floating-point Operations per Seconds)
如何计算应用程序的 FLOPS?如果我有执行指令的总数,我可以将其除以执行时间。但是,如何计算执行指令的数量?
我的问题很笼统,非常感谢任何语言的回答。但是我正在寻找由C/C++和CUDA开发的应用程序的解决方案。
我不知道标签是否正确,如果我错了,请纠正我。
如果浮点运算的数量不容易建模,我要做的是生成两个可执行文件:一个是生产版本,给我执行时间,另一个是检测的,在执行它们时计算所有浮点运算(当然这会很慢,但这对我们的目的无关紧要)。然后,我可以通过将第二个可执行文件的浮点运算数除以第一个可执行文件的时间来计算 FLOP/s 值。
这甚至可以自动化,但到目前为止我还没有这个需要。
您应该以数学方式对数据处理进行建模。隔离一个循环迭代。然后计算所有简单的浮点加法、乘法、除法等。例如 y = x * 2 * (y + z*w)
是 4 个浮点运算。将结果数字乘以迭代次数。结果将是您正在搜索的指令数量。
相关文章:
- 使用双精度的浮点运算
- 将异常字符串解析为向量上的浮点运算?
- -O1改变浮点运算
- 将浮点运算与 Z3 C++ API 结合使用
- C++模运算符,使用 #define 和自己的类进行浮点运算
- 浮点运算
- 浮点运算的精度
- 为什么GDB对浮点运算的评估与C++不同
- C中的浮点运算出错
- 在Visual C++中,浮点运算优化会导致罕见而奇怪的行为
- 为什么十进制浮点运算的提议没有被 C++0x 接受?
- 为什么这个浮点运算被编译得如此奇怪(没有经过优化)
- 浮点运算结果的重现性
- 在浮点运算上执行平方运算和平方根运算时:表达式必须具有整型或非整型枚举类型
- C++:浮点运算的稳定性策略
- 自动获取某些代码段的浮点运算计数的方法
- 用于浮点运算的快速、基于秩的基数排序
- 浮点运算中的整数转换
- 浮点运算是如何在一个大数字上加一的
- 使用浮点运算时,如何获得一致的程序行为