CN109564638A - 人工智能处理器、及其所应用的处理方法 - Google Patents
人工智能处理器、及其所应用的处理方法 Download PDFInfo
- Publication number
- CN109564638A CN109564638A CN201880002767.4A CN201880002767A CN109564638A CN 109564638 A CN109564638 A CN 109564638A CN 201880002767 A CN201880002767 A CN 201880002767A CN 109564638 A CN109564638 A CN 109564638A
- Authority
- CN
- China
- Prior art keywords
- convolution
- data
- artificial intelligence
- memory
- process device
- 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
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
-
- 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)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Logic Circuits (AREA)
- Stored Programmes (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种人工智能处理器、及其所应用的处理方法,所述人工智能处理器(100)包括:可编程逻辑电路,其包括:卷积处理模块(103)、通信连接至外部存储器(102),其中,所述外部存储器(102)存储有第一待处理数据及第一权重参数;所述卷积处理模块(103)包括:第一参数缓存(201)、第一输入缓存、卷积运算电路(203)及第一输出缓存;所述人工智能处理器能过硬件逻辑电路实现卷积神经网络算法,解决现有技术的问题。
Description
技术领域
本发明涉及集成电路技术领域,特别是涉及人工智能处理器、及其所应用的处理方法。
背景技术
人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。
人工智能算法是模拟人脑的神经网络模型算法,其运算量非常巨大,同样采用了人工智能算法的AlphaGo,需要用到上千块传统处理器(CPU)和上百块图形处理器(GPU);很显然,在人工智能迎来新一波复兴的今天,传统处理器正成为阻碍人工智能普及的瓶颈。
因此,如何设计一款专门为神经网络设计的芯片,既高效、低耗、体积小,还能够嵌入智能终端设备,已成为业界亟待解决的技术问题。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供人工智能处理器、及其所应用的处理方法,解决现有技术中的问题。
为实现上述目的及其他相关目的,本发明提供一种人工智能处理器,包括:可编程逻辑电路,其包括:卷积处理模块,通信连接至外部存储器,其中,所述外部存储器存储有第一待处理数据及第一权重参数;所述卷积处理模块包括:第一参数缓存、第一输入缓存、卷积运算电路及第一输出缓存;所述第一参数缓存,用于读取并输出所述第一权重参数;所述第一输入缓存,其包括:多个相连的行缓存,用于读取并输出所述第一待处理数据;其中,各所述行缓存每输出一位数据则集合形成一列数据输出;所述卷积运算电路,用于从第一输入缓存读取所述第一待处理数据、以及从第一参数缓存读取第一权重参数,据以进行卷积运算并输出卷积运算结果;所述第一输出缓存,用于接收所述卷积运算结果,并将该卷积运算结果向所述外部存储器输出。
于本发明的一实施例中,所述第一输入缓存和/或第一参数缓存包括:多个相连的行缓存,用于读取并输出所述第一待处理数据和/或第一权重参数;其中,各所述行缓存每输出一位数据则集合形成一列数据输出。
于本发明的一实施例中,卷积处理模块还包括:池化运算电路,用于对所述卷积运算结果进行池化后向外部存储器输出。
于本发明的一实施例中,所述可编程逻辑部分还包括:全连接运算电路,用于根据所述卷积运算结果进行分类并输出。
于本发明的一实施例中,所述的人工智能处理器,包括:第一DMA,通信连接在所述外部数据存储器与卷积处理模块之间。
于本发明的一实施例中,所述卷积处理模块所包括的各内部部件之间、以及卷积处理模块与外部存储器之间通过先入先出数据接口连接。
于本发明的一实施例中,所述的人工智能处理器,还包括:处理系统电路,其包括:中央处理模块,用于配置所述可编程逻辑电路中卷积处理模块的运行参数。
于本发明的一实施例中,所述第一待处理数据包含多个通道数据;所述第一权重参数包含多层子参数,每层子参数分别一一对应各个通道数据;所述卷积运算电路有多个,用于一一对应地并行计算各个通道数据的卷积运算结果。
于本发明的一实施例中,所述可编程逻辑电路还包括:反卷积处理模块,通信连接至外部存储器,其中,所述外部存储器存储有第二待处理数据及第二权重参数;所述反卷积处理模块包括:第二参数缓存、第二输入缓存、反卷积运算电路及第二输出缓存;所述第二参数缓存,用于读取并输出所述第二权重参数;所述第二输入缓存,其包括:多个相连的行缓存,用于读取并输出所述第二待处理数据;其中,各所述行缓存每输出一位数据则集合形成一列数据输出;所述反卷积运算电路,用于从第二输入缓存读取所述第二待处理数据、以及从第二参数缓据以进行反卷积运算并输出反卷积运算结果;所述第二输出缓存,用于接收所述反卷积运算结果,并输出该反卷积运算结果至所述外部存储器。
于本发明的一实施例中,所述的人工智能处理器,包括:共享缓存,作为所述第一输入缓存及第二输入缓存,供卷积运算电路及反卷积运算电路分时复用地传输接受自外部存储器的数据。
于本发明的一实施例中,所述的人工智能处理器,包括:第二DMA,通信连接在所述外部数据存储器与反卷积处理模块之间。
于本发明的一实施例中,所述反卷积处理模块所包括的各内部部件之间、以及反卷积处理模块与外部存储器之间通过先入先出数据接口连接。
于本发明的一实施例中,所述的人工智能处理器,还包括:处理系统电路,其包括:中央处理模块,用于配置所述可编程逻辑电路中卷积处理模块及反卷积处理模块的运行参数。
于本发明的一实施例中,所述的人工智能处理器,所述第二待处理数据的类型包括所述卷积运算结果。
于本发明的一实施例中,所述先入先出数据接口包括:先入先出存储器,包括:上行的可写使能管脚、数据输入管脚、及存储器满状态标识管脚;以及,下行的可读使能管脚、数据输出管脚、及存储器空状态标识管脚;第一逻辑单元,连接上行对象、所述可写使能管脚、及存储器满状态标识管脚,用于在接收到上行对象的写请求时,根据存储器满状态标识管脚上的信号确定所述先入先出存储器是否已满;若未满,则发送使能信号至可写使能管脚来令先入先出存储器可写;否则,令所述先入先出存储器不可写;第二逻辑单元,连接下行对象、所述可读使能管脚、及存储器空状态标识管脚,用于在接收到下行对象的读请求时,根据存储器空状态标识管脚上的信号确定所述先入先出存储器是否已空;若未空,则发送使能信号至可读使能管脚来令先入先出存储器可读;否则,令所述先入先出存储器不可读。
于本发明的一实施例中,所述第一逻辑单元包括:第一反向器,其输入端连接所述存储器满状态标识管脚,其输出端引出供连接上行对象的第一标识端;第一与门,其第一输入端连接所述第一数据有效标识端,其第二输入端连接于供连接上行对象的上行数据有效端,其输出端连接所述可写使能管脚;所述第二逻辑单元包括:第二反向器,其输入端连接所述存储器空状态标识管脚,其输出端引出供连接下行对象的下行数据有效端;第二与门,其第一输入端连接所述下行数据有效端,其第二输入端连接于供连接下行对象的下行数据有效标识端。
于本发明的一实施例中,所述中央处理器的类型包括:MCU、SoC、FPGA或DSP。
为实现上述目的及其他相关目的,本发明提供一种人工智能处理方法,应用于所述的人工智能处理器;所述方法包括:从外部存储器读取第一待处理数据及第一权重参数;根据所述第一待处理数据及第一权重参数进行卷积运算并输出卷积运算结果;将该卷积运算结果向所述外部存储器输出。
为实现上述目的及其他相关目的,本发明提供一种人工智能处理方法,应用于所述的人工智能处理器,所述方法包括:从外部存储器读取第二待处理数据及第二权重参数;根据所述第二待处理数据及第二权重参数进行反卷积运算并输出反卷积运算结果;将该反卷积运算结果向所述外部存储器输出。
于本发明的一实施例中,所述第二待处理数据的类型包括所述卷积运算结果。
如上所述,本发明提供人工智能处理器、及其所应用的处理方法,所述人工智能处理器包括:可编程逻辑电路,其包括:卷积处理模块、通信连接至外部存储器,其中,所述外部存储器存储有第一待处理数据及第一权重参数;所述卷积处理模块包括:第一参数缓存、第一输入缓存、卷积运算电路及第一输出缓存;所述人工智能处理器能过硬件逻辑电路实现卷积神经网络算法,解决现有技术的问题。
附图说明
图1显示为本发明一实施例中的人工智能处理器的结构示意图。
图2显示为本发明一实施例中的卷积处理模块的结构示意图。
图3显示为图1实施例中的人工智能处理器的处理方法的流程示意图。
图4显示为本发明又一实施例中的人工智能处理器的结构示意图。
图5显示为本发明一实施例中的卷积运算电路和反卷积运算电路使用共享缓存的结构示意图。
图6显示为本发明一实施例中的FIFO接口的结构示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
本发明涉及人工智能技术,具体是通过设计专用于人工智能处理的专用处理器,来解决现有技术中利用现有处理器芯片架构进行人工智能算法效率低下的问题;本发明的人工智能处理器,可以用于卷积神经网络算法的运算实现。
如图1所示,展示本发明一实施例中人工智能处理器100的结构示意图。
所述人工智能处理器100,包括:可编程逻辑电路(PL)及处理系统电路(PS)。所述处理系统电路包括中央处理器101,其可通过MCU、SoC、FPGA或DSP等实现,例如ARM架构的嵌入式处理器芯片等;所述中央处理器101与外部存储器102通信连接,所述外部存储器102例如为RAM或ROM存储器,例如三代、四代DDR SDRAM等;所述中央处理器101可对外部存储器102读写数据。
所述可编程逻辑电路(PL)也与所述外部存储器102通信连接,优选的,所述可编程逻辑电路(PL)可以包括DMA电路(Direct Memory Access),从而直接快速访问外部存储器102。
所述可编程逻辑电路可以通过对FPGA编程实现其中的各种功能电路模块。
具体的,所述可编程逻辑电路(PL)包括:卷积处理模块103;所述卷积处理模块103可以实现卷积运算。所述外部存储器102中可以存储用于供卷积处理模块103处理的第一待处理数据及权重参数(如卷积运算使用的filter,其中包含了Weight矩阵),所述卷积处理模块103可以根据第一待处理数据和第一权重参数来进行卷积运算,并输出卷积结果至所述外部存储器102,根据卷积神经网络算法所需实现的卷积层数量,外部存储器102中的卷积运算结果可以反复被输入以进行卷积运算。
所述中央处理器101通信连接该卷积处理模块103,可以用于对其设定参数,例如卷积核filter的数量,filter的高、宽K、输入通道数、输出通道数、及步长等;所述中央处理器101还能为卷积处理模块103提供时钟信号。
如图2所示,展示一实施例中图1实施例中的卷积处理模块103的具体结构示意图,本实施例中,卷积处理模块200包括:第一参数缓存201、第一输入缓存202、卷积运算电路203及第一输出缓存204。
所述第一参数缓存201,用于读取并输出所述第一权重参数。于本发明的一实施例中,所述第一待处理数据例如为图像数据,由于每个位置像素包括R、G、B三个像素值,因此,一幅图像可通过三个通道数据(Chnannel)表示,则所述第一权重参数所包含的filter的深度也需为3层。
所述第一输入缓存202,用于读取并输出所述第一待处理数据。于本发明的一实施例中,所述第一输入缓存202可以包括:多个相连的行缓存(Line FiFO),用于读取并输出所述第一待处理数据和/或第一权重参数;其中,各所述行缓存每输出一位数据则集合形成一列数据输出,多列输出即可构成矩阵;可选的,在多个Channel的情况下,fiter的层数也有多个,所述第一参数缓存201也可以采用多个行缓存的方式来存储并输出第一权重参数。
所述卷积运算电路203,用于从第一输入缓存202读取所述第一待处理数据、以及从第一参数缓存201读取第一权重参数,据以进行卷积运算并输出卷积运算结果。具体的,卷积运算所包括的运算方式有乘法及加法,所述卷积运算电路203可以乘法器和加法器相连组成的电路。
所述第一输出缓存204,用于接收所述卷积运算结果,并将该卷积运算结果向所述外部存储器204输出。优选的,所述第一输出缓存204包括至少两个缓存(例如FIFO),在一个时钟周期内,其中第一个缓存用于写入卷积运算结果,第二个缓存用于向外部存储器204输出;在下一个时钟周期内,第一个缓存和第二个缓存角色互换,第一个缓存用于向外部存储器204输出,第二个缓存用于写入卷积运算结果。
于本发明的一实施例中,卷积处理模块103还可包括:池化运算电路,用于对所述卷积运算结果进行池化后向外部存储器204输出;具体的,池化方式可以是Max pooling,也可以是Average pooling,都可以通过逻辑电路实现。
于本发明的一实施例中,所述可编程逻辑部分还可包括:全连接运算电路,用于根据所述卷积运算结果进行分类并输出。
于本发明的一实施例中,由于所述第一待处理数据可能包含多个通道数据;所述第一权重参数包含多层子参数,每层子参数分别一一对应各个通道数据;所述卷积运算电路203有多个,用于一一对应地并行计算各个通道数据的卷积运算结果。
举例来讲,图像有R、G、B三个通道数据,即三个二维矩阵,假设第一权重参数即filter的深度为3,即具有三层子权重参数,即三个二维矩阵,每个长宽设为K*K,假设K是奇数3,分别与三个Chanel卷积运算,当从第一待处理数据取出Pv*k*3的一个数据立方体(Pv>K),假设Pv是5,则该filter要与该数据立方体通过卷积运算电路203三次才能运算完毕,而优选的,卷积运算电路203可以设有对应数量的3个,从而可以在一个时钟周期内并行进行各自所负责Channel的卷积运算。
如图3所示,展示图1实施例中人工智能处理器100的处理流程:
步骤S1:人工智能处理器100从外部存储器102获得第一待处理数据和第一权重参数;
步骤S2:卷积处理模块103根据输入的第一待处理数据和第一权重参数进行卷积运算;
步骤S3:输出卷积运算结果至外部存储器102。
如果要实现一卷积神经网络中有多个卷积层、池化层的情况,则可以反复进行上述S1~S3处理过程,反复读取外部存储器102中的卷积运算结果再输入卷积处理模块103进行运算处理,然后再输出回外部存储器102中;需说明的是,所述中央处理器可以通过时钟信号来控制每一次的处理过程,且每一次需进行该处理过程时,中央处理器都可以为卷积处理模块103设置对应不同卷积层、池化层要求的运行参数。
举例来说,如果在一卷积神经网络模型中,是“卷积层-池化层-卷积层-池化层-全连接层”,在具体实现上,在人工智能处理器100进行第一次处理时,从外部存储器102获取待处理数据和一个第一权重参数,卷积处理模块103中的卷积运算电路对第一待处理数据卷积运算,并输出至池化运算电路,池化运算电路运算完之后得到第一运算结果数据,第一运算结果数据供输出至外部存储器102;在人工智能处理器100进行第二次处理时,从外部处理器获得第一运算结果数据,并获得下一个第一权重参数,进而进行第二次的卷积运算及池化运算,得到第二运算结果数据,并经全连接运算电路进行运算得到最终结果,当然,在一些卷积神经网络模型中,全连接层可以通过卷积层替代,则该全连接运算电路并非必须。
如图4所示,于本实施例中,人工智能处理器400的可编程逻辑电路除了包括卷积处理模块403以外,还包括:反卷积处理模块404,通信连接至外部存储器402,其中,所述外部存储器402存储有第二待处理数据及第二权重参数;所述反卷积处理模块404包括:第二参数缓存、第二输入缓存、反卷积运算电路及第二输出缓存;所述第二参数缓存,用于读取并输出所述第二权重参数;所述第二输入缓存,其包括:多个相连的行缓存,用于读取并输出所述第二待处理数据;其中,各所述行缓存每输出一位数据则集合形成一列数据输出;所述反卷积运算电路,用于从第二输入缓存读取所述第二待处理数据、以及从第二参数缓据以进行反卷积运算并输出反卷积运算结果;所述第二输出缓存,用于接收所述反卷积运算结果,并输出该反卷积运算结果至所述外部存储器402。
所述反卷积处理模块404的实现方式与所述卷积处理模块403相似,都是通过缓存及逻辑运算电路来实现,其各种连接方式,例如通过DMA与外部存储器402连接,或者处理过程也是从外部存储器402获得第二待处理数据和第二权重参数,反卷积运算处理后输出回该外部存储器402;所述中央处理器401也可以对反卷积处理模块404设置运行参数,以满足不同的反卷积层运算的要求。
前述其它适用于卷积处理模块403的一些设计也可以应用于该反卷积处理模块404的实施例中,本领域技术人员应当可以毫无疑义地辨别,故申请人不对该些实施方式作展开赘述。
需特别说明的是,于图4所示的实施例中,卷积处理模块403也可以和反卷积处理模块404协作使用,例如在进行图像语义分割的卷积神经网络模型中,可以是先对原始图像进行多个卷积层的运算来得到运算结果,然后再对卷积运算结果进行相应的多个反卷积运算得到原始图像大小的特征图像,而在本发明的实施例中,参考前述可以推知,可以通过先后利用卷积处理模块403和反卷积处理模块404来实现。
可选的,如图5所示,所述的人工智能处理器,包括:共享缓存501,作为所述第一输入缓存及第二输入缓存,供卷积运算电路502及反卷积运算电路503分时复用地传输接受自外部存储器的数据;由于片上内存资源较少,且卷积处理模块及反卷积处理模块并不会同时使用,因此可以采用两者的共享缓存的方式,由卷积处理模块和反卷积处理模块分时使用,能减少一半的输入缓存。
可选的,在图1~图5的实施例中,所述卷积处理模块和/或反卷积处理模块所包括的各内部部件之间、以及卷积处理模块和/或反卷积处理模块与外部存储器之间通过先入先出数据接口连接。
于本发明的一实施例中,所述的人工智能处理器,所述第二待处理数据的类型包括所述卷积运算结果。
如图6所示,展示一实施例中该先入先出数据接口的结构,所述先入先出数据接口包括:先入先出存储器(FIFO),包括:上行的可写使能管脚(write)、数据输入管脚(data_in)、及存储器满状态标识管脚(full);以及,下行的可读使能管脚(read)、数据输出管脚(data_out)、及存储器空状态标识管脚(empty);第一逻辑单元601,连接上行对象、所述可写使能管脚、及存储器满状态标识管脚,用于在接收到上行对象的写请求时,根据存储器满状态标识管脚上的信号确定所述先入先出存储器是否已满;若未满,则发送使能信号至可写使能管脚来令先入先出存储器可写;否则,令所述先入先出存储器不可写;第二逻辑单元602,连接下行对象、所述可读使能管脚、及存储器空状态标识管脚,用于在接收到下行对象的读请求时,根据存储器空状态标识管脚上的信号确定所述先入先出存储器是否已空;若未空,则发送使能信号至可读使能管脚来令先入先出存储器可读;否则,令所述先入先出存储器不可读。
于图6所示的实施例中,所述第一逻辑单元601包括:第一反向器603,其输入端连接所述存储器满状态标识管脚,其输出端引出供连接上行对象的第一标识端;第一与门604,其第一输入端连接所述第一数据有效标识端,其第二输入端连接于供连接上行对象的上行数据有效端,其输出端连接所述可写使能管脚;所述第二逻辑单元602包括:第二反向器605,其输入端连接所述存储器空状态标识管脚,其输出端引出供连接下行对象的下行数据有效端;第二与门606,其第一输入端连接所述下行数据有效端,其第二输入端连接于供连接下行对象的下行数据有效标识端。
在本实施例中,所述可写使能管脚(write)置“1”时FIFO可写,置“0”时FIFO不可写;存储器满状态标识管脚(full)在FIFO写满时置“1”;可读使能管脚(read)置“1”时FIFO可读,置“0”时FIFO不可读;存储器空状态标识管脚(empty)在FIFO空时置“1”。
如图所示,当存储器满状态标识管脚(full)在FIFO写满时置“1”,经第一反向器603输出“0”至第一与门604的一输入端,从而令第一与门604输出为“0”,FIFO不可写;当存储器空状态标识管脚(empty)在FIFO空时置“1”,经第二反向器605输出“0”至第二与门606的一输入端,从而令第二与门606输出为“0”,FIFO不可读。
当然,在其它实施例中,各管脚表示状态的数字电压值也可以加以替换,例如置“0”时使能等,并非以上述实施例为限;另外,所述第一逻辑单元601和第二逻辑单元602也可以采用其它的逻辑运算器件,并非以图6为限。
本发明的人工智能处理器中各部件通过该先入先出数据接口的连接,可以控制实现数据处理的流水线过程。
综上所述,本发明提供人工智能处理器、及其所应用的处理方法,所述人工智能处理器包括:可编程逻辑电路,其包括:卷积处理模块、通信连接至外部存储器,其中,所述外部存储器存储有第一待处理数据及第一权重参数;所述卷积处理模块包括:第一参数缓存、第一输入缓存、卷积运算电路及第一输出缓存;所述人工智能处理器能过硬件逻辑电路实现卷积神经网络算法,解决现有技术的问题。
本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (20)
1.一种人工智能处理器,其特征在于,包括:
可编程逻辑电路,其包括:
卷积处理模块,通信连接至外部存储器,其中,所述外部存储器存储有第一待处理数据及第一权重参数;所述卷积处理模块包括:第一参数缓存、第一输入缓存、卷积运算电路及第一输出缓存;
所述第一参数缓存,用于读取并输出所述第一权重参数;
所述第一输入缓存,用于读取并输出所述第一待处理数据;
所述卷积运算电路,用于从第一输入缓存读取所述第一待处理数据、以及从第一参数缓存读取第一权重参数,据以进行卷积运算并输出卷积运算结果;
所述第一输出缓存,用于接收所述卷积运算结果,并将该卷积运算结果向所述外部存储器输出。
2.根据权利要求1所述的人工智能处理器,其特征在于,所述第一输入缓存和/或第一参数缓存包括:多个相连的行缓存,用于读取并输出所述第一待处理数据和/或第一权重参数;其中,各所述行缓存每输出一位数据则集合形成一列数据输出。
3.根据权利要求1所述的人工智能处理器,其特征在于,卷积处理模块还包括:池化运算电路,用于对所述卷积运算结果进行池化后向外部存储器输出。
4.根据权利要求1所述的人工智能处理器,其特征在于,所述可编程逻辑部分还包括:全连接运算电路,用于根据所述卷积运算结果进行分类并输出。
5.根据权利要求1所述的人工智能处理器,其特征在于,包括:第一DMA,通信连接在所述外部数据存储器与卷积处理模块之间。
6.根据权利要求1所述的人工智能处理器,其特征在于,所述卷积处理模块所包括的各内部部件之间、以及卷积处理模块与外部存储器之间通过先入先出数据接口连接。
7.根据权利要求1所述的人工智能处理器,其特征在于,还包括:处理系统电路,其包括:中央处理模块,用于配置所述可编程逻辑电路中卷积处理模块的运行参数。
8.根据权利要求1所述的人工智能处理器,其特征在于,所述第一待处理数据包含多个通道数据;所述第一权重参数包含多层子参数,每层子参数分别一一对应各个通道数据;
所述卷积运算电路有多个,用于一一对应地并行计算各个通道数据的卷积运算结果。
9.根据权利要求1所述的人工智能处理器,其特征在于,所述可编程逻辑电路还包括:
反卷积处理模块,通信连接至外部存储器,其中,所述外部存储器存储有第二待处理数据及第二权重参数;所述反卷积处理模块包括:第二参数缓存、第二输入缓存、反卷积运算电路及第二输出缓存;
所述第二参数缓存,用于读取并输出所述第二权重参数;
所述第二输入缓存,其包括:多个相连的行缓存,用于读取并输出所述第二待处理数据;其中,各所述行缓存每输出一位数据则集合形成一列数据输出;
所述反卷积运算电路,用于从第二输入缓存读取所述第二待处理数据、以及从第二参数缓据以进行反卷积运算并输出反卷积运算结果;
所述第二输出缓存,用于接收所述反卷积运算结果,并输出该反卷积运算结果至所述外部存储器。
10.根据权利要求9所述的人工智能处理器,其特征在于,包括:共享缓存,作为所述第一输入缓存及第二输入缓存,供卷积运算电路及反卷积运算电路分时复用地传输接受自外部存储器的数据。
11.根据权利要求9所述的人工智能处理器,其特征在于,包括:第二DMA,通信连接在所述外部数据存储器与反卷积处理模块之间。
12.根据权利要求9所述的人工智能处理器,其特征在于,所述反卷积处理模块所包括的各内部部件之间、以及反卷积处理模块与外部存储器之间通过先入先出数据接口连接。
13.根据权利要求9所述的人工智能处理器,其特征在于,还包括:处理系统电路,其包括:中央处理模块,用于配置所述可编程逻辑电路中卷积处理模块及反卷积处理模块的运行参数。
14.根据权利要求9所述的人工智能处理器,其特征在于,所述第二待处理数据的类型包括所述卷积运算结果。
15.根据权利要求6或12所述的人工智能处理器,其特征在于,所述先入先出数据接口包括:
先入先出存储器,包括:上行的可写使能管脚、数据输入管脚、及存储器满状态标识管脚;以及,下行的可读使能管脚、数据输出管脚、及存储器空状态标识管脚;
第一逻辑单元,连接上行对象、所述可写使能管脚、及存储器满状态标识管脚,用于在接收到上行对象的写请求时,根据存储器满状态标识管脚上的信号确定所述先入先出存储器是否已满;若未满,则发送使能信号至可写使能管脚来令先入先出存储器可写;否则,令所述先入先出存储器不可写;
第二逻辑单元,连接下行对象、所述可读使能管脚、及存储器空状态标识管脚,用于在接收到下行对象的读请求时,根据存储器空状态标识管脚上的信号确定所述先入先出存储器是否已空;若未空,则发送使能信号至可读使能管脚来令先入先出存储器可读;否则,令所述先入先出存储器不可读。
16.根据权利要求15所述的人工智能处理器,其特征在于,所述第一逻辑单元包括:第一反向器,其输入端连接所述存储器满状态标识管脚,其输出端引出供连接上行对象的第一标识端;第一与门,其第一输入端连接所述第一数据有效标识端,其第二输入端连接于供连接上行对象的上行数据有效端,其输出端连接所述可写使能管脚;所述第二逻辑单元包括:第二反向器,其输入端连接所述存储器空状态标识管脚,其输出端引出供连接下行对象的下行数据有效端;第二与门,其第一输入端连接所述下行数据有效端,其第二输入端连接于供连接下行对象的下行数据有效标识端。
17.根据权利要求7或13所述的,其特征在于,所述中央处理器的类型包括:MCU、SoC、FPGA或DSP。
18.一种人工智能处理方法,其特征在于,应用于如权利要求1至17中任一项所述的人工智能处理器;所述方法包括:
从外部存储器读取第一待处理数据及第一权重参数;
根据所述第一待处理数据及第一权重参数进行卷积运算并输出卷积运算结果;
将该卷积运算结果向所述外部存储器输出。
19.一种人工智能处理方法,其特征在于,应用于如权利要求9所述的人工智能处理器,所述方法包括:
从外部存储器读取第二待处理数据及第二权重参数;
根据所述第二待处理数据及第二权重参数进行反卷积运算并输出反卷积运算结果;
将该反卷积运算结果向所述外部存储器输出。
20.根据权利要求19所述的人工智能处理方法,其特征在于,所述第二待处理数据的类型包括所述卷积运算结果。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/072676 WO2019136762A1 (zh) | 2018-01-15 | 2018-01-15 | 人工智能处理器、及其所应用的处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109564638A true CN109564638A (zh) | 2019-04-02 |
CN109564638B CN109564638B (zh) | 2023-05-26 |
Family
ID=65872638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880002767.4A Active CN109564638B (zh) | 2018-01-15 | 2018-01-15 | 人工智能处理器及其所应用的处理方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109564638B (zh) |
WO (1) | WO2019136762A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992225A (zh) * | 2019-04-04 | 2019-07-09 | 北京中科寒武纪科技有限公司 | 数据输出方法及相关装置 |
CN110928216A (zh) * | 2019-11-14 | 2020-03-27 | 深圳云天励飞技术有限公司 | 人工智能装置 |
CN110928693A (zh) * | 2020-01-23 | 2020-03-27 | 飞诺门阵(北京)科技有限公司 | 一种计算设备及资源分配方法 |
CN111343106A (zh) * | 2020-02-25 | 2020-06-26 | 母国标 | 多路中频数字信号处理装置和方法 |
CN111813721A (zh) * | 2020-07-15 | 2020-10-23 | 深圳鲲云信息科技有限公司 | 神经网络数据处理方法、装置、设备及存储介质 |
WO2020220479A1 (zh) * | 2019-04-29 | 2020-11-05 | 山东浪潮人工智能研究院有限公司 | 基于fpga前向反向可复用的处理单元实现方法 |
WO2021259104A1 (zh) * | 2020-06-22 | 2021-12-30 | 深圳鲲云信息科技有限公司 | 人工智能芯片和基于人工智能芯片的数据处理方法 |
US11706076B2 (en) | 2020-01-23 | 2023-07-18 | Novnet Computing System Tech Co., Ltd. | Computer system with computing devices, communication device, task processing device |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110727633A (zh) * | 2019-09-17 | 2020-01-24 | 广东高云半导体科技股份有限公司 | 基于SoC FPGA的边缘人工智能计算系统构架 |
CN111857989B (zh) * | 2020-06-22 | 2024-02-27 | 深圳鲲云信息科技有限公司 | 人工智能芯片和基于人工智能芯片的数据处理方法 |
CN111914996A (zh) * | 2020-06-30 | 2020-11-10 | 华为技术有限公司 | 一种提取数据特征的方法和相关装置 |
CN112349419A (zh) * | 2020-08-27 | 2021-02-09 | 北京颢云信息科技股份有限公司 | 一种基于医学数据及人工智能的真实世界研究方法 |
CN112308762B (zh) * | 2020-10-23 | 2024-07-26 | 北京三快在线科技有限公司 | 一种数据处理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106530227A (zh) * | 2016-10-27 | 2017-03-22 | 北京小米移动软件有限公司 | 图像复原方法及装置 |
CN106597920A (zh) * | 2016-11-16 | 2017-04-26 | 西安电子科技大学 | 基于nios嵌入式处理器控制hpi接口的控制系统 |
EP3166075A1 (en) * | 2015-11-05 | 2017-05-10 | Facebook, Inc. | Systems and methods for processing content using convolutional neural networks |
CN106940815A (zh) * | 2017-02-13 | 2017-07-11 | 西安交通大学 | 一种可编程卷积神经网络协处理器ip核 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9824189B2 (en) * | 2015-01-23 | 2017-11-21 | Panasonic Intellectual Property Management Co., Ltd. | Image processing apparatus, image processing method, image display system, and storage medium |
CN107480782B (zh) * | 2017-08-14 | 2020-11-10 | 电子科技大学 | 一种片上学习神经网络处理器 |
-
2018
- 2018-01-15 WO PCT/CN2018/072676 patent/WO2019136762A1/zh active Application Filing
- 2018-01-15 CN CN201880002767.4A patent/CN109564638B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3166075A1 (en) * | 2015-11-05 | 2017-05-10 | Facebook, Inc. | Systems and methods for processing content using convolutional neural networks |
CN106530227A (zh) * | 2016-10-27 | 2017-03-22 | 北京小米移动软件有限公司 | 图像复原方法及装置 |
CN106597920A (zh) * | 2016-11-16 | 2017-04-26 | 西安电子科技大学 | 基于nios嵌入式处理器控制hpi接口的控制系统 |
CN106940815A (zh) * | 2017-02-13 | 2017-07-11 | 西安交通大学 | 一种可编程卷积神经网络协处理器ip核 |
Non-Patent Citations (2)
Title |
---|
吴参毅;: "安防领域人工智能深度神经网络算法的创新突破", 中国安防 * |
赵博然;张犁;石光明;黄蓉;徐欣冉;: "传输触发架构的可编程神经网络处理器设计", 西安电子科技大学学报 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992225B (zh) * | 2019-04-04 | 2022-02-22 | 中科寒武纪科技股份有限公司 | 数据输出方法及相关装置 |
CN109992225A (zh) * | 2019-04-04 | 2019-07-09 | 北京中科寒武纪科技有限公司 | 数据输出方法及相关装置 |
WO2020220479A1 (zh) * | 2019-04-29 | 2020-11-05 | 山东浪潮人工智能研究院有限公司 | 基于fpga前向反向可复用的处理单元实现方法 |
CN110928216B (zh) * | 2019-11-14 | 2020-12-15 | 深圳云天励飞技术有限公司 | 人工智能装置 |
CN110928216A (zh) * | 2019-11-14 | 2020-03-27 | 深圳云天励飞技术有限公司 | 人工智能装置 |
CN110928693A (zh) * | 2020-01-23 | 2020-03-27 | 飞诺门阵(北京)科技有限公司 | 一种计算设备及资源分配方法 |
US11706076B2 (en) | 2020-01-23 | 2023-07-18 | Novnet Computing System Tech Co., Ltd. | Computer system with computing devices, communication device, task processing device |
CN111343106A (zh) * | 2020-02-25 | 2020-06-26 | 母国标 | 多路中频数字信号处理装置和方法 |
CN111343106B (zh) * | 2020-02-25 | 2023-03-24 | 母国标 | 多路中频数字信号处理装置和方法 |
WO2021259104A1 (zh) * | 2020-06-22 | 2021-12-30 | 深圳鲲云信息科技有限公司 | 人工智能芯片和基于人工智能芯片的数据处理方法 |
CN111813721A (zh) * | 2020-07-15 | 2020-10-23 | 深圳鲲云信息科技有限公司 | 神经网络数据处理方法、装置、设备及存储介质 |
WO2022012563A1 (zh) * | 2020-07-15 | 2022-01-20 | 深圳鲲云信息科技有限公司 | 神经网络数据处理方法、装置、设备及存储介质 |
CN111813721B (zh) * | 2020-07-15 | 2022-09-09 | 深圳鲲云信息科技有限公司 | 神经网络数据处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109564638B (zh) | 2023-05-26 |
WO2019136762A1 (zh) | 2019-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109564638A (zh) | 人工智能处理器、及其所应用的处理方法 | |
CN207458128U (zh) | 一种基于fpga在视觉应用中的卷积神经网络加速器 | |
CN109284817A (zh) | 深度可分离卷积神经网络处理架构/方法/系统及介质 | |
CN109416756A (zh) | 卷积器及其所应用的人工智能处理装置 | |
CN107392309A (zh) | 一种基于fpga的通用定点数神经网络卷积加速器硬件结构 | |
Kim et al. | FPGA-based CNN inference accelerator synthesized from multi-threaded C software | |
CN108416436A (zh) | 使用多核心处理模块进行神经网络划分的方法及其系统 | |
US20220309325A1 (en) | Lossless tiling in convolution networks - resetting overlap factor to zero at section boundaries | |
CN108537331A (zh) | 一种基于异步逻辑的可重构卷积神经网络加速电路 | |
CN104820657A (zh) | 一种基于嵌入式异构多核处理器上的核间通信方法及并行编程模型 | |
CN110163356A (zh) | 一种计算装置及方法 | |
CN105608490B (zh) | 细胞阵列计算系统以及其中的通信方法 | |
CN110383300A (zh) | 一种计算装置及方法 | |
CN108470009A (zh) | 处理电路及其神经网络运算方法 | |
US11232360B1 (en) | Lossless tiling in convolution networks—weight gradient calculation | |
CN103345461A (zh) | 基于fpga的带有加速器的多核处理器片上网络系统 | |
CN108665063A (zh) | 用于bnn硬件加速器的双向并行处理卷积加速系统 | |
WO2023045445A1 (zh) | 数据处理装置、数据处理方法及相关产品 | |
US20220309027A1 (en) | Lossless Tiling In Convolution Networks - Backward Pass | |
CN109416755A (zh) | 人工智能并行处理方法、装置、可读存储介质、及终端 | |
CN109284824A (zh) | 一种基于可重构技术的用于加速卷积和池化运算的装置 | |
CN103956991B (zh) | 一种基于cpu/gpu异构平台的fir滤波并行实现方法 | |
CN108491924B (zh) | 一种面向人工智能计算的神经网络数据串行流水处理装置 | |
CN109753319A (zh) | 一种释放动态链接库的装置及相关产品 | |
CN109313723A (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 |