System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及神经网络领域,尤其涉及一种基于卷积神经网络的加速器及加速方法。
技术介绍
1、卷积神经网络已经广泛应用于计算机视觉、自然语言处理等领域。然而,卷积神经网络的特有计算模式,通用处理器对于卷积神经网络的实现效率并不高,不能满足性能要求。因此,近来已经提出了基于现场可编程门阵列(field-programmable gate arrayfpga),图形处理器(graphics processing unit gpu)、专用集成电路(applicationspecific integrated circuit asic)设计的各种卷积神经网络硬件加速器来提高卷积神经网络的性能。
2、卷积神经网络硬件加速器综合了功耗低和卷积相关运算速度快的特点,成为部署卷积神经网络运算的主流硬件之一。但由于卷积神经网络模型种类众多,且不同模型拥有不同的数据分布、权重分布、计算流等特点,模型内不同的计算层也有不同的数据尺寸,为适应不同的计算流和数据流牺牲计算效率;而且在加速器内部,数据的传输和运算是顺序进行,计算阵列需要等待数据传输完毕才开始运算,在等待数据传输的时间上存在算力浪费;导致计算效率低。
技术实现思路
1、本申请提供一种基于卷积神经网络的加速器及加速方法,以解决卷积神经网络硬件加速器计算效率低的问题。
2、本申请第一方面提供一种基于卷积神经网络的加速器,包括:编译器、获取单元、片上储存器以及计算单元;
3、所述编译器用于解析onnx模型,所述onnx模
4、所述获取单元用于获取输入特征图以及权重数据;
5、所述片上储存器包括静态随机存取存储器sram,所述sram用于储存所述输入特征图、中间特征图以及输出特征图,所述sram的运行模式包括缓存模式和储存模式;
6、所述计算单元用于读取所述权重数据,并通过输入特征图通道数量、中间特征图通道数量、卷积核的尺寸实时计算所述权重数据的数量;
7、所述编译器还用于:利用所述算子组对所述输入特征图执行分类,以及获取所述输入特征图的尺寸;
8、所述编译器用于:当所述尺寸大于或等于尺寸阈值,所述权重数据的数量小于数量阈值,设置所述sram的运行模式为缓存模式,其中,所述sram在所述缓存模式下被划分为多层缓存区;
9、所述计算单元用于将所述输入特征图逐行写入缓存区,并与权重数据执行乘累加运算,得到中间特征图;并将所述中间特征图和输入特征图缓存至下一层缓存区;遍历所述多层缓存区,直至得到输出特征图;
10、所述编译器还用于:若所述尺寸小于尺寸阈值或所述权重数据的数量大于数量阈值时,设置所述sram的运行模式为储存模式,其中,所述sram在储存模式下被划分两个储存区;
11、所述计算单元还用于将所述输入特征图写入一个所述存储区中,并与权重数据执行乘累加运算,得到中间特征图,将所述中间特征图写入另一个存储区中;在两个所述储存区内交替计算,直至得到输出特征图。
12、可选的,所述sram包括多行内存;
13、当所述sram的运行模式为缓存模式时,所述缓存区为n层,前n-1层所述缓存区的行数为第一数量行内存,第n层所述缓存区的行数为第二数量行内存;
14、当所述sram的运行模式为储存模式时,两个所述储存区的行数为所述sram行数的1/2。
15、可选的,其特征在于,所述获取模块还用于获取卷积神经网络模型的计算图,所述计算图包括多个算子;
16、所述编译器包括前端,所述前端用于基于onnx模型和量化工具针对所述卷积神经网络模型量化处理,以得到算子ir拓扑图;
17、根据所述算子ir拓扑图,对所述计算图中的算子进行算子融合,以生成新的计算图。
18、可选的,所述编译器包括中端;
19、所述中端包括算子分组模块以及输入特征图切分模块;
20、所述算子分组模块用于将所述新的计算图分为第一算子组和第二算子组,所述第一算子组用于计算所述缓存区的输入特征图,所述第二算子组计算所述储存区的输入特征图;
21、所述输入特征图切分模块用于计算所述第二算子组的输入特征图以及中间特征图的交替信息。
22、可选的,所述交替信息包括起始行、终止行、起始列、终止列、起始通道、终止通道;
23、所述获取单元还用于获取所述输入特征图的图像矩阵;
24、所述交替信息用于为所述第二算子组提供交替所述图像矩阵的起始行、终止行或起始列、终止列或起始通道、终止通道。
25、可选的,所述编译器还包括后端,所述加速器还包括指令寄存器;
26、所述后端包括中间数据存储调度模块和指令生成模块;
27、所述中间数据存储调度模块用于将每个所述第二算子组按照所述储存区内交替的数量生成多个指令节点,以及生成所述指令节点的数据节点信息;
28、所述指令寄存器用于储存所述卷积神经网络模型的执行指令和配置数据;
29、所述指令生成模块用于将所述执行指令和配置数据转换为二进制数据,还用于根据所述二进制数据对所述指令寄存器赋值。
30、可选的,所述后端还包括节点映射模块;
31、所述节点映射模块用于通过前端、中端、中间数据存储调度模块和指令生成模块映射为不同的计算节点;
32、将不同的所述计算节点通过排序生成顶层计算图,所述顶层计算图用于为所述获取单元、片上储存器、计算单元提供计算节点。
33、可选的,所述加速器还包括参数配置单元,所述参数配置单元用于预存所述卷积神经网络模型每层卷积计算的配置参数,所述配置参数包括输入特征图的通道、所述中间特征图的通道以及所述卷积核尺寸。
34、可选的,所述片上储存器还包括权重缓存器,所述加速器还包括双口缓冲器;
35、当所述sram的运行模式为缓存模式时,利用所述权重缓存器储存权重数据;
36、当所述sram的运行模式为储存模式时,利用所述双口缓冲器储存权重数据。
37、本申请第二方面提供一种基于卷积神经网络的加速方法,应用于第一方面所述的基于卷积神经网络的加速器,包括:
38、解析onnx模型,所述onnx模型包括多个算子组;
39、获取输入特征图以及权重数据;
40、读取所述权重数据,并通过输入特征图通道数量、中间特征图通道数量、卷积核的尺寸实时计算所述权重数据的数量;
41、利用所述算子组对所述输入特征图进行分类,以及获取所述输入特征图的尺寸;
42、若所述尺寸大于或等于尺寸阈值,所述权重数据的数量小于数量阈值时,设置静态随机存取存储器sram的运行模式为缓存模式,其中,所述sram在缓存模式下将被划分为多层缓存区;将所述输入特征图逐行写入缓存区,并与权重数据执行乘累加运算,得到中间特征图;并将所述中间特本文档来自技高网...
【技术保护点】
1.一种基于卷积神经网络的加速器,其特征在于,包括:
2.根据权利要求1所述的基于卷积神经网络的加速器,其特征在于,所述SRAM包括多行内存;
3.根据权利要求1所述的基于卷积神经网络的加速器,其特征在于,
4.根据权利要求3所述的基于卷积神经网络的加速器,其特征在于,所述编译器包括中端;
5.根据权利要求4所述的基于卷积神经网络的加速器,其特征在于,所述交替信息包括起始行、终止行、起始列、终止列、起始通道、终止通道;
6.根据权利要求4所述的基于卷积神经网络的加速器,其特征在于,所述编译器还包括后端,所述加速器还包括指令寄存器;
7.根据权利要求6所述的基于卷积神经网络的加速器,其特征在于,所述后端还包括节点映射模块;
8.根据权利要求7所述的基于卷积神经网络的加速器,其特征在于,所述加速器还包括参数配置单元,所述参数配置单元用于预存所述卷积神经网络模型每层卷积计算的配置参数,所述配置参数包括输入特征图的通道、所述中间特征图的通道以及所述卷积核尺寸。
9.根据权利要求1所述的基于卷积
10.一种基于卷积神经网络的加速方法,其特征在于,应用于权利要求1-9任一项所述的基于卷积神经网络的加速器,包括:
...【技术特征摘要】
1.一种基于卷积神经网络的加速器,其特征在于,包括:
2.根据权利要求1所述的基于卷积神经网络的加速器,其特征在于,所述sram包括多行内存;
3.根据权利要求1所述的基于卷积神经网络的加速器,其特征在于,
4.根据权利要求3所述的基于卷积神经网络的加速器,其特征在于,所述编译器包括中端;
5.根据权利要求4所述的基于卷积神经网络的加速器,其特征在于,所述交替信息包括起始行、终止行、起始列、终止列、起始通道、终止通道;
6.根据权利要求4所述的基于卷积神经网络的加速器,其特征在于,所述编译器还包括后端,所述加速器还包括指令寄存器;
<...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。