pytorch 量化中的优化过程
发布时间
阅读量:
阅读量
思考过程:PyTorch中的eager模式通过串行化执行提供断点调试功能,在开发环境中实现对模型行为的实时监控与调整。而在生产环境中,则通过并行化处理生成可并发运行的代码块,并便于通过源码进行调试分析。该研究涉及的技术包括图编程模型、编译原理以及执行优化策略等。
什么是量化?
量化是一种通过使用低于浮点精度位宽存储张量的技术来执行计算的方法;它允许对部分或全部运算采用整数而非浮点值进行处理以实现更高的效率与更低的资源消耗;从而使得模型表示更加紧凑,并可利用许多硬件平台上的高效矢量化操作提升性能;相比之下,在PyTorch中支持INT8量化可以将模型规模缩减至原来的四分之一,并使内存带宽需求相应降低三分之二;相比于FP32计算,在INT8计算上相关硬件实现的速度通常快出两到四倍;作为加速推理的关键技术之一;所有用于前向传播的运算都依赖于这一机制;这种技术不仅能够显著降低存储需求和运行时间;并在保持几乎不变的精度水平下表现尤为突出;
在动态量化过程中,模型运行时间主要取决于从内存中加载权重而非直接进行矩阵乘法运算。
通过静态量化为例,在本教程结束后,您将会看到PyTorch中的量化如何导致模型大小大幅缩小同时提升运行速度
量化张量
PyTorch 支持在其每个张量以及通道上执行非对称线性量化。其中每一个张 tensor 表明其内部的所有数值均采用一致方式进行
全部评论 (0)
还没有任何评论哟~
