一种硬件加速器及数据处理方法、系统、设备、介质技术方案

技术编号:33499693 阅读:17 留言:0更新日期:2022-05-19 01:10
本申请公开了一种硬件加速器及数据处理方法、系统、设备、介质,方法包括获取神经网络运算指令;将神经网络运算指令拆分为卷积指令和其他指令;获取与神经网络运算指令对应的feature数据和filter数据,并对feature数据和filter数据进行分块,得到块数据;基于卷积指令和其他指令并行对块数据进行运算,得到目标运算结果。本申请中,硬件加速器在获取神经网络运算指令之后,会将神经网络运算指令拆分为卷积指令和其他指令,并对神经网络运算指令对应feature数据和filter数据进行分块,得到块数据,最后基于卷积指令和其他指令并行对块数据进行运算,可以快速得到目标运算结果,效率高。高。高。

【技术实现步骤摘要】
一种硬件加速器及数据处理方法、系统、设备、介质


[0001]本申请涉及神经网络
,更具体地说,涉及一种硬件加速器及数据处理方法、系统、设备、介质。

技术介绍

[0002]当前随着人工智能在各个领域的发展,如农业、金融、安防、健康医疗、制造等,人们迫切的希望算法能够计算速度更快、精度更高,同时功耗更低。作为人工智能算法领域最重要的代表之一CNN(卷积神经网络),在图像分析和处理领域取得了众多突破性的进展,己经广泛应用于各类图像相关的应用中。
[0003]然而 CNN的特有计算模式,通用处理器对于CNN实现效率并不高,不能满足性能要求。因此,近来已经提出了基于FPGA(Field

Programmable Gate Array,现场可编程门阵列),GPU(graphics processing unit,图形处理器)甚至ASIC(Application Specific Integrated Circuit,专用集成电路)设计的各种硬件加速器来提高CNN设计的性能。如果硬件加速器结构没有精心设计,其计算吞吐量与提供FPGA平台的内存带宽不匹配。这意味着由于逻辑资源或存储器带宽的利用不足将造成性能的降级。
[0004]综上所述,如何提高硬件加速器对神经网络的运算效率是目前本领域技术人员亟待解决的问题。

技术实现思路

