CN113379047A - 一种实现卷积神经网络处理的系统及方法 - Google Patents
一种实现卷积神经网络处理的系统及方法 Download PDFInfo
- Publication number
- CN113379047A CN113379047A CN202110571569.3A CN202110571569A CN113379047A CN 113379047 A CN113379047 A CN 113379047A CN 202110571569 A CN202110571569 A CN 202110571569A CN 113379047 A CN113379047 A CN 113379047A
- Authority
- CN
- China
- Prior art keywords
- module
- buffer
- control signal
- signal
- input
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 67
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 38
- 239000000872 buffer Substances 0.000 claims abstract description 168
- 238000013473 artificial intelligence Methods 0.000 claims abstract description 39
- 238000001914 filtration Methods 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 14
- 230000003139 buffering effect Effects 0.000 claims description 13
- 238000013528 artificial neural network Methods 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 9
- 230000003993 interaction Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012549 training Methods 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种实现卷积神经网络处理的系统及方法,方法包括:通过输入缓存模块缓存输入的图像数据;通过人工智能引擎模块从所述输入缓存模块读取所述图像数据,并进行预定的卷积神经网络处理得到特征值,并将特征值发送给输出缓存模块缓存;通过输出控制模块从所述输出缓存模块读取所述特征值并输出。本发明易于扩展,通过增加人工智能引擎模块中的引擎处理核数量,提高计算力;具有高能效比,可提供高密度计算性能。
Description
技术领域
本发明涉及人工智能技术领域,具体涉及一种实现卷积神经网络处理的系统及方法。
背景技术
卷积神经网络是一种前馈神经网络,常应用于图像识别、语音识别等,其之所以被广泛应用,在于其海量数据、强大的算力和各种实现技术。
目前实现卷积神经网络的硬件平台包括有图像处理器(Graphic ProcessingUnit,GPU)、FPGA(Field Programmable Gate Array,现场可编程门阵列)和专用集成电路(ASIC,Application-Specific Integrated Circuit),但无论采用哪种硬件平台实现卷积神经网络,都面临着巨大的算力和复杂度等挑战。
发明内容
本发明的目的是针对上述现有技术的不足提出的一种实现卷积神经网络处理的系统及方法。
本发明的第一方面提出了一种实现卷积神经网络处理的系统,包括:
输入缓存模块,用于缓存输入的图像数据;
人工智能引擎模块,用于向所述输入缓存模块发送输入控制信号,以从所述输入缓存模块中读取所述图像数据;以及对读取的图像数据进行预定的卷积神经网络处理得到特征值,并向输出缓存模块发送输出缓存控制信号,以将特征值缓存至所述输出缓存模块;
所述输出缓存模块,用于缓存所述特征值,并在预定的输出控制下,输出缓存特征值;
寄存器模块,用于在所述卷积神经网络处理过程中,根据所述人工智能引擎模块发送的引擎状态信号和指令缓存模块发送的指令控制信号进行引擎核状态判定,并将状态判定结果发送给所述人工智能引擎模块;
指令缓存模块,用于根据输入数据生成所述指令控制信号。
本发明的第二方面提出了一种实现卷积神经网络处理的方法,所述方法包括:
通过输入缓存模块缓存输入的图像数据;
通过人工智能引擎模块从所述输入缓存模块读取所述图像数据,并进行预定的卷积神经网络处理得到特征值,并将特征值发送给输出缓存模块缓存;
通过输出控制模块从所述输出缓存模块读取所述特征值并输出。
基于上述第一方面和第二方面所述的实现卷积神经网络处理的系统及方法,本发明具有如下有益效果:
考虑到易扩展性和高能效比,本发明通过设计专用集成电路,其包括输入缓存模块、人工智能引擎模块、输出缓存模块、寄存器模块、以及指令缓存模块这五个大电路模块来实现卷积神经网络的处理,并且通过增加人工智能引擎模块中的引擎处理核数量,可以提高计算力,并提供高密度计算性能。
本技术方案支持目前常见网络模型的处理,比如AlexNet、VGG和ResNet等,可以适用于深度学习的训练、推理环节,可以应用于云端和终端。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明根据一示例性实施例示出的一种实现卷积神经网络处理的系统结构示意图;
图2为本发明根据一示例性实施例示出的一种输入缓存模块结构示意图;
图3为本发明根据一示例性实施例示出的人工智能引擎模块结构示意图;
图4为本发明根据一示例性实施例示出的引擎控制模块结构示意图;
图5为本发明根据一示例性实施例示出的引擎模块结构示意图;
图6为本发明根据一示例性实施例示出的滤波器缓存器结构示意图;
图7为本发明根据一示例性实施例示出的图像缓存器结构示意图;
图8为本发明根据一示例性实施例示出的输出缓存模块结构示意图;
图9为本发明根据一示例性实施例示出的一种实现卷积神经网络处理的方法的实施例流程图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
图1为本发明根据一示例性实施例示出的一种实现卷积神经网络处理的系统结构示意图,包括输入缓存模块10、人工智能(AI)引擎模块20、输出缓存模块30、寄存器模块40以及指令缓存模块50。
上述五大电路模块的处理过程为:
首先将图像数据input_data[7:0]送入输入缓存模块10进行缓存,当输入缓存模块10缓存完成后向人工智能引擎模块20发送输出就绪信号out_rdy,人工智能引擎模块20产生输入控制信号并发送给输入缓存模块10,以从输入缓存模块10读取图像数据eng_data[95:0],进而对读取的图像数据eng_data[95:0]进行预定的卷积神经网络处理得到特征值,并向输出缓存模块30发送输出缓存控制信号,以将特征值result_data[127:0]缓存至输出缓存模块30,最后输出缓存模块30在预定的输出控制下,输出缓存特征值out_data[7:0]。
其中,预定的输出控制指的是来自外部的输出控制信号output_rdy。
在人工智能引擎模块20进行卷积神经网络处理过程中,需要与寄存器模块40进行数据和指令交互,寄存器模块40又与指令缓存模块50在指令控制信号下进行数据交互。
这三大电路模块的具体交互过程为:人工智能引擎模块20产生引擎状态信号并传输至寄存器模块40,同时指令缓存模块50根据输入数据生成指令控制信号,并传输至寄存器模块40,从而寄存器模块40根据引擎状态信号和指令控制信号进行引擎核状态判定,并将状态判定结果发送给人工智能引擎模块20。
基于上述描述可知,考虑到易扩展性和高能效比,本发明通过设计包括输入缓存模块、人工智能引擎模块、输出缓存模块、寄存器模块、以及指令缓存模块这五个大电路模块的专用集成电路,来实现卷积神经网络的处理,并且通过增加人工智能引擎模块中的引擎处理核数量,可以提高计算力,并提供高密度计算性能。
下面对每个电路模块进行具体结构阐述:
针对输入缓存模块10,如图2所示,其包括写入状态机、读取状态机、读使能模块、地址发生器、缓存器、以及复用器。
输入缓存模块10包含的各个子电路模块的具体处理过程为:写入状态机接收送入的图像数据input_data[7:0]后产生写入信号;读取状态机接收到来自人工智能引擎模块的输入控制信号时,产生读取信号;读使能模块根据所述写入信号和所述读取信号产生读使能信号,以及地址发生器根据所述写入信号和所述读取信号产生读写地址;缓存器在所述读使能信号和所述读写地址控制下写入经过写入状态机处理后的图像数据;在写入完成后,复用器再将缓存器缓存的图像数据复接一起后发送到人工智能引擎模块20。
在具体实施时,通过在输入缓存模块10中设置8个缓存器,用来缓存每个像素点周围的8个像素数据,分别为buf_0_3、buf_0_2、buf_0_1、buf_0_0、buf_1_3、buf_1_2、buf_1_1和buf_1_0,从而输入缓存模块10中的读使能模块需要产生8个读使能信号分别对应传输到每个缓存器,即读使能信号03传输给buf_0_3,读使能信号02传输给buf_0_2,读使能信号01传输给buf_0_1,读使能信号00传输给buf_0_0,读使能信号13传输给buf_1_3,读使能信号12传输给buf_1_2,读使能信号11传输给buf_1_1,以及读使能信号10传输给buf_1_0。
通过将8个缓存器分为两组,第一组缓存器为buf_0_3、buf_1_3、buf_0_2和buf_1_2,第二组缓存器为buf_0_1、buf_1_1、buf_0_0和buf_1_0,从而输入缓存模块10中的地址发生器需要产生2个读写地址分别对应传输到每组缓存器,即读写地址A0传输到第二组缓存器,读写地址A1传输到第一组缓存器。
对于输入缓存模块10中的写入状态机输出的4组图像数据D0[23:0]、D1[23:0]、D2[23:0]、D3[23:0],其中D3[23:0]送给一对缓存器buf_0_3和buf_1_3,D2[23:0]送给一对缓存器buf_0_2和buf_1_2,D1[23:0]送给一对缓存器buf_0_1和buf_1_1,D0[23:0]送给一对缓存器buf_0_0和buf_1_0,以及复用器从每个缓存器中读取出来,分别得到每个缓存器的输出数据为O03[23:0]和O13[23:0]、O02[23:0]和O12[23:0]、O01[23:0]和O11[23:0]、O00[23:0]和O10[23:0]。
针对人工智能引擎模块20,如图3所示,其包括引擎控制模块201和多个引擎模块202。
人工智能引擎模块20包含的各个子电路模块的具体处理过程为:引擎控制模块201根据输入缓存模块10发送的输出就绪信号out_rdy产生输入控制信号,并发送至输入缓存模块10;引擎控制模块201还根据输入的图像数据eng_data[95:0]产生引擎控制信号;以及引擎控制模块201在卷积神经网络处理过程中,还会产生引擎状态信号并发送至寄存器模块40,以及在卷积神经网络处理结束时产生输出缓存控制信号并发送至输出缓存模块30;多个引擎模块在引擎控制信号的控制下,均对图像数据进行神经网络处理得到特征值,从而将特征值发送至输出缓存模块30进行缓存。
其中,多个引擎模块即为多个引擎核,图3中给出4个引擎核的示例,这4个引擎模块的结构均相同,在对图像数据进行神经网络处理过程中,这4个引擎模块构成一个桶形循环结构,即引擎模块0产生的数据送给引擎模块1;引擎模块1产生的数据送给引擎模块2;引擎模块2产生的数据送给引擎模块3;引擎模块3产生的数据又循环送给引擎模块0。
本领域技术人员可以理解的是,人工智能引擎模块20中的引擎控制模块201产生的输入控制信号、引擎状态信号、输出缓存控制信号、以及引擎控制信号中的每一类信号均属于一个信号总线,即多个信号的集合。
针对人工智能引擎模块20中的引擎控制模块201,如图4所示,其包括引擎控制状态机2011、数据输入状态机2012、以及数据交换状态机2013。
其中,在引擎控制信号包括第一引擎控制信号和第二引擎控制信号的情况下,引擎控制状态机2011用于根据所述状态判定结果生成数据输入状态信号、滤波控制输入信号、图像处理状态信号、以及缓存控制处理信号;数据输入状态机2012用于根据所述数据输入状态信号和滤波控制输入信号进行数据管控,以得到第一引擎控制信号;数据交换状态机2013用于根据所述图像处理状态信号和缓存控制处理信号进行引擎工作状态管控,以得到第二引擎控制信号、输入控制信号、引擎状态信号、输出缓存控制信号。
针对人工智能引擎模块20中的引擎模块202,如图5所示,其包括缓存器输入状态机2021、滤波器缓存器2022、图像块邻域取值模块2026、图像缓存器2024、缓存器输出复用状态机2025和处理核2023。
引擎模块202包含的各个子电路模块的具体处理过程为:缓存器输入状态机2021根据输入的引擎控制信号和图像数据eng_data[95:0]生成缓存器输入控制信号,并分别传输给滤波器缓存器2022、图像块邻域取值模块2026、图像缓存器2024、处理核2023,进而滤波器缓存器2022根据所述缓存器输入控制信号向缓存器输出复用状态机2025发送滤波数据;图像块邻域取值模块2026根据所述缓存器输入控制信号生成用于图像块邻域取值的邻域地址,并发送给图像缓存器2024;图像缓存器2024根据所述缓存器输入控制信号向缓存器输出复用状态机2025输出读取的图像数据;缓存器输出复用状态机2025根据所述滤波数据和所述图像数据生成缓存器输出复用控制信号,并发送至处理核2023;处理核2023在所述缓存器输出复用控制信号控制下进行卷积神经网络处理。
本领域技术人员可以理解的是,人工智能引擎模块20中的引擎模块202产生的缓存器输入控制信号属于一个信号总线,即多个信号的集合。
针对滤波器缓存器2022,如图6所示,其包括第一逻辑门模块和滤波核输入存储器。
滤波器缓存器2022包含的各个子电路模块的具体处理过程为:通过第一逻辑门模块对所述缓存器输入控制信号进行逻辑操作,以获得滤波核输入存储器的滤波控制信号和读写地址,从而滤波核输入存储器根据所述读写地址写入图像数据,并在所述滤波控制信号控制下,对写入的图像数据进行滤波处理后输出滤波数据flt_out[95:0]。
其中,第一逻辑门模块包括多个不同的逻辑门器件,由所述第一逻辑门模块输出的读写地址包括滤波器地址和偏移地址,由所述第一逻辑门模块输出的滤波控制信号包括多个信号的集合。
针对图像缓存器2024,如图7所示,其包括图像缓存状态机、多个缓存器、图像缓存输出状态机。
图像缓存器2024包含的各个子电路模块的具体处理过程为:图像缓存状态机根据输入的缓存器输入控制信号,产生控制信号和读写地址,从而多个缓存器在所述控制信号和所述读写地址控制下写入图像数据,图像缓存输出状态机从每个缓存器读取图像数据并进行复接后输出。
在具体实施时,由于在输入缓存模块10中设置有8个缓存器,用来缓存每个像素点周围8个像素点的数据,因此在引擎模块202中的图像缓存器2024也相应包含用于缓存周围8个像素点数据的8个缓存器和用于缓存中心像素点数据的缓存器,总共9个缓存器。
如图7所示,缓存器14×14用于缓存中心像素点数据,上缓存器buf_up用于缓存中心像素点的正上方像素点数据,上左缓存器buf_up_left用于缓存中心像素点的左上方像素点数据,上右缓存器buf_up_right用于缓存中心像素点的右上方像素点数据,下缓存器buf_low用于缓存中心像素点的正下方像素点数据,下左缓存器buf_low_left用于缓存中心像素点的左下方像素点数据,下右缓存器buf_low_right用于缓存中心像素点的右下方像素点数据,左缓存器buf_left用于缓存中心像素点的正左方像素点数据,右缓存器buf_right用于缓存中心像素点的正右方像素点数据。
针对输出缓存模块30,如图8所示,其包括输出写入状态机、输出读取状态机、第二逻辑门模块、地址发生器、多个输出缓存器、以及输出复用器。
输出缓存模块30包含的各个子电路模块的具体处理过程为:输出写入状态机在所述输出缓存控制信号控制下,生成写入控制信号,以及输出读取状态机在所述输出缓存控制信号控制下,生成读取控制信号,第二逻辑门模块将所述写入控制信号转化为写使能信号,以及将所述读取控制信号转化为读使能信号,从而地址发生器根据所述写入控制信号和所述读取控制信号产生地址信号,进而多个输出缓存器在所述写使能信号、所述读使能信号和所述地址信号的控制下,缓存所述特征值,最后输出复用器从每个输出缓存器读取特征值并复接到一起输出缓存特征值。
其中,第二逻辑门模块包括多个不同的逻辑门器件,其输出的读使能信号个数与输出缓存器的个数相同。
在具体实施时,如图8所示,输出缓存模块30设置有32个输出缓存器,分为两组,各表示为Obuf_0x和Obuf_1x,每个缓存器有一个读使能信号,因此,产生读使能信号共32个,分别连接到相应的输出缓存器。第二逻辑门模块输出两个写使能信号,其中一个作为一组输出缓存器Obuf_00、Obuf_01、….、Obuf_015的写使能信号;另一个作为另一组输出缓存器Obuf_10、Obuf_11、….、Obuf_115的写使能信号。同样原理,地址发生器输出两个地址信号Oddr0和Oddr1,地址信号Oddr0连接到一组输出缓存器Obuf_00、Obuf_01、….、Obuf_015,而地址信号Oddr1连接到另一组缓存器Obuf_10、Obuf_11、….、Obuf_115。
至此,完成五大电路模块的具体介绍。
基于上述实现卷积神经网络处理的系统结构,本发明还提出一种实现卷积神经网络处理的方法,如图9所示,所述方法包括如下处理步骤:
步骤901:通过输入缓存模块缓存输入的图像数据。
步骤902:通过人工智能引擎模块从所述输入缓存模块读取所述图像数据,并进行预定的卷积神经网络处理得到特征值,并将特征值发送给输出缓存模块缓存。
需要说明的是,在卷积神经网络处理过程中,通过所述人工智能引擎模块向寄存器模块发送引擎状态信号;通过指令缓存模块根据输入的图像数据向寄存器模块发送指令控制信号;所述寄存器模块根据所述引擎状态信号和指令控制信号进行引擎核状态判定,并将状态判定结果发送给所述人工智能引擎模块,以由人工智能引擎模块根据状态判定结果进行卷积神经网络处理。
步骤903:通过输出控制模块从所述输出缓存模块读取所述特征值并输出。
针对上述步骤901至步骤903的过程,每个步骤的具体实现可以参考上述系统实施例中的相关描述,本申请在此不再一一赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
1.一种实现卷积神经网络处理的系统,其特征在于,包括:
输入缓存模块,用于缓存输入的图像数据;
人工智能引擎模块,用于向所述输入缓存模块发送输入控制信号,以从所述输入缓存模块中读取所述图像数据;以及对读取的图像数据进行预定的卷积神经网络处理得到特征值,并向输出缓存模块发送输出缓存控制信号,以将特征值缓存至所述输出缓存模块;
所述输出缓存模块,用于缓存所述特征值,并在预定的输出控制下,输出缓存特征值;
寄存器模块,用于在所述卷积神经网络处理过程中,根据所述人工智能引擎模块发送的引擎状态信号和指令缓存模块发送的指令控制信号进行引擎核状态判定,并将状态判定结果发送给所述人工智能引擎模块;
指令缓存模块,用于根据输入数据生成所述指令控制信号。
2.根据权利要求1所述的系统,其特征在于,所述输入缓存模块包括:
写入状态机,用于接收所述图像数据,并产生写入信号;
读取状态机,用于在接收到所述输入控制信号时,产生读取信号;
读使能模块,用于根据所述写入信号和所述读取信号产生读使能信号;
地址发生器,用于根据所述写入信号和所述读取信号产生读写地址;
缓存器,用于在所述读使能信号和所述读写地址控制下,写入所述图像数据;
复用器,用于将所述缓存器中缓存的图像数据复接一起后发送到所述人工智能引擎模块中。
3.根据权利要求1所述的系统,其特征在于,所述人工智能引擎模块包括:
引擎控制模块,用于产生所述输入控制信号并发送至所述输入缓存模块;以及根据读取的图像数据产生引擎控制信号;以及在所述卷积神经网络处理过程中,产生引擎状态信号并发送至寄存器模块;以及在所述卷积神经网络处理结束时产生输出缓存控制信号并发送至输出缓存模块;
多个引擎模块,用于在所述引擎控制信号的控制下,对所述图像数据进行神经网络处理得到特征值;以及将特征值发送至所述输出缓存模块。
4.根据权利要求3所述的系统,其特征在于,所述引擎控制信号包括第一引擎控制信号和第二引擎控制信号;
所述引擎控制模块包括:
引擎控制状态机,用于根据所述状态判定结果生成数据输入状态信号、滤波控制输入信号、图像处理状态信号、以及缓存控制处理信号;
数据输入状态机,用于根据所述数据输入状态信号和滤波控制输入信号进行数据管控,以得到第一引擎控制信号;
数据交换状态机,用于根据所述图像处理状态信号和缓存控制处理信号进行引擎工作状态管控,以得到第二引擎控制信号、输入控制信号、引擎状态信号、输出缓存控制信号。
5.根据权利要求3所述的系统,其特征在于,所述引擎模块包括:
缓存器输入状态机,用于根据所述引擎控制信号生成缓存器输入控制信号;
滤波器缓存器,用于根据所述缓存器输入控制信号向缓存器输出复用状态机发送滤波数据;
图像块邻域取值模块,用于根据所述缓存器输入控制信号生成用于图像块邻域取值的邻域地址,并发送给图像缓存器;
所述图像缓存器,用于根据所述缓存器输入控制信号向所述缓存器输出复用状态机输出读取的图像数据;
所述缓存器输出复用状态机,用于根据所述滤波数据和所述图像数据生成缓存器输出复用控制信号,并发送至处理核;
所述处理核,用于在所述缓存器输出复用控制信号下进行卷积神经网络处理。
6.根据权利要求4所述的系统,其特征在于,所述滤波器缓存器包括:
第一逻辑门模块,用于对所述缓存器输入控制信号进行逻辑操作,以获得滤波核输入存储器的滤波控制信号和读写地址;
滤波核输入存储器,用于根据所述读写地址写入所述图像数据,并在所述滤波控制信号控制下,对所述图像数据进行滤波处理后输出滤波数据。
7.根据权利要求4所述的系统,其特征在于,所述图像缓存器包括:
图像缓存状态机,用于根据所述缓存器输入控制信号,产生控制信号和读写地址;
多个缓存器,用于在所述控制信号和所述读写地址控制下写入图像数据,
图像缓存输出状态机,用于从每个缓存器读取图像数据并进行复接后输出。
8.根据权利要求1所述的系统,其特征在于,所述输出缓存模块包括:
输出写入状态机,用于在所述输出缓存控制信号控制下,生成写入控制信号;
输出读取状态机,用于在所述输出缓存控制信号控制下,生成读取控制信号;
第二逻辑门模块,用于将所述写入控制信号转化为写使能信号,以及将所述读取控制信号转化为读使能信号;
地址发生器,用于根据所述写入控制信号和所述读取控制信号产生地址信号;
多个输出缓存器,用于在所述写使能信号、所述读使能信号和所述地址信号的控制下,缓存所述特征值;
输出复用器,用于从每个输出缓存器读取特征值并复接到一起输出缓存特征值。
9.一种实现卷积神经网络处理的方法,其特征在于,所述方法包括:
通过输入缓存模块缓存输入的图像数据;
通过人工智能引擎模块从所述输入缓存模块读取所述图像数据,并进行预定的卷积神经网络处理得到特征值,并将特征值发送给输出缓存模块缓存;
通过输出控制模块从所述输出缓存模块读取所述特征值并输出。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
在卷积神经网络处理过程中,通过所述人工智能引擎模块向寄存器模块发送引擎状态信号;
通过指令缓存模块根据输入的图像数据向寄存器模块发送指令控制信号;
所述寄存器模块根据所述引擎状态信号和指令控制信号进行引擎核状态判定,并将状态判定结果发送给所述人工智能引擎模块,以由人工智能引擎模块根据状态判定结果进行卷积神经网络处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110571569.3A CN113379047B (zh) | 2021-05-25 | 2021-05-25 | 一种实现卷积神经网络处理的系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110571569.3A CN113379047B (zh) | 2021-05-25 | 2021-05-25 | 一种实现卷积神经网络处理的系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113379047A true CN113379047A (zh) | 2021-09-10 |
CN113379047B CN113379047B (zh) | 2024-04-05 |
Family
ID=77571846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110571569.3A Active CN113379047B (zh) | 2021-05-25 | 2021-05-25 | 一种实现卷积神经网络处理的系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113379047B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101667451A (zh) * | 2009-09-11 | 2010-03-10 | 西安电子科技大学 | 高速数据交换接口的数据缓存器及其数据缓存控制方法 |
US20140279776A1 (en) * | 2013-03-15 | 2014-09-18 | Micron Technology, Inc. | Methods and apparatuses for providing data received by a state machine engine |
CN107609644A (zh) * | 2011-12-15 | 2018-01-19 | 美光科技公司 | 用于状态机中的数据分析的方法及系统 |
CN109284817A (zh) * | 2018-08-31 | 2019-01-29 | 中国科学院上海高等研究院 | 深度可分离卷积神经网络处理架构/方法/系统及介质 |
WO2019127838A1 (zh) * | 2017-12-29 | 2019-07-04 | 国民技术股份有限公司 | 卷积神经网络实现方法及装置、终端、存储介质 |
CN110555520A (zh) * | 2018-05-30 | 2019-12-10 | 北京三星通信技术研究有限公司 | 执行卷积操作的方法、相应的处理装置及电子设备 |
CN110738316A (zh) * | 2018-07-20 | 2020-01-31 | 北京三星通信技术研究有限公司 | 基于神经网络的操作方法、装置及电子设备 |
CN111178519A (zh) * | 2019-12-27 | 2020-05-19 | 华中科技大学 | 卷积神经网络加速引擎、卷积神经网络加速系统及方法 |
CN111465943A (zh) * | 2017-12-12 | 2020-07-28 | 亚马逊技术股份有限公司 | 芯片上计算网络 |
CN112381220A (zh) * | 2020-12-08 | 2021-02-19 | 厦门壹普智慧科技有限公司 | 一种神经网络张量处理器 |
CA3091273A1 (en) * | 2019-08-29 | 2021-02-28 | The Boeing Company | Systems and methods for training a neural network to control an aircraft |
-
2021
- 2021-05-25 CN CN202110571569.3A patent/CN113379047B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101667451A (zh) * | 2009-09-11 | 2010-03-10 | 西安电子科技大学 | 高速数据交换接口的数据缓存器及其数据缓存控制方法 |
CN107609644A (zh) * | 2011-12-15 | 2018-01-19 | 美光科技公司 | 用于状态机中的数据分析的方法及系统 |
US20140279776A1 (en) * | 2013-03-15 | 2014-09-18 | Micron Technology, Inc. | Methods and apparatuses for providing data received by a state machine engine |
CN111465943A (zh) * | 2017-12-12 | 2020-07-28 | 亚马逊技术股份有限公司 | 芯片上计算网络 |
WO2019127838A1 (zh) * | 2017-12-29 | 2019-07-04 | 国民技术股份有限公司 | 卷积神经网络实现方法及装置、终端、存储介质 |
CN110555520A (zh) * | 2018-05-30 | 2019-12-10 | 北京三星通信技术研究有限公司 | 执行卷积操作的方法、相应的处理装置及电子设备 |
CN110738316A (zh) * | 2018-07-20 | 2020-01-31 | 北京三星通信技术研究有限公司 | 基于神经网络的操作方法、装置及电子设备 |
CN109284817A (zh) * | 2018-08-31 | 2019-01-29 | 中国科学院上海高等研究院 | 深度可分离卷积神经网络处理架构/方法/系统及介质 |
CA3091273A1 (en) * | 2019-08-29 | 2021-02-28 | The Boeing Company | Systems and methods for training a neural network to control an aircraft |
CN111178519A (zh) * | 2019-12-27 | 2020-05-19 | 华中科技大学 | 卷积神经网络加速引擎、卷积神经网络加速系统及方法 |
CN112381220A (zh) * | 2020-12-08 | 2021-02-19 | 厦门壹普智慧科技有限公司 | 一种神经网络张量处理器 |
Non-Patent Citations (2)
Title |
---|
佟凤辉, 樊晓桠, 王党辉, 辛明瑞: "基于SIMD技术的图像卷积处理器体系结构研究", 微电子学与计算机, no. 03, 25 March 2003 (2003-03-25) * |
杨一晨;梁峰;张国和;何平;吴斌;高震霆;: "一种基于可编程逻辑器件的卷积神经网络协处理器设计", 西安交通大学学报, no. 07, 10 July 2018 (2018-07-10) * |
Also Published As
Publication number | Publication date |
---|---|
CN113379047B (zh) | 2024-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107689948B (zh) | 应用于神经网络硬件加速系统的高效数据访存管理装置 | |
CN109284817B (zh) | 深度可分离卷积神经网络处理架构/方法/系统及介质 | |
CN106294234B (zh) | 一种数据传输方法及装置 | |
CN111488983B (zh) | 一种基于fpga的轻量级cnn模型计算加速器 | |
CN108416327B (zh) | 一种目标检测方法、装置、计算机设备及可读存储介质 | |
CN111626403B (zh) | 一种基于cpu-fpga内存共享的卷积神经网络加速器 | |
WO2017173755A1 (zh) | 片上数据划分读写方法、系统及其装置 | |
WO2020163608A1 (en) | Split network acceleration architecture | |
US20180089113A1 (en) | System and method for individual addressing | |
Tu et al. | A power efficient neural network implementation on heterogeneous FPGA and GPU devices | |
EP3844610B1 (en) | Method and system for performing parallel computation | |
CN103714044A (zh) | 一种基于片上网络的高效率矩阵转置簇以及转置方法 | |
CN109741774A (zh) | 一种基于fpga片上ram模拟实现ddr3突发的控制器以及方法 | |
KR20200040165A (ko) | 분산처리용 인공신경망 연산 가속화 장치, 이를 이용한 인공신경망 가속화 시스템, 및 그 인공신경망의 가속화 방법 | |
CN114564434B (zh) | 一种通用多核类脑处理器、加速卡及计算机设备 | |
CN111860773A (zh) | 处理装置和用于信息处理的方法 | |
CN113379047B (zh) | 一种实现卷积神经网络处理的系统及方法 | |
CN111160540A (zh) | 一种神经网络参数的存储方法及装置 | |
CN109190755B (zh) | 面向神经网络的矩阵转换装置及方法 | |
CN111445019B (zh) | 一种分组卷积中通道混洗操作的实现装置及方法 | |
US11782622B2 (en) | Memory apparatus embedded with computing function and operation method thereof | |
CN101488119B (zh) | 地址译码方法、装置及单板 | |
CN112905954A (zh) | 一种利用fpga bram的cnn模型卷积运算加速计算方法 | |
CN113673691A (zh) | 基于存算结合的多通道卷积fpga架构及其工作方法 | |
CN112712167A (zh) | 支持多种卷积神经网络加速的存储器访问方法及系统 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |