CN114492781A - 一种硬件加速器及数据处理方法、***、设备、介质 - Google Patents
一种硬件加速器及数据处理方法、***、设备、介质 Download PDFInfo
- Publication number
- CN114492781A CN114492781A CN202210340279.2A CN202210340279A CN114492781A CN 114492781 A CN114492781 A CN 114492781A CN 202210340279 A CN202210340279 A CN 202210340279A CN 114492781 A CN114492781 A CN 114492781A
- Authority
- CN
- China
- Prior art keywords
- neural network
- instruction
- data
- network operation
- operation instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 18
- 238000013528 artificial neural network Methods 0.000 claims abstract description 118
- 238000000034 method Methods 0.000 claims abstract description 21
- 238000000638 solvent extraction Methods 0.000 claims abstract description 9
- 238000012545 processing Methods 0.000 claims description 34
- 238000004590 computer program Methods 0.000 claims description 30
- 238000004364 calculation method Methods 0.000 claims description 11
- 238000013139 quantization Methods 0.000 claims description 7
- 238000011176 pooling Methods 0.000 claims description 6
- 230000004913 activation Effects 0.000 claims description 5
- 230000000903 blocking effect Effects 0.000 claims description 5
- 230000003139 buffering effect Effects 0.000 claims description 3
- 230000000875 corresponding effect Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000013527 convolutional neural network Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Advance Control (AREA)
Abstract
本申请公开了一种硬件加速器及数据处理方法、***、设备、介质,方法包括获取神经网络运算指令;将神经网络运算指令拆分为卷积指令和其他指令;获取与神经网络运算指令对应的feature数据和filter数据,并对feature数据和filter数据进行分块,得到块数据;基于卷积指令和其他指令并行对块数据进行运算,得到目标运算结果。本申请中,硬件加速器在获取神经网络运算指令之后,会将神经网络运算指令拆分为卷积指令和其他指令,并对神经网络运算指令对应feature数据和filter数据进行分块,得到块数据,最后基于卷积指令和其他指令并行对块数据进行运算,可以快速得到目标运算结果,效率高。
Description
技术领域
本申请涉及神经网络技术领域,更具体地说,涉及一种硬件加速器及数据处理方法、***、设备、介质。
背景技术
当前随着人工智能在各个领域的发展,如农业、金融、安防、健康医疗、制造等,人们迫切的希望算法能够计算速度更快、精度更高,同时功耗更低。作为人工智能算法领域最重要的代表之一CNN(卷积神经网络),在图像分析和处理领域取得了众多突破性的进展,己经广泛应用于各类图像相关的应用中。
然而 CNN的特有计算模式,通用处理器对于CNN实现效率并不高,不能满足性能要求。因此,近来已经提出了基于FPGA(Field-Programmable Gate Array,现场可编程门阵列),GPU(graphics processing unit,图形处理器)甚至ASIC(Application SpecificIntegrated Circuit,专用集成电路)设计的各种硬件加速器来提高CNN设计的性能。如果硬件加速器结构没有精心设计,其计算吞吐量与提供FPGA平台的内存带宽不匹配。这意味着由于逻辑资源或存储器带宽的利用不足将造成性能的降级。
综上所述,如何提高硬件加速器对神经网络的运算效率是目前本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种数据处理方法,其能在一定程度上解决如何提高硬件加速器对神经网络的运算效率的技术问题。本申请还提供了一种硬件加速器及数据处理***、设备、计算机可读存储介质。
为了实现上述目的,本申请提供如下技术方案:
一种数据处理方法,应用于硬件加速器,包括:
获取神经网络运算指令;
将所述神经网络运算指令拆分为卷积指令和其他指令;
获取与所述神经网络运算指令对应的feature数据和filter数据,并对所述feature数据和所述filter数据进行分块,得到块数据;
基于所述卷积指令和所述其他指令并行对所述块数据进行运算,得到目标运算结果。
优选的,所述将所述神经网络运算指令拆分为卷积指令和其他指令,包括:
按照通道相关性将所述神经网络运算指令拆分为所述卷积指令和所述其他指令。
优选的,所述其他指令包括池化指令、激活指令、拼接指令、拆分指令。
优选的,所述获取神经网络运算指令,包括:
获取所述神经网络运算指令;
其中,所述神经网络运算指令包括当前节点号、父节点号、父节点类型、子节点号、子节点类型、batch大小、权重kernel大小、高度方向上padding数、宽度方向上padding数、步幅、输入宽度、输入高度、输入通道数、输出通道数、输入featuremap地址、权重地址、量化参数地址、输出地址、计算块的大小。
优选的,所述获取神经网络运算指令,包括:
获取json文件格式的神经网络计算图;
基于python读取所述神经网络计算图并解析得到dict格式的所述神经网络运算指令。
一种数据处理***,应用于硬件加速器,包括:
第一获取模块,用于获取神经网络运算指令;
第一拆分模块,用于将所述神经网络运算指令拆分为卷积指令和其他指令;
第二获取模块,用于获取与所述神经网络运算指令对应的feature数据和filter数据,并对所述feature数据和所述filter数据进行分块,得到块数据;
第一运算模块,用于基于所述卷积指令和所述其他指令并行对所述块数据进行运算,得到目标运算结果。
一种数据处理设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一所述数据处理方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述数据处理方法的步骤。
一种硬件加速器,包括:
内存,用于获取并存储神经网络运算指令、feature数据和filter数据;
拆分器,用于将所述神经网络运算指令拆分为卷积指令和其他指令;对所述feature数据和所述filter数据进行分块,得到块数据;
卷积运算器,用于基于所述卷积指令并行对所述块数据进行运算,得到目标运算结果;
其他运算器,用于基于所述其他指令并行对所述块数据进行运算,得到目标运算结果。
优选的,所述卷积运算器基于DSP阵列核心构成;所述其他运算器基于张量ALU构成。
优选的,还包括:
缓存器,用于缓存数据。
本申请提供的一种数据处理方法,应用于硬件加速器,获取神经网络运算指令;将神经网络运算指令拆分为卷积指令和其他指令;获取与神经网络运算指令对应的feature数据和filter数据,并对feature数据和filter数据进行分块,得到块数据;基于卷积指令和其他指令并行对块数据进行运算,得到目标运算结果。本申请中,硬件加速器在获取神经网络运算指令之后,会将神经网络运算指令拆分为卷积指令和其他指令,并对神经网络运算指令对应feature数据和filter数据进行分块,得到块数据,最后基于卷积指令和其他指令并行对块数据进行运算,可以快速得到目标运算结果,效率高。本申请提供的一种硬件加速器及数据处理***、设备、计算机可读存储介质也解决了相应技术问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种数据处理方法的流程图;
图2为神经网络计算图的示意图;
图3为type的结构示意图;
图4为本申请实施例提供的一种数据处理***的结构示意图;
图5为本申请实施例提供的一种硬件加速器的结构示意图;
图6为本申请实施例提供的硬件加速器的数据传输示意图;
图7为卷积运算器的数据处理示意图;
图8为本申请实施例提供的一种数据处理设备的结构示意图;
图9为本申请实施例提供的一种数据处理设备的另一结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参阅图1,图1为本申请实施例提供的一种数据处理方法的流程图。
本申请实施例提供的一种数据处理方法,应用于硬件加速器,可以包括以下步骤:
步骤S101:获取神经网络运算指令。
实际应用中,硬件加速器可以先获取神经网络运算指令,神经网络运算指令的类型及内容等可以根据实际需要确定,本申请在此不做具体限定。
具体应用场景中,为了便于处理神经网络运算指令,在获取神经网络运算指令的过程中,可以获取神经网络运算指令;其中,神经网络运算指令包括当前节点号、父节点号、父节点类型、子节点号、子节点类型、batch(批处理)大小、权重kernel(内核)大小、高度方向上padding(填充)数、宽度方向上padding数、步幅、输入宽度、输入高度、输入通道数、输出通道数、输入featuremap(特征地图)地址、权重地址、量化参数地址、输出地址、计算块的大小。
且具体应用场景中,在获取神经网络运算指令的过程中,可以基于神经网络计算图来获取神经网络运算指令,具体的,可以获取json(JavaScript Object Notation,对象表示法)文件格式的神经网络计算图;基于python读取神经网络计算图并解析得到dict(字典)格式的神经网络运算指令。其中,python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,作为一门叫做ABC语言的替代品。
需要说明的是,神经网络计算图的生成方式可以根据实际需要来确定,比如可以基于开放神经网络交换ONNX(Open Neural Network Exchange)来生成神经网络计算图,也即针对ONNX这种标准IR(中间表示)表示,解析每个操作的参数信息,对一些操作进行变换和融合,如操作中的输入、输出的shape(性质)信息转换到HW Ggraph IR中的输入长宽、通道、核尺寸等对应参数,Batch Normalization(批归一化,BN)、Scale(规模)、add_bais(增加的偏置)等操作融合到卷积的操作里,以及计算输入输出地址、上下文节点号、分块的大小等,将其模型文件转换成统一的、支持硬件应用的神经网络计算图。此外,ONNX是一套表示深度神经网络模型的开放格式,由微软和Facebook于2017推出,目前得到Caffe2,PyTorch,Apache MXNet等主流框架官方的支持,以及其他Tensorflow等框架也有一些开源脚本提供转换。
为便于理解,假设神经网络计算图如图2所示,则得到的神经网络运算指令可以为:{"runid":3,"parents":[1,2],"parents_type":[0x000,0x000], "childrens": [4,5], "childrens_type": [0x000,0x000],"batch_size":1,"type": 0x030,"kernel_size":7,"h_pad":3,"v_pad":3,"stride":2,"input_width":224, "input_height":224,"input_channel":3,"output_channel":64,"input_addr": [0x20000,0x30000],"filter_addr":[0x130000],"quant_addr":[0x230000],"output_addr": [0x40000],"block_size":64}。其中,指令中的节点3表示eltwise,节点1表示表示输入给eltwise的第一个conv2d,节点2表示输入给eltwise的第二个conv2d,节点4表示接收eltwise输出的第一个conv2d,节点5表示接收eltwise输出的第二个conv2d。
其中,runid表示当前节点号,parents表示父节点号,parents_type表示父节点类型(如type),children表示子节点号,children_type表示子节点类型(如type),batch_size表示batch大小,kernel_size表示权重kernel大小,h_pad表示高度方向上padding数,v_pad表示宽度方向上padding数,stride表示步幅,input_width表示输入宽度,input_height表示输入高度,input_channel表示输入通道数,output_channel表示输出通道数,input_addr表示输入featuremap地址,例如残差时输入[0x20000,0x30000],filter_addr表示权重地址;quant_addr表示量化参数地址;output_addr表示输出地址;block_size表示计算块的大小,也即并行的通道数。
需要说明的是,本申请中type的结构可以根据实际需要来灵活确定,比如type的结构可以如图3所示,也即type可以由五位二进制数组成,且前四位可以表示神经网络指令的总类型,最后一位可以表示总类型中的具体类型,其具体说明可以如表1所示。
表1 type指令集说明
需要说明的是,神经网络运算指令的类型可以根据实际需要确定,比如可以为二进制指令,其说明可以如表2所示等。
表2 二进制指令类型说明
其中,InvalidWait表示无效等待;InputFeatureAddress表示输入的特征地址;InputChannel表示输入的通道;OutputChannel表示输出的通道。
步骤S102:将神经网络运算指令拆分为卷积指令和其他指令。
实际应用中,硬件加速器在获取神经网络运算指令之后,便可以将神经网络运算指令拆分为卷积指令和其他指令,及便后续并行对卷积指令和其他指令进行处理。
具体应用场景中,因为卷积指令与通道相关,其他指令与通道不相关,所以在将神经网络运算指令拆分为卷积指令和其他指令的过程中,可以按照通道相关性将神经网络运算指令拆分为卷积指令和其他指令。
具体应用场景中,其他指令可以包括池化指令、激活指令、拼接指令、拆分指令等神经网络运算过程中除卷积之外的指令等,本申请在此不做具体限定。
步骤S103:获取与神经网络运算指令对应的feature数据和filter数据,并对feature数据和filter数据进行分块,得到块数据。
实际应用中,神经网络运算指令的处理离不开对应的数据,所以硬件加速器在将神经网络运算指令拆分为卷积指令和其他指令之后,还需获取与神经网络运算指令对应的feature(特征)数据和filter(滤波)数据,并对feature数据和filter数据进行分块,得到块数据。具体的分块方式可以根据实际需要确定,本申请在此不做具体限定。
步骤S104:基于卷积指令和其他指令并行对块数据进行运算,得到目标运算结果。
实际应用中,硬件加速器在获取与神经网络运算指令对应的feature数据和filter数据,并对feature数据和filter数据进行分块,得到块数据之后,便可以基于卷积指令和其他指令并行对块数据进行运算,得到目标运算结果。需要说明的是,可以基于多个卷积指令并行对块数据进行运算,也可以基于卷积指令和其他指令并行对块数据进行运算,还可以基于多个其他指令并行对块数据进行运算等,本申请在此不做具体限定。
本申请提供的一种数据处理方法,应用于硬件加速器,获取神经网络运算指令;将神经网络运算指令拆分为卷积指令和其他指令;获取与神经网络运算指令对应的feature数据和filter数据,并对feature数据和filter数据进行分块,得到块数据;基于卷积指令和其他指令并行对块数据进行运算,得到目标运算结果。本申请中,硬件加速器在获取神经网络运算指令之后,会将神经网络运算指令拆分为卷积指令和其他指令,并对神经网络运算指令对应feature数据和filter数据进行分块,得到块数据,最后基于卷积指令和其他指令并行对块数据进行运算,可以快速得到目标运算结果,效率高。
请参阅图4,图4为本申请实施例提供的一种数据处理***的结构示意图。
本申请实施例提供的一种数据处理***,应用于硬件加速器,可以包括:
第一获取模块101,用于获取神经网络运算指令;
第一拆分模块102,用于将神经网络运算指令拆分为卷积指令和其他指令;
第二获取模块103,用于获取与神经网络运算指令对应的feature数据和filter数据,并对feature数据和filter数据进行分块,得到块数据;
第一运算模块104,用于基于卷积指令和其他指令并行对块数据进行运算,得到目标运算结果。
本申请实施例提供的一种数据处理***,应用于硬件加速器,第一拆分模块可以包括:
第一拆分单元,用于按照通道相关性将神经网络运算指令拆分为卷积指令和其他指令。
本申请实施例提供的一种数据处理***,应用于硬件加速器,其他指令包括池化指令、激活指令、拼接指令、拆分指令。
本申请实施例提供的一种数据处理***,应用于硬件加速器,第一获取模块可以包括:
第一获取单元,用于获取神经网络运算指令;
其中,神经网络运算指令包括当前节点号、父节点号、父节点类型、子节点号、子节点类型、batch大小、权重kernel大小、高度方向上padding数、宽度方向上padding数、步幅、输入宽度、输入高度、输入通道数、输出通道数、输入featuremap地址、权重地址、量化参数地址、输出地址、计算块的大小。
本申请实施例提供的一种数据处理***,应用于硬件加速器,第一获取模块可以包括:
第二获取单元,用于获取json文件格式的神经网络计算图;
第一解析单元,用于基于python读取神经网络计算图并解析得到dict格式的神经网络运算指令。
请参阅图5和图6,图5为本申请实施例提供的一种硬件加速器的结构示意图,图6为本申请实施例提供的硬件加速器的数据传输示意图。
本申请实施例提供的一种硬件加速器,可以包括:
内存11,用于获取并存储神经网络运算指令、feature数据和filter数据;
拆分器12,用于将神经网络运算指令拆分为卷积指令和其他指令;对feature数据和filter数据进行分块,得到块数据;
卷积运算器13,用于基于卷积指令并行对块数据进行运算,得到目标运算结果;
其他运算器14,用于基于其他指令并行对块数据进行运算,得到目标运算结果。
本申请实施例提供的一种硬件加速器,卷积运算器可以基于DSP阵列核心构成;其他运算器可以基于张量ALU(arithmetic and logic unit,算术逻辑单元)构成。
且具体应用场景中,拆分器、卷积运算器和其他运算器间可以通过FIFO(FirstInput First Output)队列和单写入器/单读取器SRAM(Static Random-Access Memory,静态随机存取存储器)内存块进行通信等,以实现任务级的管道并行。此外,如图6所示,卷积元算起可以分成多块参与计算,Block1计算完成之后,其他模块就可以处理Block1的数据块,如图7所示,CONV1的Block1数据块处理完成之后,其他模块就会处理Block1的数据,如此,在CONV1操作处理完成之后CONV2即可处理Block1的数据块,实现隐藏了其他模块的处理时间。
本申请实施例提供的一种硬件加速器,还可以包括:缓存器,用于缓存数据。
需要说的是,本申请提供的硬件加速器的类型可以根据实际需要确定,比如其可以为FPGA(Field-Programmable Gate Array,现场可编程门阵列)等,此时,硬件加速器可以通过Runtime(运行时刻)与外界CPU(central processing unit,中央处理器)进行数据交互,比如Runtime使用C++语言来读取FPGA的设备文件,添加python访问C++的pybind11库封装实现python的调用CPU与FPGA交互的接口函数,针对不同的网络实现不同的数据预处理操作,数据写入FPGA等待返回信息,读取最终结果,计算网络的性能指标。除此之外,在还可以借助硬件设计模板来减轻用户设计硬件加速器的压力,比如设置硬件设计模板为用户提供模块化,可选择修改硬件数据类型、内存架构、DSP(Digital Signal Processor,数字信号处理单元)阵列核心维度、硬件操作符和管道阶段;将多个硬件设计变体暴露给编译器栈有助于编译器的开发;可以修改DSP阵列核心维度以影响硬件资源的利用,修改DSP阵列核心单元的输入、权重和累加器张量的形状,直接影响要实例化的乘法器数量以及 SRAM端口需要的宽度;此外,每种数据类型都可以自定义为不同的整数精度:权重和输入类型可以是 8 位或更少,而累加类型可以是 32 位或更少;当资源受限时,整数精度控制让用户可以在芯片上扩展算术密度。
本申请还提供了一种数据处理设备及计算机可读存储介质,其均具有本申请实施例提供的一种数据处理方法具有的对应效果。请参阅图8,图8为本申请实施例提供的一种数据处理设备的结构示意图。
本申请实施例提供的一种数据处理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:
获取神经网络运算指令;
将神经网络运算指令拆分为卷积指令和其他指令;
获取与神经网络运算指令对应的feature数据和filter数据,并对feature数据和filter数据进行分块,得到块数据;
基于卷积指令和其他指令并行对块数据进行运算,得到目标运算结果。
本申请实施例提供的一种数据处理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:按照通道相关性将神经网络运算指令拆分为卷积指令和其他指令。
本申请实施例提供的一种数据处理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:其他指令包括池化指令、激活指令、拼接指令、拆分指令。
本申请实施例提供的一种数据处理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:获取神经网络运算指令;其中,神经网络运算指令包括当前节点号、父节点号、父节点类型、子节点号、子节点类型、batch大小、权重kernel大小、高度方向上padding数、宽度方向上padding数、步幅、输入宽度、输入高度、输入通道数、输出通道数、输入featuremap地址、权重地址、量化参数地址、输出地址、计算块的大小。
本申请实施例提供的一种数据处理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:获取json文件格式的神经网络计算图;基于python读取神经网络计算图并解析得到dict格式的神经网络运算指令。
请参阅图9,本申请实施例提供的另一种数据处理设备中还可以包括:与处理器202连接的输入端口203,用于传输外界输入的命令至处理器202;与处理器202连接的显示单元204,用于显示处理器202的处理结果至外界;与处理器202连接的通信模块205,用于实现数据处理设备与外界的通信。显示单元204可以为显示面板、激光扫描使显示器等;通信模块205所采用的通信方式包括但不局限于移动高清链接技术(HML)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线连接:无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:
获取神经网络运算指令;
将神经网络运算指令拆分为卷积指令和其他指令;
获取与神经网络运算指令对应的feature数据和filter数据,并对feature数据和filter数据进行分块,得到块数据;
基于卷积指令和其他指令并行对块数据进行运算,得到目标运算结果。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:按照通道相关性将神经网络运算指令拆分为卷积指令和其他指令。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:其他指令包括池化指令、激活指令、拼接指令、拆分指令。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:获取神经网络运算指令;其中,神经网络运算指令包括当前节点号、父节点号、父节点类型、子节点号、子节点类型、batch大小、权重kernel大小、高度方向上padding数、宽度方向上padding数、步幅、输入宽度、输入高度、输入通道数、输出通道数、输入featuremap地址、权重地址、量化参数地址、输出地址、计算块的大小。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:获取json文件格式的神经网络计算图;基于python读取神经网络计算图并解析得到dict格式的神经网络运算指令。
本申请所涉及的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
本申请实施例提供的一种硬件加速器及数据处理***、设备、计算机可读存储介质中相关部分的说明请参见本申请实施例提供的一种数据处理方法中对应部分的详细说明,在此不再赘述。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (11)
1.一种数据处理方法,其特征在于,应用于硬件加速器,包括:
获取神经网络运算指令;
将所述神经网络运算指令拆分为卷积指令和其他指令;
获取与所述神经网络运算指令对应的feature数据和filter数据,并对所述feature数据和所述filter数据进行分块,得到块数据;
基于所述卷积指令和所述其他指令并行对所述块数据进行运算,得到目标运算结果。
2.根据权利要求1所述的方法,其特征在于,所述将所述神经网络运算指令拆分为卷积指令和其他指令,包括:
按照通道相关性将所述神经网络运算指令拆分为所述卷积指令和所述其他指令。
3.根据权利要求2所述的方法,其特征在于,所述其他指令包括池化指令、激活指令、拼接指令、拆分指令。
4.根据权利要求1所述的方法,其特征在于,所述获取神经网络运算指令,包括:
获取所述神经网络运算指令;
其中,所述神经网络运算指令包括当前节点号、父节点号、父节点类型、子节点号、子节点类型、batch大小、权重kernel大小、高度方向上padding数、宽度方向上padding数、步幅、输入宽度、输入高度、输入通道数、输出通道数、输入featuremap地址、权重地址、量化参数地址、输出地址、计算块的大小。
5.根据权利要求1所述的方法,其特征在于,所述获取神经网络运算指令,包括:
获取json文件格式的神经网络计算图;
基于python读取所述神经网络计算图并解析得到dict格式的所述神经网络运算指令。
6.一种数据处理***,其特征在于,应用于硬件加速器,包括:
第一获取模块,用于获取神经网络运算指令;
第一拆分模块,用于将所述神经网络运算指令拆分为卷积指令和其他指令;
第二获取模块,用于获取与所述神经网络运算指令对应的feature数据和filter数据,并对所述feature数据和所述filter数据进行分块,得到块数据;
第一运算模块,用于基于所述卷积指令和所述其他指令并行对所述块数据进行运算,得到目标运算结果。
7.一种数据处理设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述数据处理方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述数据处理方法的步骤。
9.一种硬件加速器,其特征在于,包括:
内存,用于获取并存储神经网络运算指令、feature数据和filter数据;
拆分器,用于将所述神经网络运算指令拆分为卷积指令和其他指令;对所述feature数据和所述filter数据进行分块,得到块数据;
卷积运算器,用于基于所述卷积指令并行对所述块数据进行运算,得到目标运算结果;
其他运算器,用于基于所述其他指令并行对所述块数据进行运算,得到目标运算结果。
10.根据权利要求9所述的硬件加速器,其特征在于,所述卷积运算器基于DSP阵列核心构成;所述其他运算器基于张量ALU构成。
11.根据权利要求9所述的硬件加速器,其特征在于,还包括:
缓存器,用于缓存数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210340279.2A CN114492781A (zh) | 2022-04-02 | 2022-04-02 | 一种硬件加速器及数据处理方法、***、设备、介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210340279.2A CN114492781A (zh) | 2022-04-02 | 2022-04-02 | 一种硬件加速器及数据处理方法、***、设备、介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114492781A true CN114492781A (zh) | 2022-05-13 |
Family
ID=81488985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210340279.2A Pending CN114492781A (zh) | 2022-04-02 | 2022-04-02 | 一种硬件加速器及数据处理方法、***、设备、介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114492781A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115686845A (zh) * | 2022-10-31 | 2023-02-03 | 中科驭数(北京)科技有限公司 | 数据计算加速方法、装置、设备及计算机可读存储介质 |
CN115982530A (zh) * | 2023-03-13 | 2023-04-18 | 苏州浪潮智能科技有限公司 | 加速器运算控制方法、***、存储介质、装置及设备 |
CN116167425A (zh) * | 2023-04-26 | 2023-05-26 | 浪潮电子信息产业股份有限公司 | 一种神经网络加速方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239824A (zh) * | 2016-12-05 | 2017-10-10 | 北京深鉴智能科技有限公司 | 用于实现稀疏卷积神经网络加速器的装置和方法 |
CN107329734A (zh) * | 2016-04-29 | 2017-11-07 | 北京中科寒武纪科技有限公司 | 一种用于执行卷积神经网络正向运算的装置和方法 |
CN109934339A (zh) * | 2019-03-06 | 2019-06-25 | 东南大学 | 一种基于一维脉动阵列的通用卷积神经网络加速器 |
CN111488983A (zh) * | 2020-03-24 | 2020-08-04 | 哈尔滨工业大学 | 一种基于fpga的轻量级cnn模型计算加速器 |
CN112905954A (zh) * | 2020-12-28 | 2021-06-04 | 北京计算机技术及应用研究所 | 一种利用fpga bram的cnn模型卷积运算加速计算方法 |
-
2022
- 2022-04-02 CN CN202210340279.2A patent/CN114492781A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107329734A (zh) * | 2016-04-29 | 2017-11-07 | 北京中科寒武纪科技有限公司 | 一种用于执行卷积神经网络正向运算的装置和方法 |
CN107239824A (zh) * | 2016-12-05 | 2017-10-10 | 北京深鉴智能科技有限公司 | 用于实现稀疏卷积神经网络加速器的装置和方法 |
CN109934339A (zh) * | 2019-03-06 | 2019-06-25 | 东南大学 | 一种基于一维脉动阵列的通用卷积神经网络加速器 |
CN111488983A (zh) * | 2020-03-24 | 2020-08-04 | 哈尔滨工业大学 | 一种基于fpga的轻量级cnn模型计算加速器 |
CN112905954A (zh) * | 2020-12-28 | 2021-06-04 | 北京计算机技术及应用研究所 | 一种利用fpga bram的cnn模型卷积运算加速计算方法 |
Non-Patent Citations (5)
Title |
---|
DENG L等: "Model compression and hardware acceleration for neural networks: A comprehensive survey", 《PROCEEDINGS OF THE IEEE》 * |
MITTAL S: "A survey of FPGA-based accelerators for convolutional neural networks", 《NEURAL COMPUTING AND APPLICATIONS》 * |
YIN J Y等: "A CNN accelerator on embedded FPGA using dynamic reconfigurable coprocessor等", 《PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON ARTIFICIAL INTELLIGENCE, INFORMATION PROCESSING AND CLOUD COMPUTING》 * |
尹文枫等: "卷积神经网络压缩与加速技术研究进展", 《计算机***应用》 * |
徐欣等: "一种高度并行的卷积神经网络加速器设计方法", 《哈尔滨工业大学学报》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115686845A (zh) * | 2022-10-31 | 2023-02-03 | 中科驭数(北京)科技有限公司 | 数据计算加速方法、装置、设备及计算机可读存储介质 |
CN115982530A (zh) * | 2023-03-13 | 2023-04-18 | 苏州浪潮智能科技有限公司 | 加速器运算控制方法、***、存储介质、装置及设备 |
CN116167425A (zh) * | 2023-04-26 | 2023-05-26 | 浪潮电子信息产业股份有限公司 | 一种神经网络加速方法、装置、设备及介质 |
CN116167425B (zh) * | 2023-04-26 | 2023-08-04 | 浪潮电子信息产业股份有限公司 | 一种神经网络加速方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10338925B2 (en) | Tensor register files | |
CN114492781A (zh) | 一种硬件加速器及数据处理方法、***、设备、介质 | |
US20220012575A1 (en) | Methods and apparatus for localized processing within multicore neural networks | |
EP3631623B1 (en) | Tensor processor instruction set architecture | |
US20230026006A1 (en) | Convolution computation engine, artificial intelligence chip, and data processing method | |
US11816574B2 (en) | Structured pruning for machine learning model | |
US20210241095A1 (en) | Deep learning processing apparatus and method, device and storage medium | |
CN107944545B (zh) | 应用于神经网络的计算方法及计算装置 | |
Daghero et al. | Energy-efficient deep learning inference on edge devices | |
US20200226458A1 (en) | Optimizing artificial neural network computations based on automatic determination of a batch size | |
Lin et al. | Accelerating large sparse neural network inference using GPU task graph parallelism | |
Zhou et al. | Addressing sparsity in deep neural networks | |
CN117032807A (zh) | 基于risc-v指令集的ai加速处理器架构 | |
Mohaidat et al. | A survey on neural network hardware accelerators | |
CN109902821B (zh) | 一种数据处理方法、装置及相关组件 | |
US20200192797A1 (en) | Caching data in artificial neural network computations | |
US20240037179A1 (en) | Data processing method and apparatus | |
JP2020021208A (ja) | ニューラルネットワーク用プロセッサ、ニューラルネットワーク用処理方法、および、プログラム | |
US20220108156A1 (en) | Hardware architecture for processing data in sparse neural network | |
CN114365151A (zh) | 神经网络模型转化方法、装置、服务器及存储介质 | |
CN118035618B (zh) | 数据处理器、数据处理方法、电子设备、存储介质 | |
US20230325464A1 (en) | Hpc framework for accelerating sparse cholesky factorization on fpgas | |
US20220051095A1 (en) | Machine Learning Computer | |
US20230259703A1 (en) | Electronic device and method for controlling the electronic device | |
US20230376663A1 (en) | Systems and methods for hardware acceleration of masking and normalizing data with a triangular input mask |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220513 |
|
RJ01 | Rejection of invention patent application after publication |