[0005]本申请的目的是提供一种数据处理方法,其能在一定程度上解决如何提高硬件加速器对神经网络的运算效率的技术问题。本申请还提供了一种硬件加速器及数据处理系统、设备、计算机可读存储介质。
[0006]为了实现上述目的,本申请提供如下技术方案:一种数据处理方法,应用于硬件加速器,包括:获取神经网络运算指令;将所述神经网络运算指令拆分为卷积指令和其他指令;获取与所述神经网络运算指令对应的feature数据和filter数据,并对所述feature数据和所述filter数据进行分块,得到块数据;基于所述卷积指令和所述其他指令并行对所述块数据进行运算,得到目标运算结果。
[0007]优选的,所述将所述神经网络运算指令拆分为卷积指令和其他指令,包括:按照通道相关性将所述神经网络运算指令拆分为所述卷积指令和所述其他指令。
[0008]优选的,所述其他指令包括池化指令、激活指令、拼接指令、拆分指令。
[0009]优选的,所述获取神经网络运算指令,包括:获取所述神经网络运算指令;其中,所述神经网络运算指令包括当前节点号、父节点号、父节点类型、子节点号、
子节点类型、batch大小、权重kernel大小、高度方向上padding数、宽度方向上padding数、步幅、输入宽度、输入高度、输入通道数、输出通道数、输入featuremap地址、权重地址、量化参数地址、输出地址、计算块的大小。
[0010]优选的,所述获取神经网络运算指令,包括:获取json文件格式的神经网络计算图;基于python读取所述神经网络计算图并解析得到dict格式的所述神经网络运算指令。
[0011]一种数据处理系统,应用于硬件加速器,包括:第一获取模块,用于获取神经网络运算指令;第一拆分模块,用于将所述神经网络运算指令拆分为卷积指令和其他指令;第二获取模块,用于获取与所述神经网络运算指令对应的feature数据和filter数据,并对所述feature数据和所述filter数据进行分块,得到块数据;第一运算模块,用于基于所述卷积指令和所述其他指令并行对所述块数据进行运算,得到目标运算结果。
[0012]一种数据处理设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上任一所述数据处理方法的步骤。
[0013]一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述数据处理方法的步骤。
[0014]一种硬件加速器,包括:内存,用于获取并存储神经网络运算指令、feature数据和filter数据;拆分器,用于将所述神经网络运算指令拆分为卷积指令和其他指令;对所述feature数据和所述filter数据进行分块,得到块数据;卷积运算器,用于基于所述卷积指令并行对所述块数据进行运算,得到目标运算结果;其他运算器,用于基于所述其他指令并行对所述块数据进行运算,得到目标运算结果。
[0015]优选的,所述卷积运算器基于DSP阵列核心构成;所述其他运算器基于张量ALU构成。
[0016]优选的,还包括:缓存器,用于缓存数据。
[0017]本申请提供的一种数据处理方法,应用于硬件加速器,获取神经网络运算指令;将神经网络运算指令拆分为卷积指令和其他指令;获取与神经网络运算指令对应的feature数据和filter数据,并对feature数据和filter数据进行分块,得到块数据;基于卷积指令和其他指令并行对块数据进行运算,得到目标运算结果。本申请中,硬件加速器在获取神经网络运算指令之后,会将神经网络运算指令拆分为卷积指令和其他指令,并对神经网络运算指令对应feature数据和filter数据进行分块,得到块数据,最后基于卷积指令和其他指令并行对块数据进行运算,可以快速得到目标运算结果,效率高。本申请提供的一种硬件加速器及数据处理系统、设备、计算机可读存储介质也解决了相应技术问题。
附图说明
[0018]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0019]图1为本申请实施例提供的一种数据处理方法的流程图;图2为神经网络计算图的示意图;图3为type的结构示意图;图4为本申请实施例提供的一种数据处理系统的结构示意图;图5为本申请实施例提供的一种硬件加速器的结构示意图;图6为本申请实施例提供的硬件加速器的数据传输示意图;图7为卷积运算器的数据处理示意图;图8为本申请实施例提供的一种数据处理设备的结构示意图;图9为本申请实施例提供的一种数据处理设备的另一结构示意图。
具体实施方式
[0020]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0021]请参阅图1,图1为本申请实施例提供的一种数据处理方法的流程图。
[0022]本申请实施例提供的一种数据处理方法,应用于硬件加速器,可以包括以下步骤:步骤S101:获取神经网络运算指令。
[0023]实际应用中,硬件加速器可以先获取神经网络运算指令,神经网络运算指令的类型及内容等可以根据实际需要确定,本申请在此不做具体限定。
[002本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,应用于硬件加速器,包括:获取神经网络运算指令;将所述神经网络运算指令拆分为卷积指令和其他指令;获取与所述神经网络运算指令对应的feature数据和filter数据,并对所述feature数据和所述filter数据进行分块,得到块数据;基于所述卷积指令和所述其他指令并行对所述块数据进行运算,得到目标运算结果。2.根据权利要求1所述的方法,其特征在于,所述将所述神经网络运算指令拆分为卷积指令和其他指令,包括:按照通道相关性将所述神经网络运算指令拆分为所述卷积指令和所述其他指令。3.根据权利要求2所述的方法,其特征在于,所述其他指令包括池化指令、激活指令、拼接指令、拆分指令。4.根据权利要求1所述的方法,其特征在于,所述获取神经网络运算指令,包括:获取所述神经网络运算指令;其中,所述神经网络运算指令包括当前节点号、父节点号、父节点类型、子节点号、子节点类型、batch大小、权重kernel大小、高度方向上padding数、宽度方向上padding数、步幅、输入宽度、输入高度、输入通道数、输出通道数、输入featuremap地址、权重地址、量化参数地址、输出地址、计算块的大小。5.根据权利要求1所述的方法,其特征在于,所述获取神经网络运算指令,包括:获取json文件格式的神经网络计算图;基于python读取所述神经网络计算图并解析得到dict格式的所述神经网络运算指令。6.一种数据处理系统,其特征在于,应用于硬件加速器,包括:第一获取...

【专利技术属性】
技术研发人员:曹其春董刚胡克坤杨宏斌尹文枫王斌强
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1