使用混合块浮点数训练 DNNs
本研究提出使用多种 BFP 精度并结合算法优化的方法来加速训练深度神经网络,并基于此设计了一种灵活的训练加速器 FlexBlock,与其他训练加速器相比,在 CIFAR、ImageNet 和 WMT14 数据集上,训练速度提高了 1.5~5.3 倍,能效提高了 2.4~7.0 倍,准确度有所下降。
Mar, 2022
本文在不重新训练的情况下测试了几种经典的卷积神经网络 (CNN) 模型,验证了使用块浮点算法 (BFP) 在 CNN 加速器中定义字宽的效果,并探究了理论计算误差,提出了噪声信号比(NSR)的上限,为基于 BFP 的 CNN 引擎设计提供了有价值的指导。
Sep, 2017
本文介绍了使用较低的精度来训练深度神经网络的成功实践,通过引入基于块的操作和浮点随机取整等技术,成功地实现了在 8 位浮点数下对多种深度学习模型和数据集进行了精确的训练。这些新技术为新一代硬件训练平台奠定了基础,并具有提高 2-4 倍吞吐量的潜力。
Dec, 2018
本文研究了使用 Brain Floating Point(BFLOAT16)半精度格式进行深度学习训练的有效性,并实现了在 Tensorflow、Caffe2、IntelCaffe 和 Neon 中进行 BFLOAT16 操作的方法。结果表明,使用 BFLOAT16 张量进行深度学习培训,在达到同样的状态 - 最先进的结果并不需要调整超参数。
May, 2019
本篇研究提出了一种名为 Flexpoint 的数据格式,可以在不需要调整模型超参的情况下,用于支持深度神经网络在低位宽训练中的完整替代,该数据格式动态调整共享指数,以最小化过载并最大化可用的动态范围,实验证明,16 位 Flexpoint 在三个网络模型的训练上与 32 位浮点数非常接近,有望成为未来神经网络硬件训练和预测的一种有效数值格式。
Nov, 2017
本研究提出了一种新的方法 (S2FP8) ,使用 8 位浮点(FP8)数来训练深度神经网络,可以在训练时实现更大的有效内存和增加计算速度,并且在 ResNet-50、Transformer 和 NCF 等模型中表现良好,无需微调损失缩放参数或使某些层在单精度中运行;同时,引入了一些可学习的 DNN 张量统计上的偏移和挤压参数,以优化 8 位张量的使用范围,从而减少量化带来的信息损失。
Jan, 2020
本文提出使用浮点数表示权重和使用定点数表示激活,证明了相较于定点数表示,使用浮点数表示权重更加高效,同时能够优化硬件乘加器设计,实验表明这个方法最多可减少 36% 的权重存储和 50% 的硬件乘加器功耗。
Mar, 2017
本文介绍了一个使用 8 位浮点表示法训练深度神经网络的方法,减少计算精度和主权重复制的精度要求,并且通过强化误差传播和降低量化噪声的方法来提高模型性能。实验表明,所提出方法在多个数据集和不同工作负载下与精度基线相比不降反升。
May, 2019