Ram Cherukuri,Mathworks
该视频介绍了半精度或浮点数的概念,是一个相对较新的浮点数据。它可用于将内存使用量减少一半,并且已经非常受欢迎,可以加速深度学习培训和推论。我们还研究传统控制应用的传统32位单精度或64位双精度数据类型的福利和权衡。
半精度或FLOAT16是一种相对较新的浮点数据类型,它使用16位,与传统的32位单精度或64位双精度数据类型不同。
因此,当您在Matlab中的一半声明一个变量时,与我们在这里看到的单个或双重表示相比,您可能会注意到一些精度丢失。
差异来自半精度使用的有限数量的比特。我们只有10位精度和5位的指数,而不是23位的精度和8位,用于单一的指数。因此,EPS更大,并且动态范围有限。
那么为什么重要?最近的一半人的流行是因为它在主要在NVIDIA GPUS在这里突出的NVIDIA GPU来加速深度学习培训和推理。此外,英特尔和ARM平台都支持一半以加速计算。金宝app
使用半精度的明显好处是在减少内存并将数据带宽降低50%,因为我们在此处查看Reset50。此外,硬件供应商还提供用于在NVIDIA GPU的情况下的一半的计算的硬件加速,例如CUDA内在函数。
我们看到传统的应用程序,如动力系统控制系统,在这里可能以查找表的形式显示数据,如图所示。通过使用一半的存储类型,您可以将这个2D查找表的内存占用减少4x。
然而,理解有限精度和半精度范围之间的权衡是很重要的。以深度学习网络为例,量化误差的数量级为10^-4,需要分析量化误差对网络整体精度的影响。
这是半精度的简短介绍。请参阅下面的链接以了解如何在MATLAB和SIMULINK中的一半模拟和生成C / C ++或CUDA代码。金宝app
您还可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。