1、定义

算力的计量单位FLOPS(Floating-point operations per second),FLOPS表示每秒浮点的运算次数。具体使用时,FLOPS前面还会有一个字母常量,例如TFLOPS、PFLOPS。这个字母T、P代表次数,T代表每秒一万亿次,P代表每秒一千万亿次。

除了运算次数,衡量算力水平时还要看算力精度。例如,1000FLOPS的AI计算中心所提供的的算力,与1000FLOPS超级计算机提供的算力,虽然数值相同,但由于精度不同,实际算力水平也是天壤之别。

根据参与运算数据精度的不同,可把算力分为

  1. 双精度浮点数(64位,FP64)
  2. 单精度浮点数(32位,FP32)占用4个字节,共32bit位,其中1位为符号位,8位指数位,23位小数位
  3. 半精度浮点数(16位,FP16),占用2个字节,共16位,其中1位为符号位,5位指数位,10位有效数字位(小数),与FP32相比,FP16的访存消耗仅为1/2,也因此FP16是更适合在移动终端侧进行AI计算的数据格式。
  4. 用5bit 表示指数,10bit 表示小数,占用2字节;
  5. 8位整型数(INT8、INT4),占用1个字节,INT8是一种定点计算方式,代表整数运算,一般是由浮点运算量化而来。在二进制中一个“0”或者“1”为一bit,INT8则意味着用8bit来表示一个数字。因此,虽然INT8比FP16精度低,但是数据量小、能耗低,计算速度相对更快,更符合端侧运算的特点;
  6. 混合精度:简单的讲就是使用fp16进行乘法和存储,只使用fp32进行加法操作,避免累加误差;

在数据表示范围上,FP32和FP16 表示的整数范围是一样的,小数部分表示不一样,存在舍入误差;FP32和FP16 表示的数据范围不一样,在大数据计算中,FP16存在溢出风险。

以下为int8范围为何是-128 至 127的解释

int8占1个字节,1字节(byte)占8位(bit), 其中最高位代表符号位 1-负号;0-正号
那么最大数值的二进制为:
0 1 1 1 1 1 1 1
换算成10进制为 从低位到高位开始计算
0       1       1       1       1       1       1       1
0*2^7 + 1*2^6 + 1*2^5 + 1*2^4 + 1*2^3 + 1*2^2 + 1*2^1 + 1*2^0
0     + 64    + 32    + 16    + 8     + 4     + 2     + 1
= 127

最小数值的二进制应与最大数值相反, 10000000
换算成10进制为 从低位到高位开始计算
1       0       0       0       0       0       0       0
1*2^7 + 0*2^6 + 0*2^5 + 0*2^4 + 0*2^3 + 0*2^2 + 0*2^1 + 0*2^0
128   + 0     + 0     + 0     + 0     + 0     + 0     + 0
= 128
 
其实还有一种很好理解的解释
1.int8占1个字节(byte) 也就是8个二进制位(bit)
2.每个二进制位 可以存储0 和 1 两个数 ,8个二进制位就有2^8 = 256种组合(可以存储256个数)
3.int8为有符号,所以正数和负数将平分256个数。256 / 2 = 128
4.负数为128个数 最小值为-128
5.正数为128个数,0占一个数 最大值为+127
 
如果是uint8(8bit无符号-没有负数) 2^8 = 256
0 占一个数 ,所以最大是255

2、比较

低精度技术 (high speed reduced precision)。在training阶段,梯度的更新往往是很微小的,需要相对较高的精度,一般要用到FP32以上。在inference的时候,精度要求没有那么高,一般F16(半精度)就可以,甚至可以用INT8(8位整型),精度影响不会很大。同时低精度的模型占用空间更小了,有利于部署在嵌入式模型里面。

利用fp16 代替 fp32
优点:
1)TensorRT的FP16与FP32相比能有接近一倍的速度提升,前提是GPU支持FP16(如最新的2070,2080,2080ti等)
2)减少显存。
缺点:
1) 会造成溢出

3、测试

参考文章:TensorRT模型转换及部署,FP32/FP16/INT8精度区分_BourneA的博客-CSDN博客_tensorrt半精度

