量化是连续映射无穷大的值到一个较小的组离散有限值的过程。在模拟和嵌入式计算的上下文中,它是关于用一个数字表示近似现实世界的值上的一个值的精度和范围介绍限制。在算法的误差量化介绍各种来源,如舍入误差,下溢或溢出,计算噪声和限制周期。这导致了理想的系统的行为和所计算的数值行为之间的数值差异。
要管理量化的效果,需要选择正确的数据类型来表示真实世界的信号。您需要考虑用于编码信号的数据类型的精度、范围和缩放,并且还考虑量化对算法的数值行为的非线性累积效应。当您有反馈循环之类的结构时,这种累积效应会进一步加剧。
为什么量化事项
转换嵌入式硬件设计的过程需要考虑量化误差。量化误差影响信号处理、无线、控制系统、FPGA、ASIC、SoC、深度学习和其他应用。
量化的信号处理和无线应用
在信号处理应用中,量化误差会产生噪声并降低性能信噪比(SNR)。的SNR以dB测量和一般被描述为x分贝减少用于每个附加位。为了管理量化噪声,并保持在可接受的水平,则需要选择合适的设置,如数据类型和舍入模式。
控制系统中的量化
在设计控制系统时,特别是针对低功耗微控制器,您可以使用整数或定点算法来平衡实时性能要求和低功耗约束。在这种设计中,您需要选择数据类型,以适应来自输入传感器的信号的动态范围和精度,同时满足输出信号的精度要求,所有这些都不会由于量化而出现数值差异。
FPGA、ASIC和SoC的量化开发
从浮点到定点转换的设计可以帮助降低FPGA资源的利用率,降低了功耗,满足时延要求等降低电力和资源消耗。然而,这种转换引入量化误差,所以你必须预算的量化噪声适当将您的设计时。
深度学习中的量化
量化深学习网络是为了加快推理以及减少对嵌入式设备的存储器和功耗的重要一步。缩放的8位整数量化维护网络的精度,同时减少了网络的大小。这使得能够部署到具有较小存储器脚印的设备,留下其它算法和控制逻辑更多的空间。
可以当目标硬件(GPU,FPGA,CPU)架构考虑进行量化的优化。这包括计算在整数,利用硬件加速器和熔合层。的量化步长是一个迭代过程,以实现可接受的网络的精确度。
了解如何在MATLAB中使用白盒方法量化、校准和验证深度神经网络,在性能和精度之间做出权衡,然后将量化的DNN部署到嵌入式GPU和FPGA硬件板。
自动量化您的设计
您可以通过选择特定的数据类型量化的设计,或者你可以反复探索不同的定点数据类型。使用指导工作流程,你可以看到,量化对你系统的数值行为的整体效果。
或者,您可以解决优化问题,并为您的设计选择满足系统数值行为公差约束的最佳异构数据类型配置。
了解有关定点转换的详细信息:
调试数值差异由于量化
有了MATLAB,您可以识别,跟踪和调试的数字问题,由于量化的来源,如溢出,精度损失,浪费的范围或精度在你的设计。