Ram Cherukuri MathWorks
本视频介绍了半精度或float16的概念,这是一种相对较新的浮点数据。它可以用来减少一半的内存使用,并且在加速深度学习训练和推理方面非常流行。我们还讨论了传统控制应用程序与传统32位单精度或64位双精度数据类型之间的优点和权衡。
Half precision或float16是一种相对较新的浮点数据类型,它使用16位,不像传统的32位单精度或64位双精度数据类型。
所以,当你在MATLAB中声明一个变量为一半,比如说pi,你可能会注意到与我们在这里看到的单或双表示相比,一些精度的损失。
不同之处在于半精度使用的位数有限。我们只有10位精度和5位指数而不是23位精度和8位指数。因此eps要大得多,动态范围也有限。
那么为什么它很重要呢?Half最近的流行是因为它在加速深度学习训练和推理方面很有用,主要是在NVIDIA gpu上。此外,英特尔和ARM平台也支持一半来加速计算。金宝app
使用半精度的明显好处是减少了50%的内存和数据带宽,正如我们在Resnet50中看到的那样。此外,硬件供应商也提供硬件加速一半的计算,如CUDA内在的情况下,NVIDIA图形处理器。
我们看到传统的应用,比如动力系统控制系统,也会有类似的情况,你可能会有查找表形式的数据,如图所示。通过使用half作为存储类型,可以将这个2D查找表的内存占用减少4倍。
然而,重要的是要了解有限的精度和半精度范围的权衡。例如,在深度学习网络中,量化误差的量级为10^-4,我们必须分析这如何影响网络的整体精度。
这是对半精确度的简要介绍。请参考下面的链接,学习更多关于如何模拟和生成C/ c++或CUDA代码从MATLAB和Simulink的一半。金宝app
你也可以从以下列表中选择一个网站:
请选择表现最佳的中国网站(中文或英文)。MathWorks的其他国家网站并没有针对您所在位置的访问进行优化。