int8,FLOPS,FLOPs,TOPS 等具体含义

这篇具有很好参考价值的文章主要介绍了int8,FLOPS,FLOPs,TOPS 等具体含义。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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,FLOPS,FLOPs,TOPS 等具体含义

 int8,FLOPS,FLOPs,TOPS 等具体含义

 以下为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、测试

int8,FLOPS,FLOPs,TOPS 等具体含义

参考文章:TensorRT模型转换及部署,FP32/FP16/INT8精度区分_BourneA的博客-CSDN博客_tensorrt半精度文章来源地址https://www.toymoban.com/news/detail-439596.html

到了这里,关于int8,FLOPS,FLOPs,TOPS 等具体含义的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一文讲解thop库计算FLOPs问题

    计算模型的FLOPs及参数大小 FLOPS是处理器性能的衡量指标,是“每秒所执行的浮点运算次数”的缩写。 FLOPs是算法复杂度的衡量指标,是“浮点运算次数”的缩写,s代表的是复数。 一般使用thop库来计算,GitHub: https://github.com/Lyken17/pytorch-OpCounter 但官网的Readme中详细写出了是

    2024年01月19日
    浏览(42)
  • 神经网络模型的参数量和FlOPS

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

    2024年02月02日
    浏览(37)
  • 统计神经网络参数量、MAC、FLOPs等信息

    1、FLOPS是用来衡量硬件算力的指标,FLOPs用来衡量模型复杂度。 2、MAC 一般为 FLOPs的2倍 3、并非FLOPs越小在硬件上就一定运行更快,还与模型占用的内存,带宽,等有关 神经网络参数量。用于衡量模型大小。一般卷积计算方式为: F L O P s = 2 ∗ H W ( K h ∗ K w ∗ C i n + 1 ) C o u

    2024年02月15日
    浏览(72)
  • 神经网络的参数量(Params)和计算量(FLOPs)

    参数量(Params) 参数量是指模型训练中需要训练的参数总数。用来衡量模型的大小(计算空间复杂度)。 计算量(FLOPs) 浮点运算次数,理解为计算量(计算时间复杂度),可以用来衡量算法的复杂度,常用做神经网络模型速度的间接衡量标准(虽然最近已经有文章证明靠FLOPs间接标

    2023年04月16日
    浏览(40)
  • 「HDLBits题解」Latches and Flip-Flops

    本专栏的目的是分享可以通过HDLBits仿真的Verilog代码 以提供参考 各位可同时参考我的代码和官方题解代码 或许会有所收益 题目链接:Dff - HDLBits 题目链接:Dff8 - HDLBits 题目链接:Dff8r - HDLBits 题目链接:Dff8p - HDLBits 题目链接:Dff8ar - HDLBits 题目链接:Dff16e - HDLBits 题目链接:

    2024年01月19日
    浏览(37)
  • 使用PyTorch构建神经网络,并使用thop计算参数和FLOPs

    FLOPs和FLOPS区别 FLOPs(floating point operations)是指浮点运算次数,通常用来评估一个计算机算法或者模型的计算复杂度。在机器学习中,FLOPs通常用来衡量神经网络的计算复杂度,因为神经网络的计算主要由矩阵乘法和卷积操作组成,而这些操作都可以转化为浮点运算次数的形式

    2024年02月03日
    浏览(43)
  • PostgreSQL不使用扩展,生成随机int8值,生成均匀分布的随机int8值

    在PostgreSQL中,可以使用 pgcrypto 扩展提供的函数 gen_random_uuid() 生成随机的UUID(Universally Unique Identifier),其中包含8字节随机整数(int8值),如下所示: 上述SQL语句使用 gen_random_uuid() 函数生成随机UUID,并将其转换为字符串类型。然后,使用 substring() 函数从字符串中提取前

    2024年02月09日
    浏览(52)
  • 【YOLOv5-6.x】模型参数量param及计算量FLOPs解析

    评价一个用深度学习框架搭建的神经网络模型,除了精确度(比如目标检测中常用的map)指标之外,模型复杂度也必须要考虑,通常用正向推理的计算量(FLOPs)和参数个数(Parameters)来描述模型的复杂度。   参数量 有参数的层主要包括: 卷积层 全连接层 BN层 Embedding层 少数激活

    2024年02月04日
    浏览(48)
  • 关于Yolov7-tiny模型瘦身(param、FLOPs)碎碎念

    优于模型落地需要,yolov7-tiny版本的参数量(Param)为6.2M,FLOPs在输入为320*320下为3.46G,想着还能不能再进行减少这两者或其中之一(精度方面还未做效果验证)。 于是翻遍了github,没有关于v7的剪枝方法,替换backbone也大部分是基于yolov5s的,眼花缭乱中看到yolov7的github官方作者的

    2024年02月05日
    浏览(51)
  • 【HDLBits 刷题 6】Circuits(2)Sequential Logic---Latches and Filp Flops

    目录   写在前面 Latches and Filp Flops Dff Dff8 Dff8r Dff8p Dff8ar Dff16e D Latch DFF1 DFF2 DFF gate Mux and DFF1 Mux and DFF2 DFFs and gates creat circuit Edgedetect Edgedetect2 Edgecapture Dualedge 总结   本篇博客对 Circuits 部分的组合逻辑前两节做答案和部分解析,一些比较简单的题目就直接给出答案,有些难度

    2024年02月03日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包