int8,FLOPS,FLOPs,TOPS 等具体含义相关推荐

  1. DMIPS, TOPS, FLOPS, FLOPs, GMACs, FMA

    FLOPS MFLOPS GFLOPS TFLOPS PFLOPS GFLOPS是Paper里比较流行的单位. MFLOPS Mega(106)/Giga(109)/Tera(1012)/Peta(1 ...

  2. FLOPS和TOPS的区别 以及 算力的计算方法

    FLOPS和TOPS的区别 以及 算力的计算方法 1GHz 就是每秒十亿次运算 1GHz     相当于 1GFLOPS 1TOPS   相当于 1TFLOPS 一.FLOPS FLOPS,即每秒浮点 ...

  3. FLOPS、TOPS和FLOPs的区别

    FLOPS,即每秒浮点运算次数, 是每秒所执行的浮点运算次数(Floating-point operations per second:缩写:FLOPS)的简称,被用来评估电脑效能. FLOPs:注意 ...

  4. FLOPs FLOPS

    FLOPS 注意全部大写 是floating point of per second的缩写,意指每秒浮点运算次数.用来衡量硬件的性能. FLOPs 是floating point of operati ...

  5. FLOPS, FLOPs and MACs

    FLOPS: Floating Point Operations Per Second, 每秒浮点运算次数,是一个衡量硬件速度的指标 FLOPs: Floating Point Operations, ...

  6. CNN 模型的参数(parameters)数量和浮点运算数量(FLOPs)是怎么计算的

    文章目录: 1 模型参数(parameters)的个数 1.1 模型参数介绍 1.2 常见网络的模型参数个数 1.2 举例如何计算神经网络模型参数 2 FLOPS:每秒浮点运算次数 2.1 `FLOP ...

  7. 【深度学习】深度学习中模型计算量(FLOPs)和参数量(Params)等的理解以及四种在python应用的计算方法总结

    接下来要分别概述以下内容: 1 首先什么是参数量,什么是计算量 2 如何计算 参数量,如何统计 计算量 3 换算参数量,把他换算成我们常用的单位,比如:mb 4 对于各个经典网络,论述他们是计算量大还 ...

  8. 机器学习笔记:FLOPs

    1 FLOPS与FLOPs FLOPS:floating point operations per second的缩写,意指每秒浮点运算次数,理解为计算速度.是一个衡量硬件性能的指标. FLOPs:注 ...

  9. 6种方法计算神经网络参数量Params、计算量FLOPs、Macs简单代码

    方法1:统计模型参数量 total = sum([param.nelement() for param in model.parameters()]) print("Number of pa ...

最新文章

  1. Log控制台打印设置
  2. 信号编程之sigaction函数和sigqueue函数
  3. HDU 2094 产生冠军 (map容器)
  4. 工作107:静态路由
  5. oracle table 函数使用
  6. php删除数组中的空元素_PHP | 从数组中删除所有出现的元素
  7. 诗与远方:无题(三十四)- 曾经写给妹子的一首诗
  8. python cookbook 学习笔记 -- 1.5 去除字符串两端空格
  9. 《从0到1:CTFer成长之路》书籍配套题目-[第二章 web进阶]死亡ping命令
  10. 压力传感器的常见螺纹
  11. QT QLabel中字体行间距怎么设置?
  12. Python模拟网页form表单提交
  13. java stack top_Java中的堆栈类Stack类 - Break易站
  14. 关于 Burrows-Wheeler 变换和 Lempel-Ziv 解析的一些认识
  15. 51单片机c语言编程函数,单片机C语言教程:C51函数
  16. Bootstrap CSS Layout (1) - Breakpoint
  17. okio 原理分析(一)
  18. 关于builder模式的使用
  19. H.265/HEVC学习之xCompressCU函数
  20. August(八月)的来源

热门文章

  1. [ZT]企业建站常用中英文对照表
  2. 为什么在抖音直播间打字别人看不见,所有抖音直播间看不见我说话
  3. leangoo大讲堂—北京站
  4. 实战教程!利用Python获取数据,并在地图上批量标注
  5. 软件测试bug分析定位技巧
  6. 赠与今年的大学毕业生
  7. 电源接反了烧电路怎么办?电源防反接技术讨论
  8. 大数据存储与备份,迫在眉睫!
  9. SpringBoot:三十五道SpringBoot面试题及答案!
  10. 手机计算机里面的符号代表什么意思,手机上这些符号是什么意思,全知道的没几个人...