首页 > 其他分享 >Training Deep Neural Networks with 8-bit Floating Point Numbers

Training Deep Neural Networks with 8-bit Floating Point Numbers

时间:2025-01-05 20:11:18浏览次数:6  
标签:lfloor Training Point cdot epsilon Neural rfloor bit swamping

目录

Wang N., Choi J., Brand D., Chen C. and Gopalakrishnan K. Training deep neural networks with 8-bit floating point numbers. NeurIPS, 2018.

本文提出了一种 8-bit 的训练方式.

主要内容

  • 本文想要实现 8-bit 的训练, 作者认为主要挑战是两个向量的点击 (各元素相乘再相加) 的过程会产生严重的 swamping 问题, 导致 smaller number 会被直接裁剪掉.

  • 于是本文的做法是, 乘法依旧在 8-bit 上做, 然后 accumulation 过程在加法上实现. 主要通过两个手段实现这一目的:

    1. Chunk-based Accumulation: 两个长向量的点积分解为数个 chunk 的点积再相加的过程, 这个好处是每个 chunk 的点积不会产生很严重的 swamping 问题的, 然后会产生严重 swamping 情况的问题因为实际上使用的 FP16 格式进行, 所以能够规避;
    2. Stochastic Rounding: 随机 rounding 是一种有效的规避 swamping 的方法. 特别地, 这里采用的 floating point stochastic rounding: 对于一个浮点数 \(x = s \cdot 2^e \cdot (1 + m)\) (\((s, e, m)\) 分别表示 (符号, 指数, 尾数))

    \[\text{Round}(x) =\left \{ \begin{array}{ll} s \cdot 2^e \cdot (1 + \lfloor m \rfloor + \epsilon) & \text{with probability } \frac{m - \lfloor m \rfloor}{\epsilon}, \\ s \cdot 2^e \cdot (1 + \lfloor m \rfloor) & \text{with probability } 1 - \frac{m - \lfloor m \rfloor}{\epsilon}, \end{array} \right. \]

    其中 \(\epsilon=2^{-k}\).

注: 浮点数表示个数包括 (sign, exponent, mantissa), 本文所讨论的 FP8 为 (1, 5, 2) 格式, FP16 为 (1, 6, 9) 格式.

标签:lfloor,Training,Point,cdot,epsilon,Neural,rfloor,bit,swamping
From: https://www.cnblogs.com/MTandHJ/p/18653799

相关文章

  • 错误记录:[Synth 8-6895] The reference checkpoint
    报错详情点击查看代码[Synth8-6895]ThereferencecheckpointE:/Projects/Vivado2023/2.ExampleDesign_my/iic_ms/iic_ms.srcs/utils_1/imports/synth_1/Master.dcpisnotsuitableforusewithincrementalsynthesisforthisdesign.Pleaseregeneratethecheckpoint......
  • 【AI学习笔记5】用C语言实现一个最简单的MLP网络 A simple MLP Neural network in C
    用C语言实现一个最简单的MLP网络AsimpleMLPNeural NetworkinClanguage 从图像中识别英文字母【1】从图像中识别多个不同的数字,属于多分类问题;每个图像是5*5的像素矩阵,分别包含1-5五个字母数字; 网络结构:一个隐藏层的MLP网络;       每个图像是5x5个......
  • Mixed Precision Training
    目录概主要内容NarangS.,DiamosG.,ElsenE.,MicikeviciusP.,AlbenJ.,GarciaD.,GinsburgB.,HoustonM.,KuchaievO.,VenkateshG.andWuH.Mixedprecisiontraining.ICLR,2018.概本文提出了混合精度训练.主要内容从FP32到FP16的一个重要问题是,......
  • Adapting Static Taint Analyzers to Soffware Marketplaces:A Leverage Point for Ma
    本论文选自SCORED22(不是顶会,但是在ACM官网搜索找到了,也是漏洞挖掘就做了一个梳理)论文工作提出了一种系统化的方法来专门化静态污点分析器,旨在提高软件市场的精确度和召回率。通过这种方法,努力提高静态污点分析的有效性和效率。本文提出的方法建立在文献检索领域的相关工作的......
  • 论文阅读:Securely Outsourcing Neural Network Inferenceto the Cloud with Lightweig
    目录1.引言(Introduction)2.预备知识(Preliminary)2.1加法秘密共享(AdditiveSecretSharing)3.系统概述(SystemOverview)3.1系统架构3.2威胁模型与隐私目标4.设计方案(ProposedDesign)4.1安全卷积层(SCONV)4.2安全批归一化(SBN)4.3安全ReLU激活(SReLU)4.4安全最大池......
  • SharePoint Online API 获取Image列
    前言最近,有个需求,想要获取Image类型的列进行展示正文使用的RESTAPI如下,img是Image列的列明,测试发现还区分大小写_api/Web/Lists/getbytitle('ListName')/Items(ItemId)?$select=img请求返回的正文,如下:{"d":{"__metadata":{"id":"......
  • 深度学习基础理论————训练加速(单/半/混合精度训练)/显存优化(gradient-checkpoint)
    主要介绍单精度/半精度/混合精度训练,以及部分框架(DeepSpeed/Apex)不同精度训练单精度训练(single-precision)指的是用32位浮点数(FP32)表示所有的参数、激活值和梯度半精度训练(half-precision)指的是用16位浮点数(FP16或BF16)表示数据。(FP16是IEEE标准,BF16是一种更适合AI计算的......
  • HAWQ: Hessian AWare Quantization of Neural Networks With Mixed-Precision
    目录概HAWQ(HessianAWareQuantization)DongZ.,YaoZ.,GholamiA.,MahoneyM.W.andKeutzerK.HAWQ:Hessianawarequantizationofneuralnetworkswithmixed-precision.ICCV,2019.概本文利用Hessian的topeigenvalues来定位对应block所需要的量化bitw......
  • PACT: Parameterized Clipping Activation for Quantized Neural Networks
    目录概主要内容ChoiJ.,WangZ.,VenkataramaniS.,ChuangP.I.,SrinivasanV.andGopalakrishnanK.PACT:Parameterizedclippingactivationforquantizedneuralnetworks.2018.概本文提出对网络中的激活值进行裁剪以实现更低量化.主要内容作者的思想很简单......
  • java.lang.NullPointerException
    1、字符串变量未初始化2、接口类型的对象没有用具体的类初始化,比如:Mapmap//会报错Mapmap=newMap();//则不会报错了3、当一个对象的值为空时,你没有判断为空的情况。4、字符串与文字的比较,文字可以是一个字符串或Enum的元素,如下会出现异常Stringstr=null;if(str.equals(“T......