主要内容

一半精度是多少?

IEEE®754 half-precision浮点格式是一个16位字分为1比特信号指示器年代位有偏见的指数e和一个10位分数f

示意图显示比特分配half-precision数据类型。

因为数量的类型一半使用16位存储,它们需要更少的内存比数字类型的使用32位,或使用64位。用更少的比特,然而,因为他们是存储数据的类型一半表示精度低于数字类型的吗

范围、偏见和精度浮点数据类型支持在下表中给出。金宝app

数据类型

较低的限制

高温限制

指数的偏见

精度

一半

2−14≈6.1·10−5

(2−2-10年)·215≈6.5·104

15

2−10≈10−3

2−126≈10−38

2128年≈3·1038

127年

2−23≈10−7

2−1022≈2·10−308

21024年≈2·10308年

1023年

2−52≈10−16

视频介绍half-precision数据类型,明白了一半精度是多少?Half-Precision数学建模和代码生成

半精密应用程序

当一个算法包含大型或未知动态范围(例如集成商在反馈循环)或当该算法使用操作,很难在定点(例如设计量化),它可以有利于使用浮点表示。half-precision数据类型只占16位的内存,但其浮点表示使它能够处理更广泛的动态范围比相同大小的整数或定点数据类型。这使得一半精度特别适合一些图像处理和图形应用程序。half-precision使用深层神经网络时,所需的时间可以减少培训和推理。通过使用半精密作为查找表的存储时间,可以减少查找表的内存占用。

MATLAB例子

  • 雾整改(GPU编码器)——雾整流采用卷积图像处理算法,图像颜色空间转换和基于直方图对比拉伸增强输入图像。这个例子展示了如何生成和执行CUDA®墨西哥人对这些图像处理操作half-precision数据类型。

    图像应用之前和之后的道路雾矫正算法。

  • Half-Precision Sobel边缘检测的方法(GPU编码器)——sobel边缘检测算法需要输入图像并返回输出图像,强调高空间频率区域对应于输入图像的边缘。这个例子展示了如何生成和执行CUDA的墨西哥人half-precision数据类型用于输入图像和索贝尔算子内核值。

    辣椒之前和之后的形象应用Sobel边缘检测算法。

  • 生成代码Sobel边缘检测,使用Half-Precision数据类型(MATLAB编码器)这个例子展示了如何生成一个独立的从MATLAB c++库®函数执行Sobel边缘检测的图像通过使用half-precision浮点数。

金宝app例子

  • Half-Precision定向控制算法这个例子实现了一个磁场定向控制(FOC)算法使用单精度和精度的一半。

  • 图像量化Half-Precision数据类型——这个例子显示了量化对图像的影响。而定点数据类型并不总是产生一个可接受的结果,half-precision数据类型,它使用相同的比特数定点数据类型,产生的结果与单精度的结果。

    量子化效应的图像显示在一个定点的棋盘,half-precision,单精度的数据类型。

  • 数字分类与Half-Precision数据类型——这个例子比较训练神经网络分类模型的结果在双精度和精度的一半。

  • 单精度查找表转换成精确的一半这个例子演示了如何将一个单精确查找表使用精密的一半。半精密是存储类型;查找表计算使用单一执行精度。转换成一半精度后,内存的大小查找表块减少一半,同时保持所需的系统性能。

使用半精密在嵌入式应用程序的好处

半精密数据类型使用更少的内存比其他单和双浮点类型。虽然只占16位的内存,其浮点表示使它能够处理更广泛的动态范围比相同大小的整数或定点数据类型。

FPGA

半精密数据类型使用显著更少的地区,低延迟相比,单精度的数据类型使用时对硬件。半精密低动态范围应用程序尤其有利。

下面的图显示了使用精度一半的优势在Xilinx定向控制算法的实现®Virtex®7硬件。

比较Fmax需求方,附近地区,针对单一vs和切割精度的一半。

GPU

在gpu half-pre金宝appcision数据类型的支持,算术运算更快比单引号或双精度。

在深度学习这样的应用程序,需要大量的计算,使用一半精度可以提供显著的性能没有显著损失精度。与GPU编码器™,你可以生成预测的优化代码的各种训练的深度学习网络深度学习工具箱™。您可以配置代码生成器NVIDIA的利用®NVIDIA gpu TensorRT高性能推理库。TensorRT提供改进的延迟、吞吐量和内存效率通过结合网络层和内核优化选择。您还可以配置代码生成器利用TensorRT精密模式(FP32 FP16,或INT8)进一步提高性能和减少内存需求。

CPU

在cpu支持half-pr金宝appecision数据类型,算术运算更快比单引号或双精度。的手臂®目标本身支持half-precision数据金宝app类型,您可以生成本机C代码从MATLAB或模型的一半金宝app®。看到代码生成与精密的一半

一半的精度MATLAB

许多功能在MATLAB half-precisio金宝appn数据类型的支持。支持函数的完整列表,请参阅金宝app一半

一半的精度金宝app

信号和输出在仿真软件可以指定half-precision数金宝app据块类型。half-precision数据类型支持仿真参数和代码生成和街区金宝app的一个子集。查看支持一半精度的街区,在命令行中,类型:金宝app

showblockdatatypetable

块,支持精确显示一个一半金宝appX在列中标记一半。大约一半的详细信息精度仿真软件的支持,看到的金宝app金宝app在仿真软件Half-Precision数据类型金宝app

代码生成与精密的一半

半精密数据类型支持C / c++代码生成代码生成使用CUDA G金宝appPU编码器,并使用高密度脂蛋白HDL代码生成编码器™。GPU目标,half-precision一半数据类型使用本机数据类型可以在NVIDIA GPU实现了最大的性能。

详细代码生成支持一半精度在MATLAB和Simulink,金宝app明白了金宝app半精密代码生成的支持金宝app在仿真软件Half-Precision数据类型金宝app

为嵌入式硬件本身的目标支持特殊类型为半精密,等金宝app_Float16_fp16ARM编译器的数据类型,您可以使用嵌入式编码器生成本机半精密C代码®MATLAB编码器™。有关更多信息,请参见从模型生成本机Half-Precision C代码模型金宝app使用MATLAB编码器生成本机Half-Precision C代码

另请参阅

|||

相关的话题