芯片模型算力指标TOPS FLOPS MAC MACC MADD关系

1.TOPS(Tera Operations Per Second)每秒万亿次操作 处理器运算能力单位

TOPS是Tera Operations Per Second的缩写,1TOPS代表处理器每秒钟可进行一万亿次(10^12)操作。没有指定数据类型,具体评价算力需要结合数据精度。例如某块芯片算力在INT8的数据格式下1TOPS算力,另外芯片在实际跑模型时也无法达到百分之百 ,百分之五十左右较为正常。

与此对应的还有GOPS(Giga Operations Per Second),MOPS(Million Operation Per Second)算力单位。1GOPS代表处理器每秒钟可进行十亿次(10^9)操作,1MOPS代表处理器每秒钟可进行一百万次(10^6)操作。TOPS同GOPS与MOPS可以换算。

在某些情况下,还使用 TOPS/W 来作为评价处理器运算能力的一个性能指标,TOPS/W 用于度量在1W功耗的情况下,处理器能进行多少万亿次操作。

1.1 TOPS理论值取决于运算精度,MACC的数量和运行频率。

可大致简化为INT8位精度下的MACC(乘加运算 下面有解释)数量在FP16(半浮点数,也就是16位浮点数)精度下等于减少了一半。FP32(浮点数,也就是32位浮点数)再减少一半,依次类推。

假设有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。英伟达的Tesla V100有640个Tensor核,每核有64个MAC运算单元,运行频率大约1.480GHz,那么INT8下算力为640 * 64 * 2 * 1.480 GHz=121TOPS。

 TOPS仅仅指处理器每秒万亿次操作,需要结合具体数据类型精度才可以于FLOPS转换。

2.FLOPS(floating-point operations per second)每秒所执行的浮点运算次数,表示运算速度。

区别于FLOPs
是“每秒所执行的浮点运算次数”(floating-point operations per second)的缩写。它常被用来估算电脑的执行效能,尤其是在使用到大量浮点运算的科学计算领域中。正因为FLOPS字尾的那个S,代表秒,而不是复数,所以不能省略掉。

在这里所谓的“浮点运算”,实际上包括了所有涉及小数的运算。这类运算在某类应用软件中常常出现,而它们也比整数运算更花时间。现今大部分的处理器中,都有一个专门用来处理浮点运算的“浮点运算器”(FPU)。也因此FLOPS所量测的,实际上就是FPU的执行速度。而最常用来测量FLOPS的基准程式(benchmark)之一,就是Linpack。

FLOPS换算
一个MFLOPS(megaFLOPS)等于每秒一百万(=10^6)次的浮点运算,

一个GFLOPS(gigaFLOPS)等于每秒十亿(=10^9)次的浮点运算,

一个TFLOPS(teraFLOPS)等于每秒一万亿(=10^12)次的浮点运算,

一个PFLOPS(petaFLOPS)等于每秒一千万亿(=10^15)次的浮点运算。

3.FLOPs(FLoating point OPerations(s表复数))浮点运算次数,表示运算量,区别于FLOPS。

这个参数常用来评价深度学习的模型的运算量,如果已知模型FLOPs可通过换算求的某个已知参数的芯片运行一遍模型的时间。

例如INT8 1TOPS算力的芯片  1TFLPs的模型  假设芯片效率百分之百  运行一遍 需要4秒  因为1TFLPs单位是FP32

意指浮点运算数,理解为计算量。可以用来衡量模型的复杂度。针对神经网络模型的复杂度评价,应指的是FLOPs,而非FLOPS。FLOPS意指每秒浮点运算次数,理解为计算速度。

FLOPs描述了数据过一遍这么复杂的网络需要多大的计算量,即使用该模型时所需的计算力总量。

MAC(Memory Access Cost)内存访问成本 

MAC描述了这个复杂的网络到底需要多少参数才能定义它,即存储该模型所需的存储空间。

例如某个模型需要256000个浮点参数定义,转化为bit 乘以32得8192000bit,再除8转化为Byte,1024KB,也就是1M,那么这个模型大小约为1M。

MADDs、MACCs(multiply-accumulate operations(s表复数))

MADDs、MACCs同一个意思。

表示乘加运算:b乘c 加上a重新赋值于a 为一次MACC指令  两次OP 1MACC ≈ 2OP

乘加运算是模型运算里的基本单元,矩阵的运算基本都是乘加。

你可能感兴趣的:(机器学习,深度学习,ai)