[发明专利]神经网络编译器架构及编译方法有效
申请号: | 201810829009.1 | 申请日: | 2018-07-25 |
公开(公告)号: | CN110766147B | 公开(公告)日: | 2022-10-11 |
发明(设计)人: | 隋凌志;刘鑫;王雨顺 | 申请(专利权)人: | 赛灵思公司 |
主分类号: | G06N3/063 | 分类号: | G06N3/063;G06N3/04;G06F8/41 |
代理公司: | 北京展翼知识产权代理事务所(特殊普通合伙) 11452 | 代理人: | 张阳 |
地址: | 美国加利福尼亚*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 神经网络 编译器 架构 编译 方法 | ||
本公开提出了一种神经网络编译器架构和方法,该编译器架构包括:计算图构建模块,用于基于输入的不同类型的模型文件构建通用的第一中间表示,其中所述第一中间表示具有图形式;计算图优化模块,用于针对所述第一中间表示进行图优化,以获得具有图形式的第二中间表示;指令生成模块,用于对所述第二中间表示进行调度优化,以获取细粒度的第三中间表示,以及基于硬件平台将所述第三中间表示编译为在所述硬件平台上执行的指令码。通过上述编译器架构内的模块与不同粒度和属性的多种中间表示相配合,能够以极高的可扩展性和兼容性应对各类深度学习框架和后端硬件平台,并且提供高效准确的代码优化能力。
技术领域
本发明涉及深度学习领域,尤其涉及一种神经网络编译器架构及编译方法。
背景技术
神经网络(Neural Network)近年来成为图像识别领域的研究热点。经过训练后的神经网络模型,可以用于图像分类、物体识别与显著性检测等诸多领域。近年来神经网络模型呈现计算规模增加、复杂度提升的趋势,利用传统的CPU平台,已无法满足其实用性需求。因此,利用FPGA、GPU等异构计算平台进行神经网络加速器设计成为新的研究热点。其中,相较GPU平台,FPGA能够实现更高的计算能效比,同时FPGA可以快速迭代、可进行硬件重构的特性也更适应算法高速发展的要求。
将来自前端不同深度学习框架的神经网络算法转化为通用的计算图,对计算图进行优化和重构,再将优化后的计算图映射为后端硬件平台可执行的指令和机器码,便完成了算法针对硬件平台的编译。众多深度学习框架在使用的底层计算库、计算图形式、代码风格等的不同而导致其在运算结果的精度和运算速度上都存在着巨大的差异,并且除了通用处理器之外,涌现出了越来越多的异构硬件平台。若需要对M种前端深度学习框架分别进行优化,映射到N种后端硬件平台上,那么将面临着O(M*N)的工作量,有着组合爆炸的风险。
为此,需要一种能够应对灵活兼容各类前端后端的高性能神经网络编译器框架。
发明内容
为了解决上述至少一个问题,本发明提出了一种编译器架构方案,通过其内的模块与不同粒度和属性的多种中间表示相配合,能够以极高的可扩展性和兼容性应对各类深度学习框架和后端硬件平台,并且提供高效的代码优化能力。
根据本发明的一个方面,提出了一种神经网络编译器架构,包括:计算图构建模块,用于基于输入的不同类型的模型文件构建通用的第一中间表示,其中所述第一中间表示具有图形式;计算图优化模块,用于针对所述第一中间表示进行图优化,以获得具有图形式的第二中间表示;指令生成模块,用于对所述第二中间表示进行调度优化,以获取细粒度的第三中间表示,以及基于硬件平台将所述第三中间表示编译为在所述硬件平台上执行的指令码。
由此,通过粗粒度的第一和第二IR实现与后端硬件无关(或几乎无关)的图优化,随后通过引入细粒度的第三IR实现针对硬件的优化并方便其到最终指令码的编译。在这其中,第一IR用于与各类深度计算平台解耦,第二IR用于进行表征粗粒度图优化的结果,第三IR用于针对硬件的细粒度优化,指令码(也可称为第四IR)用于最终的硬件平台执行。
计算图构建模块可以包括:模型文件解析模块,包括各自对应于一种类型的模型文件的解析子模块,每个解析子模块用于解析对应类型的模型文件;以及计算图生成模块,基于对应解析子模块的解析结果生成所述第一中间表示。由此,能够灵活应对各类深度学习框架。
第一中间表示可以被生成为节点表示特征图,边表示为计算操作的计算图。其中,所述节点的属性可以包括如下至少一项:所述特征图的维度信息和长宽通道信息;所述边表示的计算操作可以包括如下至少一项:卷积、池化、维度变换、点加(eltwise)、反卷积、重排、非线性、批量归一化(BatchNorm)、定标(scale);所述边的属性可以包括所述计算操作的参数,并且可以包括如下至少一项:卷积核尺寸、扩充边缘(pad)、步长(stride)、分组、扩张(dilation)。采用本发明特殊构造的第一IR,有利于后续的内存优化,尤其适用于数据存取所需时钟周期远大于数据执行的神经网络并行计算平台。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于赛灵思公司,未经赛灵思公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810829009.1/2.html,转载请声明来源钻瓜专利网。