算力(计算机、芯片、TOPS、DMIPS、MACs等)相关缩写及定义
1. MAC
- MAC:memory access cost,内存访问成本
MAC描述了神经网络的参数量,即存储该模型所需的存储空间。例如,某个模型需要256000个浮点参数定义,转化为bit 乘以32得8192000bit,再除8转化为Byte,1024KB,也就是1M,那么这个模型大小约为1M。
2. MACs、MACC、MADD、MACCs、MADDs
- MACs = MACC = MADD = MACCs = MADDs:multiply-accumulate operations、multiply-add operations,乘加运算数
MACs、MACC、MADD、MACCs、MADDs表示相同的意思;一次MACC指令为两次OP,即 1MACC ≈ 2OP;
3. FLOPs
- FLOPs:floating point operations,浮点运算数
注意s小写,可以用来衡量算法/模型的复杂度
4. FLOPS、MFLOPS、GFLOPS、TFLOPS、PFLOPS
- FLOPS:floating point operations per second,每秒浮点运算数
注意S大写,是一个衡量硬件性能的指标
-
MFLOPS:mega floating point operations per second,每秒百万浮点运算数,106 FLOPS
-
GFLOPS:giga floating point operations per second,每秒十亿浮点运算数,109 FLOPS
-
TFLOPS:tera floating point operations per second,每秒万亿浮点运算数,1012 FLOPS
-
PFLOPS:peta floating point operations per second,每秒千万亿浮点运算数,1015 FLOPS
5. MIPS、DMIPS
-
MIPS:million instructions per second,每秒百万条指令
-
DMIPS:dhrystone million instructions executed per second,dhrystone每秒执行百万条指令
其中dhrystone是一种整数运算测试程序
6. OPS、MOPS、GOPS、TOPS、POPS
- OPS:operations per second,每秒运算数
注意S大写,是一个衡量硬件性能的指标,具体评价算力需要结合数据精度(如int8、fp16、fp32),在结合具体数据类型精度后才可以与FLOPS转换。
在确定MACC阵列大小的基础上,算力 = 频率 * MACC数量 * 2 (单个计算单元可以完成乘加);例如:假设有512MACC运算单元,运行频率为1GHz,INT8的数据结构和精度,算力为512 x 2(2理解为一个MACC为一次乘法和一次加法,为两次运算操作) x 1 GHz = 1000 Billion Operations/Second = 1 TOPS(Tera-Operations/second)。FP16精度那么就是0.5TOPS,FP32精度就是0.25TOPS。
在某些情况下,还使用 TOPS/W 来作为评价处理器运算能力的一个性能指标,TOPS/W 用于度量在1W功耗的情况下,处理器能进行多少万亿次操作。
- MOPS:mega operations per second,每秒百万运算数,106 OPS
- GOPS:giga operations per second,每秒十亿运算数,109 OPS
- TOPS:tera operations per second,每秒万亿运算数,1012 OPS
- POPS:peta operations per second,每秒千万亿运算数,1015 OPS