flops:浮点运算的缩写(s表复数)是指浮点运算的次数,理解为计算量。 可用于:衡量算法模型的复杂性该值越高,网络的计算复杂度越高。 FLOPS 没有考虑对速度有相当大的影响的几个重要因素——MAC(内存访问成本) 并行平台卷积层flops:每秒浮点运算数,是指每秒浮点运算的次数,理解为计算速度。 是一个衡量硬件性能的指标。还有其他单位:
1 MFLOPS (megaflops) 等于每秒 100 万 (= 10 6) 次浮点运算,1 GFLOPS (gigaflops) 等于每秒 10 亿次 (= 10 9) 次浮点运算,1 TFLOPS (teraflops) 等于每秒 1 万亿 (= 10 12) 次浮点运算,(1 terala)。
一个 PFLOPS (petaflops) 等于每秒 1 万亿 (= 10 15) 个浮点运算,一个 EFLOPS (exaflops) 等于每秒 100 公担 (= 10 18) 个浮点运算,一个 zflops (zettaflops) 等于每秒 100,000 个浮点运算 (= 10 21) 个浮点运算。
GFLOPS 是 *** 中最受欢迎的单位之一。 gflops(giga floating-point operations per second)每秒可执行的浮点运算数是计算设备的浮点运算能力的度量。 相当于计算速度。 该值越高,硬件性能越高,速度越快。 星等通常在m(10e6)、g(10e9)、t(10e12)范围内。 例如:96 GFLOPS 意味着每秒 9 次6 g 浮点运算(96 亿次浮点运算)。 FLOPS的局限性:FLOPS并不能完全反映硬件的计算性能,因为FLOPS没有反映很多影响执行性能的因素。 例如,IO 的性能、内存的架构、缓存一致性、...等。 (乘法累加运算)经常与 flops 的概念混淆,实际上 1macs 由乘法运算和一个加法运算组成,后者包含大约 2flops。 通常 MACS 与 FLOPS 有 2 倍的关系。 每秒执行的定点乘法和累加运算次数的缩写,是衡量计算机定点处理能力的指标,这个量常用在那些需要大量定点乘法和累加运算的计算中,并记录为MACS。 一个GMACS等于每秒10亿次(=10 9),乘法累积运算的全称是乘法累加运算,即乘法加法运算,1MACS包含乘法运算和一个加法运算,大约包含2flops。 通常 MACS 与 FLOPS 有 2 倍的关系。 MACS 和 MADDS 的意思是一样的。 假设使用一个简单的CNN网络来做转发,硬件资源的利用率称为利用率,因此利用率的计算简单描述为网络的计算量,通常是乘以和累积的次数。
测量网络运行所需的时间。
将累积次数除以计算网络 GFLOPS 所需的时间
将计算出的网络 GFLOPS 除以硬件资源的理论 GFLOPS,即利用率。
卷积运算占网络正向计算的90%以上。 重点介绍如何计算卷积的计算量。 为了简化问题,下面的讨论认为卷积使用滑动窗口并忽略了非线性计算的开销。 假设对于CNN网络,卷积层的参数包括:输入特征图的Cin、输出特征图的宽Hin、高Win、Cout、宽Hout、高Wout、卷积核的大小k、卷积核通道等于cin、卷积核数等于Cout。 那么卷积核和特征图之间的卷积量如下
其中 1 表示偏移量。 每个卷积核的偏差值对应于 1,并且总共有 couts。 (wx+b) 将 flops 除以 10e9 得到 GFLOPS。