每秒浮点运算次数
FLOPS全称是floating-point operation per second,中文称:每秒浮点运算次数。这是一个用于衡量计算机的算力和执行效能的单位,尤其是在使用到大量浮点运算的科学计算领域中广泛应用。
浮点运算会比整数运算更消耗时间,不过,现在的处理器中通常会有FPU(floating point unit)在FPU出现之前,计算机计算小数运算都是使用整数运算模拟的,非常不精确。
FLOPS 计算公式
一个MFLOPS(megaFLOPS)等于每秒一百万(=10^6)次的浮点运算,
一个GFLOPS(gigaFLOPS)等于每秒十亿(=10^9)次的浮点运算,
一个TFLOPS(teraFLOPS)等于每秒一万亿(=10^12)次的浮点运算,(1太拉)
一个PFLOPS(petaFLOPS)等于每秒一千万亿(=10^15)次的浮点运算,
一个EFLOPS(exaFLOPS)等于每秒一百京(=10^18)次的浮点运算,
一个ZFLOPS(zettaFLOPS)等于每秒十万京(=10^21)次的浮点运算。
什么是浮点运算?什么是定点运算?
浮点这个点指的是小数点。浮点运算在运算过程中,小数点的位置是变动 的。定点运算则是不变。浮点运算的优点是表示数的动态范围大,精度也可以很细。缺点是硬件复杂。定点运算的优点是运算速 度快,硬 件相对简单。缺点是运算过程中容易溢出,产生误差。
举例子来更好的理解浮点运算:
如果设计一个无符号32位的加法器,你怎么来用这32个bit呢?
你可以这么做,16位放到整数部分,剩下16放到小数部分。那么这32位能表达的最大数是多少呢?2^16。
能表达的最小精度是多少呢?2^(-16)。
把小数点左边(即整数)的位宽和小数点右边(即小数)的位宽固定,这就是一个定点数。
如果我愿意把小数部分的位宽分给整数,或者相互分享,比如我可以20位放在整数,12位放小数,在运算过程中,小数点左右的位宽可以一直变换。这就好比小数点在32个bit中浮动,这样的计算就叫浮点运算。
浮点运算有什么好处呢?对于32位宽来说,它支持最大的数是2^32,支持最小的精度是2^(-32)。这就比定点数的在同样位宽的情况下表达力更强了。
计算机中浮点数表示