没有合适的资源?快使用搜索试试~ 我知道了~
6364HyperBlock浮点:用于梯度和推断计算的广义量化方案Marcelo Gennari do Nascimento牛津大学-主动视觉实验室Parks Road,Oxford OX 1 3 PJmarcelo@robots.ox.ac.uk罗杰·福塞特英特尔公司Eclipse,Globe Park,Marlow SL71YLroger. intel.comVictor Adrian Prisacariu牛津大学主动视觉实验室Parks Road,Oxford OX1 3PJvictor@robots.ox.ac.uk马丁·朗哈默英特尔公司Eclipse,Globe Park,Marlow SL71YLmartin. intel.com摘要先前的量化方法专注于生成用于快速和轻量级推理的网络。然而,未量化训练的成本被忽视了,尽管它比推理需要更多的时间和精力。我们提出了一种量化卷积神经网络以进行有效训练的方法。量化梯度具有挑战性,因为它需要更高的粒度,并且它们的值比权重和特征图跨越更宽的范围。我们提出了一个扩展的逐块浮点格式,允许快速梯度计算,使用最少的量化时间。这是通过在深度和批处理维度上共享指数来实现的,以便在反向传播过程中重复使用一次张量我们使用标准模型(如AlexNet,VGG和ResNet)在CI-FAR10,SVHN和ImageNet数据集上测试我们的方法。当将AlexNet权重、激活和梯度量化为仅4位训练ImageNet时,我们没有表现出准确性的损失1. 介绍卷积神经网络在各种应用中无处不在,从图像识别[18]到人脸识别[34]。这些模型的一个缺点是所需的计算资源量。据估计,为了在ImageNet上实现当前11.5%的错误基准,仅计算成本就花费了大约106美元[36]。因此,为了使模型运行得更快,使用更少的内存和能源,已经进行了大量的研究。量化现在是解决这个问题的重要方法问题.该方法已被业界成功用于部署到嵌入式设备[14]和服务器[8]。然而,大部分的努力已经投入到量化模型的推理,只集中在向前传递。对梯度量化的研究明显较少在开发周期中,训练网络的时间非常长:向后传递需要的卷积计算是向前传递的两倍在那里-因此,最重要的是加速向后传球。许多因素导致了这一点,包括对梯度的更高精度要求,以及专注于向最终用户部署而不是优化生产。此外,许多方法使用不同的量化方案(硬件)用于前向和后向传递。例如,Habana Labs使用特定的硬件进行训练(高迪[19]),另一个用于推理(戈雅[20]);像DoReFa-Net [49]这样的重要论文使用不同的量化方案来进行梯度和权重/激活。基于这一动机,我们提出了一种方法来解决使用低精度计算梯度的挑战,同时在训练和推理中使用相同的量化构建块。我们的方法量化了卷积神经网络的两个通道,使得大部分乘法和加法都是在窄精度下完成的我们的贡献如下:• 一种使用相同的硬件和量化方案对前向和后向通道进行量化的方法• 块浮点的一种扩展,允许较少的量化转换操作。• 在各种数据集和不同系列的架构中获得稳健的结果,包括将AlexNet量化到4位时不会损失6365- ××我们的方法采用块浮点(BFP)方法进行反向传播,通过使用简单的指数共享算法,可以在窄位宽下实现高精度。此外,我们引入了一种称为HyperBFP的BFP变体,它省去了张量的冗余量化通道,使系统设计更简单,需要更低的内存带宽。使用这些方法,即使在最具挑战性的数据集(如ImageNet)上,我们也能够获得高质量的结果我们表明,当使用小的块大小,如8或16,我们可以得到很少的损失时,量化,ING低至2位的精度。当我们使用稍大的块大小(如32)时,即使将权重、激活和梯度量化为4位,也不会损失精度2. 相关工作已经尝试了许多方法来加速神经网络计算。最自然的方法是选择更好的模型。目标是找到比零售硬件(如CPU和GPU)上的传统方法运行更快的架构。这导 致 找 到 了 有 效 的 架 构 , 既 有 人 类 设 计 的 , 如MobileNetV 2 [31],ShuffleNet [47],也有使用神经架构搜索(NAS)的自动化方法,如MNasNet [35]和FB-Nets [40]。量化方法可以与更好的模型选择结合使用,以获得额外的速度和能源效益。这已被证明是工作,甚至在高效的移动网络[15]。在量化方面有大量的文献,可以分为两个任务:量化推理和量化训练。2.1. 量化推理目标是优化权重和激活,允许快速推理算法,因为使用低精度的兼容硬件操作比常规FP32格式更快且空间这些方法中的大多数这种类型的方法的一个例子包括QNN [11],它是第一个包含二进制权重的方法之一。其他示例包括半波高斯量化(HWGQ [2]),ABC-Net [24],LQ-Nets [44]和PSGD[16]第10段。[22]的工作用自适应梯度缩放函数代替了普遍使用的直通估计(STE),该函数缩小了使用STE时给出的误差量化推理的另一种变体是量化模型,而不需要(未标记的)数据,或使用合成数据,这被称为训练后量化。例如[23,25,26,46]仅使用少量(未标记)数据(或合成数据)来构造网络。该方法的优点是不需要进一步的训练,通常仅利用校准步骤。2.2. 量化训练绝大多数量化方法只关注量化模型的前向传递(推理)部分。有几种方法也可以将梯度扩展到低位宽[41,43]。这也意味着反向传递可以在专用硬件中更快地完成。这些方法中的一些包括[45],其使用仅用于前向和后向传递的定点计算,对不同层采用不同的位宽(从用于权重和激活的int 8到用于梯度的int 8,int 16和int 24的组合);[6]使用端到端块浮点启发的量化技术来训练具有量化的前向和后向通道的CNN;[1]在使用8位进行量化时也显示出良好的结果。DoReFa-Net[49],其旨在通过使用手动设计的变换函数来实现二元权重、激活和梯度量化与我们的工作最相关的论文包括SWALP [42]和[48],这两篇论文都能够完全解析卷积神经网络的向后和向前传递。其他方法,如ALQ/AMQ [7]和TRN[39],只考虑了通信效率的随机梯度。除了关于量化的学术论文外,业界还采用了不同的浮点标准,以加速使用窄精度的计算。NVIDIA在A100 GPU[29]其使用8位指数和10位尾数; Google在TPUv3上使用BFloat 16格式[38],它使用8位指数和7位尾数。8-位浮点数也被提议用于训练[37]。本文将重点关注量化训练,我们将通过展示一种基于BFP格式的量化梯度的新方法来扩展文献。3. 前导码IEEE- 754 [12]定义的单浮点(FP)格式包括使用32位(FP 32)表示数字:1表示符号,8表示指数,23表示尾数它的十进制值可以通过公式a=(1)b02((b1b2...)( 2−127)1.b9b11. b31,其中()2表示二进制格式,b n是该表示的第n个二进制值:b0固定标志,b1. 8指定指数,而b9. 31指定其尾数。不同的格式通过改变用于指数和尾数的位数来平衡范围和精度(参见BFloat16 [38],TensorFloat32 [29]和FP8 [37])。定点格式的限制稍多,因为它们缺乏大范围值的可能性,但也需要较小的硬件操作区域。BFP格式不是单个值的表示,而是由一组值的格式组成6366ΣΣ∇∈∇∈OAOO输入/输出通道尺寸(见图2),这使反向传递中的卷积运算复杂化。给定核W(o,i,k,k)、输入A(b,i,wa,ha)和特征映射F(b,o,wa,ha),其中i是输入通道,o是输出通道。put通道,wa是宽度,ha是高度,b是批量大小,k是内核宽度和高度,卷积的前向传递定义为:33ifb,o,wa,ha=wo,id,k,k·ab,id,wa+k,ha+k图1:描述块浮点格式的图表块大小为4。 请注意,在BFP格式中,k k id `InnerMACx+尾数位是定点整数,并且共享指数充当整个块上的比例值。该表示类似于FP32,但不是每个数字都有一个指数,而是在一定数量的值中共享相同的指数。图1显示了它是如何工作的。不是每个数字由单独的指数和尾数值表示,BFP在这种情况下跨越4个值共享单个指数,然后以定点表示。BFP然后平衡浮动范围假设内核大小等于3,则调整填充和步幅以保持相同的宽度和高度。卷积可以被视为将输入特征从具有i个通道变换为具有o个通道的输出特征。对于BFP,权重和激活在块中共享指数,允许低精度计算。因此,上述等式右侧的内部MAC变为:#blkblkwo,n·blk+ib,k,k·ab,n·blk+ib,wa+k,ha+k点与不动点的高效计算这种策略已被应用于CNN和张量,nib`完成时间:10-20分钟-精度:x前面。以前的论文使用了不同的策略来共享指数:仅用于推理[5,27,28],也用于训练[4,6,32,42]。大多数方法在整个张量或批处理中共享SWALP [42]同时其中,#blk表示卷积中的块的数量(例如,如果blk =32并且i = 128,则块的数量是4)。为了使反向传播工作,“Big-block”跨批次规范化层,并完全组成相对于核的对于输入特征,R(o,i,k,k),且(b,i,wa,ha),鉴于连接(FC)层。我们认为,这些选项不一定是限制性的,并且可以通过使用较小的块来获得更高的准确性。我们遵循[27]的策略,相对于特征图IFR(b,o,wa,ha)的梯度,需要计算。两者都可以通过使用转置卷积来获得:这些指数是按信道共享的。这允许在准确性和计算之间进行细粒度的权衡A1i=tconv(W,Δo)同时利用硬件中的定点操作。当从FP32转换为BFP格式时,跨通道维度,对于大小为blk的每个向量,选择最大指数,并且在所有其他值之间共享该指数。这是通过计算每个值所需的尾数的移位来实现的,以强制执行相同的指数。Pconv(Ai,PconvAo)其中,tconv表示转置卷积算子,pconv表示置换卷积算子。它们都可以用普通卷积来定义(忽略步幅,填充,分组等)。在推理过程中,当使用这种格式时,卷积可以通过仅使用整数乘法来执行,tconv(W,Ao ):=conv(W180T、A)每个块的累加(MAC)操作(通道方式),加上少量的所得标量的FP求和,这被证明是有效的推理。4. 方法我们提出了一种基于BFP格式的低精度计算的量化权重、激活和梯度的BFP对转座不是不变的,pconv(Ai,lA):=conv(AiT,lT)T其中,180表示在第三维度和第四维度(w,h)上旋转180度,T表示在第一维度和第二维度(i,b)上换位。注意,对于tconv和pconv,前两个dimen-需要转置,这在应用BFP操作时会导致问题,因为预先跨深度共享的指数现在跨批处理/6367←←←←←←←←图2:BFP和HyperBlock的区别。在这个例子中,张量的形状为(2,4,1,1),batch= 2,channel= 4,width=height= 1,blk=2。相同颜色的单元格对应于相同的共享指数。在BFP中,在转座之前,细胞被对齐,使得MAC可以在块内进行。转置后,BFP不具有此属性,因为具有共享指数的数字在不同的批次中。HBFP在转置后将共享的指数保持在相同的批次中,因为它们在2 × 2的2D块中共享。外部信道维度,这意味着不能再利用仅使用整数运算的MAC,因为它们不再共享指数。图2显示了BFP的问题。在通道和批/输出通道维度的转置之后,指数不再共享,这使得不可能利用硬件中的低位宽MAC操作。有两种方法可以避免这种我们将在下一节中对两者进行比较。4.1. 直接梯度块浮点简单地将BFP应用于梯度意味着在转置之后但在卷积之前添加BFP量化器。这意味着,就在张量卷积之前,BFP量化器应用于将要执行点积的维度在向前传球中,这意味着根据重量和激活来应用BFP在反向传递中,这意味着在激活和梯度中跨批次应用BFP,以便对它们进行卷积,从而产生相对于权重的梯度;并且在权重中跨输出通道并且在梯度中跨通道执行卷积,从而产生相对于激活的梯度。图3a显示了这是如何完成的。注意,因为BFP不是置换不变的, 每次卷积时都需要在正常和经变换的维度中应用张量的量化这有两个含义:首先,对于每个卷积层总共需要对张量进行6次重传-两次在前向传递中用于权重和激活,并且4次在后向传递中用于权重、激活和相对于特征图的梯度的转置版本;其次,由于不同的维度是动态量化的,因此所有张量都需要存储在FP 32中,算法一:块浮点量化器Input:Input[N,C,W,H],BIT,BLK结果:IntT[N,C,W,H],ExpT[N,blk,W,H]; blk = ceil(C/BLK);//第1部分:组装ExpT对于n=0:N; w=0:W; h=0:H;b=0:blk,最大值为-127;对于c blk=0:BLK,c c blk + b * BLK;int [n,c,w,h];如果e> max e,则max e e;结束结束ExpT[n,b,w,h]← max e;端//第2部分:对n=0:N; w=0:W组装IntT; h=0:H;c=0:C; do eget exp(Input[n,c,w,h]);int n(int n,n,n);sign(Input[n,c,w,h]);shift(ExpT[n,floor(c/BLK),w,h]-e); m =(m>> shift)+ U(0,1);int n = nums(nums,nums); IntT[n,c,w,h] = s&&m;端因此需要相当高的带宽。算法1详细说明了该实现。首先,对于张量中的每6368个块,提取最大指数。对于块大小为BLK,这导致指数为10。6369←←←←←←←←←(a) 使用BFP的卷积层(b)使用HBFP图3:直接块浮点(DBFP)(a)和超块浮点(HBFP)(b)的向前和向后传递。在DBFP中,存在6个BFP量化操作,而在HBFP中需要3个,因为它们对于转置是不变的。如红色箭头所示,在DBFP中,FP32张量被使用了两次,而在HBFP中,已经量化的张量被重新用于反向传播。根据先前的论文[1,45],仅量化了Δ1A,而Δ1W保持在FP32中。按大小(N,上限(C/BLK),W,H)排序。因此,对于每个张量乘法,在低位固定点中近似存在NCWH 乘 法 , 并 且 在 FP 32 中 添 加 NWHceil(C/BLK)。注意,这可以在外部循环中并行化。同样的实现通过改变前两个维度的索引一旦组装了指数张量,就可以基于输入张量中的每个值属于哪个块将移位运算符应用于它们,使得它们都共享由指数张量指示的指数。然后使用随机舍入[3](通过添加第4.3节中解释的均匀采样值请注意,第二部分在所有维度上都是并行的。这导致了一个可执行所有乘法和任何卷积过程中大量加法的卷积张量4.2. 超块我们提出了一种更简单的方法,避免了多次量化相同的张量。代替使用块去重量化,可以在被转置的两个维度上使用2维块。图2显示了这是如何实现的。首先,块值被选择(比如blk=2)。这意味着对于2x2的2维块,选择指数并在整个2D块上共享,从而产生具有大小(ceil(N/BLK),ceil(C/BLK),W,H)的指数张量。因此,对于每个张量乘法,在FP 32中存在NCWH定点乘法和WHceil(NC/BLK2)加法。当张量需要在卷积之前转置时,正确的块仍然共享相同的指数,并且不需要进一步转置。这对整个过程有许多影响,如图3b所示。对于前向传递,使用HyperBFP和con量化权重和激活。算法二:超块量化器Input:Input[N,C,W,H],BIT,BLK结果:IntT[N,C,W,H],ExpT[blkn,blkc,W,H];blkc = ceil(C/BLK); int n =int n(n);//第1部分:组装ExpT对于w=0:W; h=0:H; b c=0:blkc; bn=0:blkn d0 max e-127;对于c blk=0:BLK; n blk=0:BLK do cc blk + b c *BLK;n n blk + b n * BLK;int [n,c,w,h];如果e> max e,则max e e;结束结束ExpT[b n,b c,w,h]← max e;端//第2部分:对n=0:N; w=0:W组装IntT; h=0:H;c=0:C; do eget exp(Input[n,c,w,h]);int n(int n,n,n);sign(Input[n,c,w,h]);shift(ExpT[floor(n/BLK),floor(c/BLK),w,h] -e);m =(m>> shift)+ U(0,1); int n = nums(nums,nums);6370IntT[n,c,w,h] = s m;端旋转 注意,对于向后传递,已经全-6371x⌊⌋使用权重和激活的标准化版本,这意味着它们不需要存储在FP32中。对于后向传递,现在量化的权重和激活与相对于输出映射的梯度一起被转置,并且它们如预期那样被卷积。这意味着所需的量化操作的数量是ResNet18 HyperBlock块8 16 324 94.4%(-0.1) 94.5%(-0.0)94.3%(-0.2)位 3 94.1%(-0.4) 93.6%(-0.9) 92.7%(-1.8)2 93.0%(-1.5) 89.2%(-5.3) 78.0%(-16.5)3,并且一旦量化,它们的浮点数相当大程度上不再需要存储等效物降低了存储器带宽需求。算法2显示了超块量化器的工作原理。与BFP量化器类似,指数张量是通过寻找这些二维块的最大指数来组装然后利用指数对输入张量的每个值进行移位,ResNet18 DirectBFP块8 16 324 94.1%(-0.4) 93.4%(-1.1)93.7%(-0.8)位 3 94.0%(-0.5)93.5%(-1.0)80.0%(-14.5)2 93.3%(-1.2) 69.5%(-25.0) 66.0%(-28.5)四舍五入到所需的位宽。所有这些操作都是大规模可并行化,并且由于它们仅涉及读取尾数和指数值以及移位,所以它们可以在定制硬件中有效地实现。4.3. 指数选择与随机舍入在以前的论文中,指数选择是通过在整个块中共享最大指数来进行的[42]。这保证了重要的(大的)值是不变的。我们在本文中也采用了这一策略。请注意,两种方法中都使用了随机舍入,这意味着以概率p=x− <$x <$,向下的概率为1−p。 实际上我们简单地从均匀分布中采样,求和,并对结果x=x+U(0,1)取底。补充材料中提供了这一等同性的证明。5. 结果我们比较了两种不同的前向和后向计算方法:我们在 Cifar10 、 SVHN 和 ImageNet 上 应 用了 DirectBFP 和HyperBlock方法。CIFAR10我们在CIFAR10数据集[17]上测试了我们的方法,该数据集总共由60k个图像组成,每个图像具有3个颜色通道,采用32x32像素格式。该数据集分为10k张用于测试的图像和50k张用于训练的图像,每张图像标记有10个不同的类。我们使用随机梯度下降优化器对所有网络进行了200个epoch的训练,初始学习率为0.01,动量为0.9,权重衰减为5e-4,每60个epoch将学习率降低10倍。ResNet18的结果如表1所示,VGG16的结果如表2在这两种情况下,所示的位值表示除了第一卷积层之外的所有卷积层的权重、激活和gra-1被量化的位长度。在这两个表中,我们可以看到位长度、块大小和方法选择对结果的影响正如预期的那样,位长度越低,训练模型就越困难6372表1:使用CIFAR10数据集将HyperBlock和Direct方法应用于ResNet18的结果,使用FP32实现了94.5%的准确度。括号中的数字表示与FP32模型的准确度差异。VGG16 HyperBlock块8 16 324 93.4%(0.8) 93.2%(0.6)93.4%(0.8)位 3 92.9%(0.3)93.2%(0.6)92.6%(-0.0)2 92.8%(0.2) 88.9%(-3.7) 83.3%(-9.3)VGG16 DirectBFP块8 16 324 92.9%(0.3)92.9%(0.3) 92.5%(-0.1)位 3 92.5%(-0.1)93.0%(0.4)79.2%(-13.4)2 92.3%(-0.3) 76.2%(-16.4) 65.4%(-27.2)表 2 : 使 用 CIFAR10 数 据 集 应 用 于 VGG16 的HyperBlock和Direct方法的结果,使用FP32实现了92.6%的准确度。括号中的数字表示与FP32模型的准确度差异。精度越低。重要的是要注意,较低的位长度对应于更有效的计算,因此在计算复杂性和准确性之间存在自然的权衡。块的大小也会影响精度块大小越小,精度越好,但计算效率越低。然而,请注意,块大小的影响不同,这取决于方法选择森。结果表明,对于极低的位宽(2和3),直接方法失去准确性快于Hy-perBlock块大小增加。例如,在表2中,当增加块大小时,6373模型W一G块方法Top-1型号Adorefa222--百分之九十型号A我们的2228D97.4%型号A我们的22216D百分之八十五点七型号A我们的44416H96.9%型号A我们的44432H百分之九十五点八型号Bdorefa222--91.9%型号B我们2228D百分之九十六点六型号B我们22216D百分之八十六点七型号B我们44416H百分之九十六点六型号B我们44432H96.0%Model Cdorefa222--百分之八十五点六ModelC2228D百分之九十一点四ModelC22216D百分之七十五点七ModelC44416H百分之九十六点三ModelC44 432 H94.4%表3:我们的方法与DoReFa-Net [49]在SVHN数据集上的比较。方法中的在直接方法中使用2比特的情况下,从8到32,而当使用超块方法时,仅存在9%的损失在表1中也发生了同样的情况,其中使用HyperBlock时损失了15%,而使用Direct方法时损失了27%。我们认为这是因为在Direct方法中,用于向前传递的权重张量因此,梯度计算可能会受到影响。在超块方法中,用于前向通过的相同量化权重也用于后向通过,这意味着计算的梯度可能更能代表更新步骤的右方向。为了与其他方法进行比较,我们还在SVHN数据集上测试了我们的算法,该数据集类似于CIFAR10。这包括用于常规训练集的大约73k个数字和用于测试集的26k个数字。就像DoReFa-Net [49]一样,我们也使用了由531 k位数字组成的额外训练集。所有图像都标有10个数字之一,每个都被裁剪为32x32像素,具有3个颜色通道,并调整为40x40像素。我们实现了DoReFa-Net的模型架构,以进行公平比较。模型A由8层组成:具有尺寸48、64、64、128、128、128、512的七个卷积层,以及在末端的FC层。模型B、C和D通过将通道分别乘以0.5、0.25和0.125来实现。表3显示了结果。虽然我们的目标不是6374为了获得极低的位宽,即使只使用2位,我们也有竞争力的结果。 对于低块大小(值为8),我们的网络在 许 多 情 况 下 都 优 于 DoReFa-Net 。 我 们 使 用 Hy-perBlock方法仅使用4位和16至32的块实现1%的精度。ImageNet 我 们 还 在 ImageNet 上 训 练 了 我 们 的 模 型[30]。我们使用了ILSVRC 2012训练集,它包括120万张图像,以及由50k张图像组成的验证集它们都是标准化和裁剪到224x224像素,3个颜色通道,然后被馈送到网络。我们使用batch 128和SGD,学习率为0.01,正如AlexNet论文[18]所示。对于ResNet 18训练,我们使用0.1的学习率乘以0.1,每30个epoch,遵循ResNet论文[9]。基于SVHN和CIFAR10的结果,我们在使用位宽为2时使用块大小为8进行测试,并且在位宽为4或更大时使用16到32之间进行测试。结果示于表4中。当使用 AlexNet 仅 使 用 4 位 用 于 权 重 , 激 活 和 梯 度 时DirectBFP和HyperBFP在使用仅4位的32块大小时都取得了良好的结果。当仅使用2位且块大小为8时,精度损失为8%这是令人鼓舞的,因为即使我们的方法并不意味着在极低的位宽提供良好的精度,我们仍然与DoReFa-Net竞争。ResNet18是一个更具挑战性的网络。我们通过实现8位和5位的精度损失小于1%来获得具有竞争力的结果与SWALP相比,这是在不需要执行权重的平均的它还避免了DoReFa-Net中需要的tanh计算。当进入较低位时,精度会降低,并且需要使用较低的块大小。我们还比较了ALQ/AMQ [7]和TRN [39],即使它们只覆盖梯度。我们在这里包括这些结果,因为它们提供了量化梯度精度的“上限”估计我们可以看到,当使用低精度梯度时,无论权重和激活中使用的精度如何,准确性都会下降。随机舍入的作用我们对BFP和HBFP都使用随机舍入。在没有随机舍入的情况下,我们的方法我们相信这是如此有效,因为它避免了停滞的问题,其中梯度被四舍五入到零,这使权重值停滞在次优值中。补充材料中提供了关于我们结论的更多细节5.1. 硬件比较为了显示使用我们的方法能够执行训练和推理的优势,我们创建了(gate6375算法W|一|G块方法模型Top1[49]第四十九 话|2 |6--AlexNet 46.1%我们的2 |2 |28HAlexNet 48.8%我们的4 |4 |416HAlexNet 56.2%我们的4 |4 |432HAlexNet 55.6%我们的8 |8 |832DResNet18 69.2%我们的5 |5 |532DResNet18 68.3%ALQ[7]32 |32 |3--ResNet18 67.7%[42]第四十二 话|8 |8--ResNet18 65.1%AMQ[7]32 |32 |3--ResNet18 64.8%土耳其[39] 32 |32 |2--ResNet18 62.8%我们的8 |8 |864DResNet18 61.5%我们的4 |4 |432DResNet18 57.1%FP32 32--ResNet18 69.7%尾数FP FP成本相对乘法器乘法器ALU开销FP32 156 1186 1150 1336 37[29] 321 522 90 142 16Bfloat16 [38] 191 402 150 190 21321 402 70 110 122019-02 - 22 00:00:00151 15 10 25 2.8INT4 BFP41 4 5911在Synopsys DC上运行2估计数表5:不同数字格式的费用比较。我们也比用于训练的常见格式(如TF 32 [29],BFloat16 [38]和FP 16 [12])至少高出2倍。在相对成本方面,我们的效率也比新兴的FP8格式高出2倍[37]。不同的使用INT4时,效率更高节省了一半的面积意味着我们可以打包两倍的操作,表 4 : 使 用 不 同 方 法 在 ImageNet 上 运 行 AlexNet 和ResNet18的结果我们可以使用仅4位的权重,激活和梯度来实现FP32水平的VHDL [13])的广泛的BFP操作(在我们的两种方法中使用)和浮点算术运算器,并综合这些到目前生产的10纳米FinFET库与目标频率为800 MHz。我们还将结果的一个子集与使用相同库和脚本合成的Synopsys DesignWare [33]组件进行了比较;两种方法的面积始终在10%以内 我们在表5中报告面积:“尾数乘法器”对应于将格式的尾数部分相乘的面积成本;“FP乘法器”还包括包含浮点格式的指数部分所需的操作;“FPALU”是在块中累加乘法结果的成本;“成本”是“FP乘数”和“FP ALU”之和。“相对成本”是最小操作的标准化“成本”。为了更准确地模拟这些运算符的区域,我们为每个运算符构建了一个系统级结构,在浮点运算符之前和之后都有流水线寄存器。此外,FP ALU还具有包装的多路复用器,以模拟加法和累加操作的动态选择的成本。BFP函数被实现为10个元素点积的张量,同样由寄存器限制[21];固定到浮点转换的成本包括在表中,摊销在每个乘法器的张量上。从表5可以看出,BFP格式是迄今为止最小的。对于INT 8,我们使用的面积比FP 32少10倍,这对应于大约两倍的吞吐量。面积的重要性不仅仅在于节省硅,功率和增加的吞吐量。 存储器访问非常昂贵[10],对于本地嵌入式SRAM具有1或2个数量级(基于45nm处的高速缓存存储器的分析),并且对于DRAM访问具有3或4个数量级。HyperBFP具有从存储 器 访 问 中 获 得 更 多 益 处 的 潜 力 , 例 如 , 当 与DirectBFP相比时,因为相同的量化张量可以用于前向传递和后向传递,而不需要像使用DirectBFP时那样检索昂贵的FP32值。我们在算术数据路径中执行的处理越多,系统的效率就越高。6. 结论我们已经证明了DirectBFP及其Hy- perBlock变体可以在卷积神经网络的训练期间用于量化梯度。 我们在具有挑战性的ImageNet数据集上训练AlexNet时,通过使用定点乘法和使用浮点格式的少量我们相信,这为在低比特训练和推理的定制硬件中有效实现开辟了空间。7. 确认这项研究得到了英特尔(Omnitek)的部分支持。我们特别感谢英特尔FPGA设计服务团队对本研究的贡献。我们的4 |4 |432DAlexNet百分之五十五点四[第12话6376引用[1] Ron Banner , Itay Hubara , Elad Hoffer , and DanielSoudry. 8位神经网络训练的可扩展方法arXiv预印本arXiv:1805.11046,2018。[2] 蔡兆伟,何晓东,孙健,努诺.通过半波高斯量化进行低精度深度学习。在IEEE计算机视觉和模式识别会议论文集,第5918-5926页[3] MatteoCroci , MassimilianoFasi , NicholasJHigham ,The'oMary和Mantas Mikaitis。随机舍入:实现,误差分析和应用。皇家学会开放科学,2022年3月。[4] Bita Darvish Rouhani,Daniel Lo,Ritchie Zhao,MingLiu , JeremyFowers , KalinOvtcharov , AnnaVinogradsky , Sarah Massengill , Lita Yang , RayBittner,et al.用微软浮点数在云尺度上推动窄精度推理的极限。神经信息处理系统的进展,33,2020。[5] DipankarDas , NaveenMellempudi , DheevatsaMudigere,DhirajKalamkar,Sasikanth Avancha,KunalBanerjee,Srini-vas Sridharan,Karthik Vaidyanathan,Bharat Kaul,Evan- gelos Georganas,et al.使用整数运算的卷 积神经网络的 混合精度训 练。arXiv预印本arXiv:1802.00930,2018。[6] 马里奥·德鲁蒙德,林涛,马丁·贾吉,巴巴克·法尔萨菲.用 混 合 块 浮 点 数 训 练 dnn 。 arXiv 预 印 本 arXiv :1804.01526,2018。[7] Fartash Faghri , Iman Tabrizian , Ilia Markov , DanAlistarh,Daniel M Roy,and Ali Ramezani-Kebrya.用于数据并行sgd的自适应梯度量化。神经信息处理系统的进展,33:3174[8] JeremyFowers,KalinOvtcharov,MichaelPapamichael,Todd Massengill,Ming Liu,Daniel Lo,Shlomi Alkalay , Michael Haselman , Logan Adams ,Mahdi Ghandi , Stephen Heil , Prerak Patel , AdamSapek,Gabriel Weisz,Lisa Woods,Sitaram Lanka,Steven K.放大图片作者:Adrian M.作者:Eric S.钟和道格·伯格用于实时人工智能的可配置在第45届计算机体系 结 构 国 际 研 讨 会 集 , ISCA'18 , 第 1-14 页 。 IEEEPress,2018.[9] Kaiming He,Xiangyu Zhang,Shaoying Ren,and JianSun.用于图像识别的深度残差学习。在Proceedings ofthe IEEE conference on computer vision and patternrecognition,第770-778页[10] 马克·霍洛维茨1.1计算的能源问题(以及我们能做些什么)。2014年IEEE国际固态电路会议技术论文摘要(ISSCC),第10-14页[11] Itay Hubara、Matthieu Courbariaux、Daniel Soudry、RanEl-Yaniv和Yoshua Bengio。量化神经网络:使用低精度权 重 和 激 活 训 练 神 经 网 络 。 The Journal of MachineLearning Research,18(1):6869[12] 美国电气与电子工程师协会。浮点运算的Ieee标准。IEEE标准754-2008,第1-70页[13] 美国电气与电子工程师协会。标准vhdl语言参考手册。IEEE Std 1076-2008(IEEE Std 1076-2002修订版)- 红线,第1-620页[14] Andrey Ignatov , Radu Timofte , Andrei Kulik ,Seungsoo Yang ,Ke Wang , Felix Baum , Max Wu ,Lirong Xu,and Luc Van Gool. AI基准测试:所有关于2019 年 智 能 手 机 上 的 深 度 学 习 。 CoRR ,abs/1910.06663,2019。[15] Benoit Jacob、Skirmantas Kligys、Bo Chen、MenglongZhu、Matthew Tang、Andrew Howard、Hartwig Adam和Dmitry Kalenichenko。神经网络的量化和训练,有效的整数算术推理。在IEEE计算机视觉和模式识别会议论文集,第2704-2713页,2018年[16] Jangho Kim,KiYoon Yoo,and Nojun Kwak.基于位置的梯度模型量化和缩放。神经信息处理系统的进展,33:20415[17] Alex Krizhevsky等人从微小图像中学习多层特征,2009年。[18] 亚历克斯·克里热夫斯基、伊利亚·萨茨克弗和杰弗里·E·辛顿。使用深度卷积神经网络的图像网分类。神经信息处理系统进展,25:1097[19] 哈瓦那实验室。高迪培训平台白皮书。技术报告,哈瓦那实验室,2020年11月。于2022年2月20日访问。[20] 哈班实验室。Goya推理平台白皮书。技术报告,哈瓦那实验室,2020年11月。于2022年2月20日访问。[21] Martin Langhammer,Eriko Nurvitadhi,Bogdan Pasca,and Sergey Gribok. Stratix 10 nx架构和应用。在2021年ACM/SIGD
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功