1. FLOPS
FLOPS是Floating-point Operations Per Second的缩写,代表每秒所执行的浮点运算次数。现在衡量计算能力的标准是TFLOPS(每秒万亿次浮点运算)
NVIDIA显卡算力表:CUDA GPUs - Compute Capability | NVIDIA Developer
例如: 以GTX680为例, 单核一个时钟周期单精度计算次数为两次,处理核个数 为1536, 主频为1006MHZ,那他的计算能力的峰值P 为:P = 2 × 1536 × 1006MHZ = 3.09TFLOPS,1T为1兆,也就是说,GTX680每秒可以进行超过3兆次的单精度运算。
各种FLOPS的含义
MFLOPS (megaFLOPS):每秒一百万 (=10^6) 次的浮点运算
GFLOPS (gigaFLOPS) :每秒十亿 (=10^9) 次的浮点运算
TFLOPS (teraFLOPS) :每秒一万亿 (=10^12) 次的浮点运算
PFLOPS (petaFLOPS) :每秒一千万亿 (=10^15) 次的浮点运算
2. TOPS
TOPS(Tera Operations Per Second)表示”每秒操作一兆次数“,1TOPS代表处理器每秒钟可进行一万亿次(10^12)操作。
一般的默认TOPS的操作是以int8为基准,FLOPS此时如果是以半精度浮点数FP16的话,则有个大致的换算关系为:1TFLOPS=2TOPS。
3. OPS与FLOPS
OPS是操作数量,FLOPS特指浮点型操作数量,通常情况下,FLOPS比OPS稍大。如果按照FP16衡量标准,两者可近似于相等。
传统的GPU采用GFLOPS,NPU的时代为了支持AI计算,采用TOPS。
4. 算力与AI芯片算力
算力是芯片单位时间里处理数据的能力,算力越高,单位时间里处理的数据量越大。简单理解,算力就是芯片解决某一个领域问题时单位时间内所能计算的次数。
第一是是算力可以用客观的数据去衡量,比如说常见的 GFLOPS 也就是每秒十亿/十亿(109)次的浮点运算) , TFLOPS 则是等于每秒一兆/一万亿(1012)次的浮点运算,PFLOPS(petaFLOPS)等于每秒一千兆/一千万亿(1015)次的浮点运算;
第二则是算力限定了领域,不同类型的芯片有自己侧重的场景,没必要跨领域对比,不同测试方法的结果也不太能直接横向对比。
所以要确定不同精度算力的性能,需通过各自领域内的专用测试程序来测试:比如说测超算有 Linpack 主要考察平台的双精度浮点算力;测人工智能应用性能的 Resnet-50 更看重的是半精度算力。
AI芯片算力又是算力中专门的一个领域,低标准下的高算力是比不上高标准下的低算力的,比如INT4标准下的100TOPS算力是要远弱于INT8标准下的90TOPS的。高标准下高算力,才能称之为强算力芯片。
评估AI芯片算力的常见单位是OPS,意为每秒执行的操作(operation)数量。不同于CPU和GPU等通用处理器,在单个时钟周期下的可执行操作数量很低;AI芯片通过设计特殊的计算单元,实现了超高的操作数量。例如谷歌的初代TPU,其256x256的脉动阵列,在单个时钟周期下可执行65536个操作数量。由于其乘法单元是8bit的,主频700MHz,故算力为int8@65536x(1+1)x700MHz=92Tops。其中1+1分别代表1次加法操作和1次乘法操作。