[发明专利]专用于CNN加速器的深度学习编译器优化方法在审
申请号: | 202210638258.9 | 申请日: | 2022-06-07 |
公开(公告)号: | CN114995822A | 公开(公告)日: | 2022-09-02 |
发明(设计)人: | 汪成亮;张磊;张寻;任骜 | 申请(专利权)人: | 重庆大学 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06N3/04;G06N3/08 |
代理公司: | 重庆天成卓越专利代理事务所(普通合伙) 50240 | 代理人: | 王宏松 |
地址: | 400030 *** | 国省代码: | 重庆;50 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 专用 cnn 加速器 深度 学习 编译器 优化 方法 | ||
本发明提出了一种专用于CNN加速器的深度学习编译器优化方法,包括以下步骤:S1,通过算子融合和/或bn融合的优化方法减少加速器对内存的访问以及存储空间的浪费,同时使用内存分配地址叠加的方式避免各张量之间的数据覆盖;S2,采用固定硬件下的多种模型量化部署方案,通过融合非对称量化的偏移和卷积偏置;同时通过编译器与加速器的协同优化,将DSP的输入数据配置为两个数的移位相加从而在一个DSP中同时进行两次乘法运算,最终实现编译器对可变位宽量化的支持。
技术领域
本发明涉及编译器优化领域,特别是涉及一种专用于CNN加速器的深度学习编译器优化方法。
背景技术
随着深度学习算法的发展,卷积神经网络模型逐渐从云端向边缘端迁移。同时模型的规模不断变大,导致了其参数量和计算量也在剧增。像CPU和GPU这种通用处理平台因为存在性能不足和功耗高等缺点,因此相关研究开始通过FPGA或者ASIC来定制高性能、高能效的CNN专用加速器,然而专用加速器因为灵活性不足,因此还需要设计深度学习编译器这样的软件工具来配合使用。
面对错综复杂的网络结构,深度学习编译器需要将其简化,最后变成各种Concat和Split分支结构。对于专用加速器来说,此类操作需要将以前的计算结果重新读进缓存,经过相关操作后再写回缓存,频繁的内存访问会造成内存的高时延、高能耗,同时还会增长片上资源的开销。
此外,FPGA等加速器中因为处理浮点计算比较复杂,编译器还需要对模型进行定点整数的量化,量化分为对称量化和非对称量化。对称量化实现简单,但面对数据正负分布不均匀的情况下会导致精度损失过高,而精度损失更低的非对称却会增加加速器的计算复杂度。同时FPGA中采用DSP来执行乘累加运算,但DSP模块是定制化的,无法体现低位宽量化数据的计算性能优势。因此编译器对模型的量化方式选择会受到硬件的限制。
发明内容
本发明旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种专用于CNN加速器的深度学习编译器优化方法。
为了实现本发明的上述目的,本发明提供了一种专用于CNN加速器的深度学习编译器优化方法,包括以下步骤:
S1,通过算子融合和/或bn融合的优化方法减少加速器对内存的访问以及存储空间的浪费,同时使用内存分配地址叠加的方式避免各张量之间的数据覆盖;
S2,采用固定硬件下的多种模型量化部署方案,通过融合非对称量化的偏移和卷积偏置使硬件不需要额外的计算模块也能支持非对称量化方式,以此实现不改变硬件也能提升运算精度;同时通过编译器与加速器的协同优化,将DSP的输入数据配置为两个数的移位相加从而在一个DSP中同时进行两次乘法运算,最终实现编译器对可变位宽量化的支持。
进一步地,所述S2包括以下步骤:
S2-1,运行校准集,获取特征图的动态分布范围;
S2-2,检测量化位宽选项,判断是否为INT8或INT16,如果是INT8则采用输入移位相加或权重移位相加;这样INT8的计算速度是INT16的两倍。
S2-3,遍历计算图并判断特征图之间是否有跳跃连接的关系,如果有,则进行缩放因子和偏移的统一;
S2-4,检测量化编译形式选项,根据上一步INT8或INT16的选择计算出缩放因子scale和零点偏移,如果为非对称量化,将偏置和偏移进行融合。
进一步地,所述偏置和偏移进行融合包括:
对于非对称量化,卷积计算过程的量化公式为:
其中q1、q2、q3、分别表示输入定点数、权重定点数、输出定点数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于重庆大学,未经重庆大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210638258.9/2.html,转载请声明来源钻瓜专利网。