【发布时间】:2014-03-06 15:31:26
【问题描述】:
我一直在关注一些关于 OpenCL 的教程,很多时候人们都用FLOPS 说话。维基百科确实解释了这个公式,但没有说明它的实际含义?例如,1 光年 = 9.4605284 × 10^15 米,但它的意思是光在一年中传播的距离。同样,FLOP 是什么意思? Answer 对类似的问题说代码 100 IOPS
for(int i = 0; i < 100; ++i)
忽略初始化,我看到 100 个增量操作,所以有 100IOPS。但我也看到了 100 个比较操作。那么为什么不是 200IOPS 呢?那么 FLOPS/IOPS 计算中包含哪些类型的算子呢?
其次,我想知道你会通过计算算法的 FLOPS 来做什么? 我问这个是因为该值特定于 CPU 时钟速度和内核数。 关于这个领域的任何指导都会非常有帮助。
【问题讨论】:
-
您没有引用您链接到的整个答案,它实际上直接回答了您的问题:“那将是 100 个浮点运算,以及 100 个整数运算,以及一些 (100? ) 控制流/分支/比较操作。” I 代表“整数”而不是“增量”,作者将比较放在不同的类别中。
-
但是答案在100之后有一个问号。那么这意味着什么?以及为什么与操作“i
-
如果没有优化,将会有 100 次比较和 100 或 101 次跳转。通过优化,很难确定(编译器是否展开?),但这并不重要,因为没有人试图测量“CF/B/C”OPS。
-
好的理解问号的原因。但是为什么要对比较进行不同的分类呢?例如,如果 d 是一个浮点数,那么 'd