我一直在关注OpenCL的一些教程,很多时候人们都使用FLOPS发言。维基百科确实解释了该公式,但没有说明其实际含义?例如,一光年= 9.4605284×10 ^ 15米,但是这意味着一年中光的行进距离。同样,FLOP是什么意思?
Answer对类似的问题说代码为100 IOPS

for(int i = 0; i < 100; ++i)

忽略初始化,我看到100个增量操作,所以有100IOPS。但是我也看到100个比较操作。那为什么不200IOPS呢?那么FLOPS / IOPS计算中包括哪些类型的运算符?

其次,我想知道通过计算算法的FLO​​PS会做什么?
我问这个问题是因为该值特定于CPU时钟速度,而没有内核数。
该 Realm 的任何指导将非常有帮助。

最佳答案

“FLOPS”代表“每秒浮点操作数”,正是这样。它用于衡量大型,基于数字(通常是科学的)运算的计算速度。测量它仅需了解两件事:
1.)算法的精确执行时间
2.)算法中涉及的浮点运算的精确数量

您可以从概要分析工具中获得第一个的近似值,而从...中获得第二个的近似值……那么,您可能会独自一人。您可以查看源代码中的“1.0 + 2.0”之类的浮点运算,也可以查看生成的汇编代码,但这两者都可能会引起误解。那里可能有一个调试器,它将直接为您提供FLOPS。

重要的是要了解,所运行的系统有一个理论上的最大FLOPS值,然后才是该算法实际达到的FLOPS。两者的比率可以使您对算法的效率有所了解。希望这可以帮助。

07-24 15:18