本发明的实施例涉及当在目标硬件平台上执行时优化量化敏感度(quantizationsensitivity)的混合精度(mixed-precision)神经网络。
背景技术:
1、神经网络计算是计算密集的且有带宽需求的。现代计算机通常在数值计算中使用具有大位宽(例如32位)的浮点数来实现高精度。然而,高精度是以高功耗和高存储区使用为代价的。随着神经网络的飞速发展,典型的神经网络模型的规模(size)越来越大,硬件要求也越来越严格。在保持在神经网络计算中可接受的准确性的同时平衡低功耗和低存储区使用的需求是一项挑战。
2、量化是用于模型压缩的主要优化方法。与高位宽神经网络相比,低位宽神经网络功耗低、运行速度快、使用的存储区少。尽管低位宽神经网络可能在视觉感知问题(例如图像识别)方面表现良好,但它可能无法满足视觉构建(图像分割)和视觉质量问题(图像超高分辨率(super-resolution))所需的性能。
3、因此,需要改进神经网络的量化以在目标硬件平台上执行。
技术实现思路
1、在一个实施例中,提供了一种用于确定在目标硬件平台上用于混合精度神经网络计算的位宽的方法。该方法包括:为神经网络中的每个卷积层计算激活值量化敏感度(activation quantization sensitivity,aqs)值的步骤。aqs值指示卷积输出对量化的卷积输入的敏感度。该方法还包括将所述多个卷积层分组,形成由对应的目标硬件执行的多个量化组,其中每个量化组包括至少一个卷积层;根据每个量化组中的卷积层的aqs值计算每个量化组的组aqs值;为多个量化组选择对应的目标硬件支持的位宽,位宽被选择以在给定约束下优化敏感度度量,其中该敏感度度量是基于每个量化组的组aqs值计算得到的。其中,为多个量化组选择对应的目标硬件支持的位宽可以是:为多个量化组中每个量化组选择对应的目标硬件支持的位宽。
2、在另一个实施例中,提供了一种系统来确定用于目标硬件平台上的混合精度神经网络计算的位宽。该系统包括用于存储神经网络的存储器和耦接到存储器的处理电路。处理电路用于计算神经网络中每个卷积层的aqs值。aqs值指示卷积输出对量化的卷积输入的敏感度。处理电路进一步操作将所述多个卷积层分组,形成由对应的目标硬件执行的多个量化组,其中每个量化组包括至少一个卷积层;根据每个量化组中卷积层的aqs值计算每个量化组的组aqs值;为多个量化组选择对应的目标硬件支持的位宽,位宽被选择以在给定约束下优化基于每个量化组的组aqs值计算的敏感度度量。
3、其中,计算所述aqs值包括:以第一数据精度使用输入激活值和权重计算卷积层的第一输出;以第二数据精度使用所述输入激活值和权重计算所述卷积层的第二输出,其中所述第二数据精度使用比所述第一数据精度大的位宽;以及测量所述第一输出和所述第二输出之间的差以计算所述卷积层的aqs值。其中,以第一数据精度使用输入激活值和权重计算卷积层的第一输出包括:使用处于第一数据精度的输入激活值和处于第一数据精度的权重计算卷积层的第一输出;以第二数据精度使用所述输入激活值和权重计算所述卷积层的第二输出包括:使用处于第二数据精度的所述输入激活值和处于第二数据精度的所述权重计算卷积层的第二输出。
4、通过上述实施例可以确定出在目标硬件平台上用于混合精度神经网络计算的位宽。
5、在结合附图阅读以下具体实施例的描述时,其他方面和特征对于本领域普通技术人员而言将变得显而易见。
1.一种确定在目标硬件平台上用于混合精度神经网络计算的位宽的方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,还包括:
3.根据权利要求2所述的方法,其特征在于,所述给定约束是所述神经网络的模型大小、延迟和位运算次数的总数中一个。
4.根据权利要求1所述的方法,其特征在于,所述给定约束是位运算次数(bops)的总数,其限制基于组的bops的总和,并且其中计算的所述基于组的bops为mac操作的数量乘以输入激活值的位宽和权重的位宽。
5.如权利要求1所述的方法,其特征在于,为所述多个量化组选择对应的目标硬件支持的位宽包括:
6.如权利要求1所述的方法,其特征在于,为所述多个量化组选择对应的目标硬件支持的位宽包括:
7.根据权利要求6所述的方法,其特征在于,所识别出的量化组是在所有量化组中具有最高组质量的一个量化组,其中mac表示乘积累加运算的数量,其中组aqs为组aqs值。
8.根据权利要求1所述的方法,其特征在于,所述组aqs值是所述量化组中所有卷积层的aqs值中的最大aqs值。
9.根据权利要求1所述的方法,其特征在于,计算所述aqs值包括:
10.根据权利要求1所述的方法,其特征在于,计算所述aqs值包括:
11.根据权利要求1所述的方法,其特征在于,将所述多个卷积层分组包括:将共享相同的输入激活值的操作(op)层分到同一个量化组。
12.根据权利要求1所述的方法,其特征在于,计算所述aqs值包括:
13.一种确定在目标硬件平台上用于混合精度神经网络计算的位宽的系统,其特征在于,包括:
14.根据权利要求13所述的系统,其特征在于,所述处理电路还用于:
15.根据权利要求13所述的系统,其特征在于,所述给定约束是位运算次数(bops)的总数,其限制基于组的bops的总和,并且其中计算的所述基于组的bops为mac操作的数量乘以所述输入激活值的位宽和权重的位宽。
16.根据权利要求13所述的系统,其特征在于,所述处理电路用于:
17.根据权利要求13所述的系统,其特征在于,所述处理电路用于:
18.如权利要求17所述的系统,其特征在于,所识别出的量化组是在所有量化组中具有最高组质量的一个量化组,其中mac表示乘积累加运算的数量,其中组aqs为组aqs值。
19.根据权利要求13所述的系统,其特征在于,所述组aqs值是所述量化组中所有卷积层的aqs值中的最大aqs值。
20.根据权利要求13所述的系统,其特征在于,在计算所述aqs值时所述处理电路进一步执行如下操作:
21.根据权利要求13所述的系统,其特征在于,在计算所述aqs值时所述处理电路进一步执行以下操作: