[发明专利]一种神经网络加速器编译方法及装置在审
申请号: | 202110821142.4 | 申请日: | 2021-07-20 |
公开(公告)号: | CN113554161A | 公开(公告)日: | 2021-10-26 |
发明(设计)人: | 刘勇攀;张驰;石皓冰;袁竹清;张璐;杨华中 | 申请(专利权)人: | 清华大学 |
主分类号: | G06N3/063 | 分类号: | G06N3/063 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 张雅娜 |
地址: | 100084 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 神经网络 加速器 编译 方法 装置 | ||
1.一种神经网络加速器编译方法,其特征在于,包括:
基于神经网络结构信息和预设指令类型,生成每种预设指令类型之间的依赖关系和多种神经网络编译器指令队列,其中,所述神经网络编译器指令队列是由相同预设指令类型的神经网络编译器指令组成的队列;
根据所述依赖关系,确定每种神经网络编译器指令队列之间的并行运行策略;
根据所述并行运行策略,生成神经网络加速器的加速指令。
2.根据权利要求1所述的神经网络加速器编译方法,其特征在于,所述基于神经网络结构信息和预设指令类型,生成每种预设指令类型之间的依赖关系和多种神经网络编译器指令队列,包括:
根据预设指令类型,构建对应的神经网络编译器指令,所述神经网络编译器指令包括特征图加载指令、权重加载指令、卷积计算指令和结果回存指令;
根据神经网络结构信息,判断每种神经网络编译器指令之间是否存在并行运行,并根据并行运行判断结果,构建每种预设指令类型之间的依赖关系,所述神经网络结构信息至少包括前序层、后序层、输入输出通道数、卷积核大小和输入输出数据宽度和输入输出数据高度;
基于先进先出法和所述依赖关系,根据相同预设指令类型的神经网络编译器指令,生成对应的神经网络编译器指令队列。
3.根据权利要求2所述的神经网络加速器编译方法,其特征在于,所述根据所述依赖关系,确定每种神经网络编译器指令队列之间的并行运行策略,包括:
根据所述并行运行判断结果,通过标志位对无法进行并行运行的神经网络编译器指令进行标记,得到预设指令类型之间的依赖关系;
基于超标量技术,根据所述依赖关系,生成每种神经网络编译器指令队列之间的并行运行策略。
4.根据权利要求3所述的神经网络加速器编译方法,其特征在于,所述基于超标量技术,根据所述依赖关系,生成每种神经网络编译器指令队列之间的并行运行策略,包括:
基于循环缓存的方式,根据神经网络当前层的特征图加载指令和权重加载指令,将特征图和权重并行加载到各自对应的SRAM;
根据神经网络当前层的卷积计算指令进行卷积计算,得到神经网络当前层的卷积计算结果;
根据神经网络当前层的结果回存指令和神经网络下一层的权重加载指令,通过并行加载的方式,将神经网络当前层计算得到的卷积计算结果回存到DDR,将神经网络下一层的权重加载到对应的SRAM。
5.根据权利要求1所述的神经网络加速器编译方法,其特征在于,在所述根据所述并行运行策略,生成神经网络加速器的加速指令之后,所述方法还包括:
根据所述神经网络结构信息,对神经网络进行切片处理;
对切片处理后的神经网络进行ping-pong操作。
6.根据权利要求1所述的神经网络加速器编译方法,其特征在于,在根据所述并行运行策略,生成神经网络加速器的加速指令之后,所述方法还包括:
所述神经网络加速器基于生产者消费者模式,根据所述加速指令运行。
7.一种神经网络加速器编译装置,其特征在于,包括:
预设指令和依赖关系生成模块,用于基于神经网络结构信息和预设指令类型,生成每种预设指令类型之间的依赖关系和多种神经网络编译器指令队列,其中,所述神经网络编译器指令队列是由相同预设指令类型的神经网络编译器指令组成的队列;
并行策略生成模块,用于根据所述依赖关系,确定每种神经网络编译器指令队列之间的并行运行策略;
编译模块,用于根据所述并行运行策略,生成神经网络加速器的加速指令。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110821142.4/1.html,转载请声明来源钻瓜专利网。