专栏算法工具链J6 Matmul算子PTQ量化调优

J6 Matmul算子PTQ量化调优

y19002025-10-22
59
0

一、            算子约束条件

Matmul算子在j6上,OE3.0.31支持单输入int16量化,OE3.2.0及以后版本支持双int16量化,可以根据实际情况与数据输入范围、输入shape大小,选择精度和性能相对比较优化的量化策略,实际依赖于模型结构与数据范围。

二、            插件版本

Hmct插件为PTQ的转换工具插件,针对OE3.0.31OE3.2.0OE3.5.0的量产版本,hmct版本低于2.6.1,可以实际pip list | grep hmct看一下版本,在选择input0-int8input1-int16量化时,要升级hmct >= 2.6.1,请自己确认版本与量化需求。

三、            实测调优

1.       前置模型结构

关注Matmulshapeintput, 这个算子当前的shape很大,带来的计算量很大,同时对于前置输入Thresholds,可以看到input01.0input110.31,同时input0shape: 1*6*2585input1shape: 1*6*2585*64,如果我们配置input1int16量化,相对int8量化可以提高精度,相对input0input1都为int16量化可以降低input0的加载数据量、提升带宽。

2.       分步测试

基础配置:

对比结果如下:

Matmul量化配置

精度

性能

int8

Input0 int16 + input1 int8

Input0 int8 + input1 int16

int16

 

四、            说明总结

根据配置和测试,可以看到matmul的配置input1int16时,量化精度和性能都能有比较好的提升和优化,实际情况请基于自己的模型测试和调优
算法工具链
征程6官方教程
评论0
0/1000