CN114492729A - 卷积神经网络处理器、实现方法、电子设备及存储介质 - Google Patents
卷积神经网络处理器、实现方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114492729A CN114492729A CN202111576228.1A CN202111576228A CN114492729A CN 114492729 A CN114492729 A CN 114492729A CN 202111576228 A CN202111576228 A CN 202111576228A CN 114492729 A CN114492729 A CN 114492729A
- Authority
- CN
- China
- Prior art keywords
- neural network
- convolutional neural
- processor
- instruction
- data
- 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
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 141
- 238000000034 method Methods 0.000 title claims abstract description 42
- 239000000872 buffer Substances 0.000 claims abstract description 88
- 238000004364 calculation method Methods 0.000 claims abstract description 46
- 238000013139 quantization Methods 0.000 claims description 29
- 238000010586 diagram Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 11
- 230000003068 static effect Effects 0.000 claims description 11
- 230000003139 buffering effect Effects 0.000 claims description 10
- 239000012190 activator Substances 0.000 claims description 9
- 238000011176 pooling Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 8
- 238000010606 normalization Methods 0.000 claims description 7
- 230000004913 activation Effects 0.000 claims description 6
- 230000006835 compression Effects 0.000 claims description 6
- 238000007906 compression Methods 0.000 claims description 6
- 238000005070 sampling Methods 0.000 claims 1
- 238000013528 artificial neural network Methods 0.000 abstract description 9
- 238000012545 processing Methods 0.000 description 13
- 230000008901 benefit Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000013519 translation 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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
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)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
- Complex Calculations (AREA)
Abstract
本申请提出一种卷积神经网络处理器、实现方法、电子设备及存储介质,该卷积神经网络处理器,通过总线协议与主处理器连接,包括:指令模块,用于接收并解析主处理器下发的指令;指令的内容至少包括待处理图像相关数据、卷积神经网络相关数据及特征图相关数据;缓存器模块,用于存储卷积神经网络操作的相关数据;计算模块,用于实现卷积神经网络操作;控制模块,用于根据相应指令控制数据写入、读出缓存器模块;以及根据指令控制计算模块执行指令的相关内容,对相应的待处理图像进行相应卷积神经网络操作。本申请可以根据主处理器发送的指令,进行相应的卷积神经网络操作,能够实现卷积神经网络操作的加速运算,具有通用性,且灵活性较好。
Description
技术领域
本申请属于卷积神经网络技术领域,具体涉及一种卷积神经网络处理器、实现方法、电子设备及存储介质。
背景技术
卷积神经网络(Convolutional Neural Networks,CNN)是一种经典且被广泛应用的深度学习神经网络结构。卷积神经网络的局部连接、权值共享及池化操作等特性使之可以有效地降低网络的复杂度,减少训练参数的数目,使模型对平移、扭曲、缩放具有一定程度的不变性,并具有强鲁棒性和容错能力,且也易于训练和优化网络结构。
由于卷积神经网络的计算过程较为复杂,处理的数据较多,所以,目前大多卷积神经网络模型都存在计算延迟的问题。为提高卷积神经网络的处理速度,通常将卷积神经网络从CPU上卸载下来,采用异构处理的方式进行加速。目前使用到的主要异构处理器有GPU、FPGA、ASIC等。但是,GPU只能做到指令流水,没法做到数据流水,且功耗过高。而ASIC往往只能支持特定的卷积神经网络运算,且开发周期长,在当前神经网络算法快速更迭的时代,往往流片出来算法就已经过时了。
发明内容
本申请提出一种卷积神经网络处理器、实现方法、电子设备及存储介质,可以根据主处理器发送的指令,进行相应的卷积神经网络操作,能够实现卷积神经网络操作的加速运算,且具有通用性,且灵活性较好。
本申请第一方面实施例提出了一种卷积神经网络处理器,通过总线协议与主处理器连接,包括:
指令模块,用于接收并解析所述主处理器下发的指令;所述指令的内容至少包括待处理图像相关数据、卷积神经网络相关数据及特征图相关数据;
第一缓存模块,用于存储卷积神经网络的量化参数和权值参数;
第二缓存模块,用于缓存卷积神经网络每一层输的出结果数据,并通知所述控制模块读取所述输出结果数据;
第三缓存模块,用于缓存卷积神经网络的中间计算结果数据,并对所述中间计算结果数据进行量化运算、数据位宽压缩及函数激活;
计算模块,用于实现卷积神经网络操作;
控制模块,用于根据相应指令控制所述量化参数和权值参数写入或读出所述第一缓存模块,控制所述中间计算结果数据写入或读出所述第三缓存模块,以及根据所述指令控制所述计算模块执行所述指令的相关内容,对相应的待处理图像进行相应卷积神经网络操作。
在本申请一些实施例中,所述指令模块还用于,通过指令队列的方式存储所述指令,且所述指令包括一个或多个卷积神经网络的配置指令。
在本申请一些实施例中,所述第一缓存模块包括量化缓存器和权值缓存器;
所述量化缓存器采用片上静态随机存取的方式存储卷积神经网络的量化参数;
所述权值缓存器采用片上静态随机存取的方式存储卷积神经网络的权值参数。
在本申请一些实施例中,所述权值缓存器与外部存储器连接,权值缓存器根据权值的大小分批次从外部存储器中读取权值数据,且每次读取指定数量的权值数据进行缓存。
在本申请一些实施例中,所述第二缓存模块包括特征图缓存器和输出级缓存器;
所述输出级缓存器用于缓存每一层卷积神经网络操作的输出结果数据;
所述特征图缓存器用于缓存自所述输出级缓存器传回的输出结果数据,并通知所述控制模块读取所述输出结果数据。
在本申请一些实施例中,所述特征图缓存器还与外部存储器连接,若新生成的输出结果数据占用的空间大于所述特征图缓存器的剩余存储空间,所述特征图缓存器则将该新生成的输出结果数据传输至所述外部存储器。
在本申请一些实施例中,所述第三缓存模块包括中间级缓存器和量化-压缩-激活器;
所述中间级缓存器用于缓存卷积神经网络操作过程中的中间计算结果数据;
所述量化-压缩-激活器用于接收所述中间级缓存器传输的中间计算结果数据,并对所述中间计算结果数据进行量化运算、数据位宽压缩及函数激活。
在本申请一些实施例中,所述计算模块包括:卷积算子、归一化算子、池化算子、上采样算子及全连接算子,分别用于实现卷积运算、归一化运算、池化运算、上采样运算及全连接运算。
在本申请一些实施例中,所述处理器基于FPGA实现。
本申请第二方面的实施例提供了一种卷积神经网络实现方法,基于第一方面所述的卷积神经网络处理器实现,所述方法包括:
接收并解析主处理器下发的指令;所述指令的内容至少包括待处理图像相关数据、卷积神经网络相关数据及特征图相关数据;
根据所述卷积神经网络相关数据建立卷积神经网络模型;
通过所述卷积神经网络模型,执行所述指令的相关内容,对相应的待处理图像进行相应卷积神经网络操作。
本申请第三方面的实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序以实现如第二方面所述的方法。
本申请第四方面的实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行实现如第二方面所述的方法。
本申请实施例中提供的技术方案,至少具有如下技术效果或优点:
本申请实施例提供的卷积神经网络处理器,通过总线与主处理器连接,可以接收主处理器下发的指令,并对指令进行解析后,然后可根据解析出的卷积神经网络相关数据建立卷积神经网络模型,并通过该卷积神经网络模型执行指令的相关内容,对相应的待处理图像进行相应卷积神经网络操作,从而实现了卷积神经网络操作的加速运算,且该处理器的通用性和灵活度较高,可支持多种卷积神经网络模型。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。
在附图中:
图1示出了本申请实施例提出的一种卷积神经网络处理器的框图结构示意图;
图2示出了本申请实施例提出的另一种卷积神经网络处理器的框图结构示意图;
图3示出了本申请实施例提出的一种卷积神经网络实现方法的流程示意图;
图4示出了本申请一实施例所提供的一种电子设备的结构示意图;
图5示出了本申请一实施例所提供的一种存储介质的示意图。
具体实施方式
下面将参照附图更详细地描述本申请的示例性实施方式。虽然附图中显示了本申请的示例性实施方式,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本申请所属领域技术人员所理解的通常意义。
下面结合附图来描述根据本申请实施例提出的一种卷积神经网络处理器、实现方法、电子设备及存储介质。
鉴于上述问题,本实施例对现有处理器上进行卷积神经网络操作的情况进行研究,研究结果发现:相对于GPU只能做到指令流水,没法做到数据流水,且功耗过高的缺点,和ASIC只能支持特定的卷积神经网络运算,且开发周期长的缺点,FPGA是一个很好的替代方案。FPGA做为一种可编程硬件,较GPU具有指令和数据都流水且低功耗的优势,较ASIC具有可根据算法的改变快速改变硬件实现的优势。
基于上述研究,本实施例提出了一种卷积神经网络处理器及在该卷积神经网络处理器上实现卷积神经网络操作的方法,该卷积神经网络处理器面向片上系统(System-on-a-chip,SoC),可通过总线协议与主处理器(CPU)连接,接收主处理器下发的指令,对指令进行解析后,可根据指令执行指令的相关内容,对相应的待处理图像进行相应卷积神经网络操作,从而实现卷积神经网络的加速运算,且该卷积神经网络处理器的通用性和灵活度较高,可支持多种卷积神经网络模型。
主处理器即中央处理器(central processing unit,CPU),是计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。总线协议包括但不限于AXI总线协议、PCI-E总线协议、SATA总线协议、USB总线协议等常见总线协议,只要能通过该总线协议,使卷积神经网络处理器与主处理连接即可。
请参照图1,本实施例提供的卷积神经网络处理器,包括指令模块、缓存器模块、计算模块及控制模块,其中,指令模块用于接收并解析主处理器下发的指令;计算模块用于实现卷积神经网络操作;控制模块用于根据指令控制计算模块执行指令的相关内容,对相应的待处理图像进行相应卷积神经网络操作。缓存器模块,用于存储卷积神经网络操作的相关数据,例如,与上述指令内容相对应的具体数据。控制模块可以根据相应指令控制数据写入、读出缓存器模块,以及搬迁存储地址,以实现卷积神经网络操作过程中数据的存储和传输。
其中,指令中的内容至少包括待处理图像相关数据、卷积神经网络相关数据及特征图相关数据,例如,输入图片尺寸、进行运算的算子种类、输入通道数、输出通道数、运算步长、输入特征图的起始读取地址、输出特征图的存储地址、权重数据的读取地址、量化数据的读取地址,以及其它所需的相关控制指令。
在本实施例一些实施方式中,主处理器上的卷积神经网络模型通过编译器生成相应的指令,主处理器再将这些指令通过总线配置到卷积神经网络处理器上。卷积神经网络处理器的指令模块接收到主处理器下发的指令后,通过指令队列的方式存储将这些指令进行存储,以便于指令模块按照先进先出的顺序对接收到的指令进行解析,及后续计算模块根据指令的内容进行相应的卷积神经网络操作。
在本实施例中,该卷积神经网络处理器可同时支持多个卷积神经网络操作,相应地,指令模块也不仅支持某一个卷积神经网络配置的指令队列,还同时支持多个卷积神经网络配置的指令队列,相应地,上述指令也可以包括一个或多个卷积神经网络的配置指令。具体采用基于哪个卷积神经网络配置进行卷积神经网络操作,可由主处理器自由进行切换。指令模块具体支持的指令队列个数可根据该模块的存储空间进行设置,本实施例不作具体限定。
在本实施例另一些实施方式中,控制模块负责从指令队列中读取各个指令的内容,并按照对应的指令的内容控制计算模块执行该指令。针对控制模块的指令,其内容可包括数据存取、数据搬移、进行神经网络操作等。其中,数据存取指的是控制数据从各个缓存器的读出和写入。数据搬移指的是将数据从缓存中的某个地址搬移到另一个地址。神经网络操作指的是进行卷积运算、池化运算、上采样运算、全连接运算以及归一化函数运算等。
在一条指令中,控制模块可能多次重复取送数据-调用计算模块进行神经网络操作这一过程。计算模块运算完后将相应的结果返回给控制模块,控制模块会将其暂存到下述缓存模块中。
在本实施例另一些实施方式中,计算模块可包括但不限于卷积算子、归一化算子、池化算子、上采样算子及全连接算子,分别用于实现卷积运算、归一化运算、池化运算、上采样运算及全连接运算。
缓存器模块可以包括多个子模块,分别用于缓存与待处理图像相关的数据(例如各种尺寸的待处理图像的具体数据)、卷积神经网络模型相关的数据(即形成卷积神经网络模型的结构参数,例如各种尺寸的卷积层、卷积块、池化层、全连接层等),以及对待处理图像进行卷积神经网络操作过程中生成的特征图相关数据(例如进行卷积神经网络操作每层的计算结果)。
具体地,缓存器模块可以包括第一缓存模块、第二缓存模块和第三缓存模块,其中,第一缓存器模块用于存储卷积神经网络的量化参数和权值参数;第二缓存模块用于缓存卷积神经网络每一层输的出结果数据,并通知所述控制模块读取所述输出结果数据;第三缓存模块用于缓存卷积神经网络的中间计算结果数据,并对所述中间计算结果数据进行量化运算、数据位宽压缩及函数激活。
进一步地,第一缓存器模块可以包括量化缓存器和权值缓存器,其中,量化缓存器用于存储卷积神经网络的量化参数,该量化参数用于数据的量化运算,可由控制模块读取,并送给量化缓存器进行量化运算和存储。由于量化参数的数据量通常较少,所需存储空间较小,所以在初始化时可由主处理器通过总线一次性配置,并可采用片上静态随机存取的方式进行存储,以提高其它模块获取该量化参数的速度。
权值缓存器用于存储卷积神经网络的权值数据,可采用片上静态随机存取的方式存储卷积神经网络的权值参数,以提高其它模块获取该量化参数的速度。
进一步地,由于权值参数的数据量往往较大,即便在卷积神经网络进行了权值共享处理的情况下,权值所需的存储空间依旧是设计的瓶颈,故本实施例中权值缓存器还与外部存储器连接,权值缓存器可以根据权值的大小分批次从外部存储器中读取权值数据,且每次读取指定数量的权值数据进行缓存,然后由控制模块读取,并送给计算模块进行运算,如此,结合片上静态随机存取的存储方式,使得权值数据是贴近计算资源的,可以很好地解决其他模块访问该权值存储器的瓶颈问题。其中,具体指定数量可根据权值缓存器的存储空间进行具体限定。外部存储器可以但不限于采用双倍速率同步动态随机存储器,以保证数据访问和传输的速度。
在本实施例另一些实施方式中,第二缓存模块可以包括特征图缓存器和输出级缓存器。其中,输出级缓存器用于缓存每一层卷积神经网络操作的输出结果数据,也可以采用片上静态随机存取存储器进行存储,并采用先入先出的队列方式进行存储,以保存最新数据。输出级缓存器还可用于其它缓存器发来的暂存数据,待特征图缓存器可用存储空间时时,将数据按照先入先出队列的顺序发送至特征图缓存器。
特征图缓存器用于缓存自输出级缓存器传回的输出结果数据,也采用片上静态随机存取的方式进行存储,并在存储后通知控制模块读取输出结果数据。
卷积神经网络的输入数据由主处理器通过总线输送进来,诸如图片数据、声音数据等。待处理图像缓存模块得到输入数据后,会通知控制模块来读取数据。控制模块读取后将输入数据发送至计算模块,并控制计算模块进行卷积神经网络操作,操作过程中的计算结果可通过输出级缓存器传回给特征图缓存器。
进一步地,特征图缓存器还与外部存储器连接,若新生成的输出结果数据占用的空间大于特征图缓存器的剩余存储空间,特征图缓存器则将该新生成的输出结果数据传输至外部存储器。
如图2所示(图中箭头为数据流传输方向),特征图缓存器可以包括3个输入口和3个输出口,3个输入口分别与主处理器、外部存储器及输出级缓存器连接。3个输出口分别与主处理器、外部存储器和控制模块连接。如果计算结果的数据量大于特征图缓存器的存储空间,那么特征图缓存器会将数据传输给外部存储器进行存储。进行下一层的卷积神经网络处理时,特征图缓存器将分批次从外部存储器将数据导入,分批次进行处理。当完成全部处理时,最终结果一般由主处理器通过总线从特征图缓存器中读取。
在本实施例另一些实施方式中,第三缓存模块可以包括中间级缓存器和量化-压缩-激活器。中间级缓存器用于缓存卷积神经网络操作过程中的中间计算结果数据,同样可采用片上静态随机存取存储方式进行存储,以提高数据访问速度。如图2所示,中间级缓存器分别与控制模块和量化-压缩-激活器连接,且与控制模块可以进行双向数据传输,与量化-压缩-激活器进行单向数据输出,即,中间级缓存器包括一个输入口和两个输出口,输入口与控制模块连接,两个输出口分别与控制模块和量化-压缩-激活器连接。
该卷积神经网络处理器运行期间,可以将产生的所有数据都先发送至该中间级缓存器,中间级缓存器若检测到接收的数据为中间计算结果,则进行缓存,便于控制模块再次读出数据,送往计算模块参与运算。中间级缓存器若检测到接收的数据为最终计算结果,则将该数据发送给量化-压缩-激活器。
量化-压缩-激活器用于接收中间级缓存器传输的中间计算结果数据,并对中间计算结果数据进行量化运算、数据位宽压缩及函数激活。通常,量化-压缩-激活器在接收到中间级缓存器发送来的数据后,立即对其进行流水线处理(指在若干数据中进行数据的迁移,再将迁移的数据进行复杂的数据处理,然后加载到目标数据系统汇总的一系列流程),经几个时钟周期的处理后,将处理后的数据发送至输出缓存器中进行暂存,待特征图缓存器有可用存储空间时,按照先入先出队列的顺序,数据会被再次发送至特征图缓存器。
需要说明的是,上述指令模块、计算模块、控制模块及缓存模块均是该卷积神经网络处理器的功能模块,本实施例对其硬件组成不做具体限定,只要能实现上述功能即可。
在本实施例另一些实施方式中,该卷积神经网络处理器可基于FPGA实现,FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)由逻辑单元、RAM、乘法器等硬件资源组成,通过将这些硬件资源合理组织,可实现乘法器、寄存器、地址发生器等硬件电路。FPGA可无限地重新编程,加载一个新的设计方案只需几百毫秒,利用重配置可实现新方案设计,从而减少硬件的开销。且FPGA的工作频率由FPGA芯片以及设计决定,可以通过修改设计或者更换更快的芯片来达到某些苛刻的要求。所以,本实施例采用基于FPGA的硬件实现,该卷积神经网络处理器可以同时实现多个卷积神经网络操作,尤其在进行多张图像处理时,可以明显提高卷积神经网络操作的处理速度。
基于上述该卷积神经网络处理器相同的构思,本实施例还提供一种卷积神经网络实现方法,该方法基于上述任一实施方式的卷积神经网络处理器实现,如图3所示,包括以下步骤:
步骤S1,接收并解析主处理器下发的指令;指令的内容至少包括待处理图像相关数据、卷积神经网络相关数据及特征图相关数据;
步骤S2,根据卷积神经网络相关数据建立卷积神经网络模型;
步骤S3,通过卷积神经网络模型,执行指令的相关内容,对相应的待处理图像进行相应卷积神经网络操作。
本实施例提供的卷积神经网络实现方法,基于通过总线与主处理器连接的卷积神经网络处理器实现,可以接收主处理器下发的指令,并对指令进行解析后,然后可根据解析出的卷积神经网络相关数据建立卷积神经网络模型,并通过该卷积神经网络模型执行指令的相关内容,对相应的待处理图像进行相应卷积神经网络操作,从而实现了卷积神经网络操作的加速运算,且该方法的通用性和灵活度较高,可支持多种卷积神经网络模型。
本申请实施方式还提供一种电子设备,以执行上述卷积神经网络实现方法。请参考图4,其示出了本申请的一些实施方式所提供的一种电子设备的示意图。如图4所示,电子设备8包括:处理器800,存储器801,总线802和通信接口803,处理器800、通信接口803和存储器801通过总线802连接;存储器801中存储有可在处理器800上运行的计算机程序,处理器800运行计算机程序时执行本申请前述任一实施方式所提供的卷积神经网络实现方法。
其中,存储器801可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口803(可以是有线或者无线)实现该装置网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
总线802可以是ISA总线、PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。其中,存储器801用于存储程序,处理器800在接收到执行指令后,执行程序,前述本申请实施例任一实施方式揭示的卷积神经网络实现方法可以应用于处理器800中,或者由处理器800实现。
处理器800可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器800中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器800可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器801,处理器800读取存储器801中的信息,结合其硬件完成上述方法的步骤。
本申请实施例提供的电子设备与本申请实施例提供的卷积神经网络实现方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
本申请实施方式还提供一种与前述实施方式所提供的卷积神经网络实现方法对应的计算机可读存储介质,请参考图5,其示出的计算机可读存储介质为光盘30,其上存储有计算机程序(即程序产品),计算机程序在被处理器运行时,会执行前述任意实施方式所提供的卷积神经网络实现方法。
需要说明的是,计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
本申请的上述实施例提供的计算机可读存储介质与本申请实施例提供的卷积神经网络实现方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
需要说明的是:
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本申请的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本申请并帮助理解各个发明方面中的一个或多个,在上面对本申请的示例性实施例的描述中,本申请的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下示意图:即所要求保护的本申请要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本申请的单独实施例。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本申请的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
以上,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (12)
1.一种卷积神经网络处理器,其特征在于,通过总线协议与主处理器连接,包括:
指令模块,用于接收并解析所述主处理器下发的指令;所述指令的内容至少包括待处理图像相关数据、卷积神经网络相关数据及特征图相关数据;
第一缓存模块,用于存储卷积神经网络的量化参数和权值参数;
第二缓存模块,用于缓存卷积神经网络每一层输的出结果数据,并通知所述控制模块读取所述输出结果数据;
第三缓存模块,用于缓存卷积神经网络的中间计算结果数据,并对所述中间计算结果数据进行量化运算、数据位宽压缩及函数激活;
计算模块,用于实现卷积神经网络操作;
控制模块,用于根据相应指令控制所述量化参数和权值参数写入或读出所述第一缓存模块,控制所述中间计算结果数据写入或读出所述第三缓存模块,以及根据所述指令控制所述计算模块执行所述指令的相关内容,对相应的待处理图像进行相应卷积神经网络操作。
2.根据权利要求1所述的处理器,其特征在于,所述指令模块还用于,通过指令队列的方式存储所述指令,且所述指令包括一个或多个卷积神经网络的配置指令。
3.根据权利要求1所述的处理器,其特征在于,所述第一缓存模块包括量化缓存器和权值缓存器;
所述量化缓存器采用片上静态随机存取的方式存储卷积神经网络的量化参数;
所述权值缓存器采用片上静态随机存取的方式存储卷积神经网络的权值参数。
4.根据权利要求3所述的处理器,其特征在于,所述权值缓存器与外部存储器连接,权值缓存器根据权值的大小分批次从外部存储器中读取权值数据,且每次读取指定数量的权值数据进行缓存。
5.根据权利要求3所述的处理器,其特征在于,所述第二缓存模块包括特征图缓存器和输出级缓存器;
所述输出级缓存器用于缓存每一层卷积神经网络操作的输出结果数据;
所述特征图缓存器用于缓存自所述输出级缓存器传回的输出结果数据,并通知所述控制模块读取所述输出结果数据。
6.根据权利要求5所述的处理器,其特征在于,所述特征图缓存器还与外部存储器连接,若新生成的输出结果数据占用的空间大于所述特征图缓存器的剩余存储空间,所述特征图缓存器则将该新生成的输出结果数据传输至所述外部存储器。
7.根据权利要求5所述的处理器,其特征在于,所述第三缓存模块包括中间级缓存器和量化-压缩-激活器;
所述中间级缓存器用于缓存卷积神经网络操作过程中的中间计算结果数据;
所述量化-压缩-激活器用于接收所述中间级缓存器传输的中间计算结果数据,并对所述中间计算结果数据进行量化运算、数据位宽压缩及函数激活。
8.根据权利要求1所述的处理器,其特征在于,所述计算模块包括:卷积算子、归一化算子、池化算子、采样算子及全连接算子,分别用于实现卷积运算、归一化运算、池化运算、上采样运算及全连接运算。
9.根据权利要求1-8任一项所述的处理器,其特征在于,所述处理器基于FPGA实现。
10.一种卷积神经网络实现方法,其特征在于,基于权利要求1-9任一项所述的卷积神经网络处理器实现,所述方法包括:
接收并解析主处理器下发的指令;所述指令的内容至少包括待处理图像相关数据、卷积神经网络相关数据及特征图相关数据;
根据所述卷积神经网络相关数据建立卷积神经网络模型;
通过所述卷积神经网络模型,执行所述指令的相关内容,对相应的待处理图像进行相应卷积神经网络操作。
11.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序以实现如权利要求10所述的方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行实现如权利要求10所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111576228.1A CN114492729A (zh) | 2021-12-21 | 2021-12-21 | 卷积神经网络处理器、实现方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111576228.1A CN114492729A (zh) | 2021-12-21 | 2021-12-21 | 卷积神经网络处理器、实现方法、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114492729A true CN114492729A (zh) | 2022-05-13 |
Family
ID=81494232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111576228.1A Pending CN114492729A (zh) | 2021-12-21 | 2021-12-21 | 卷积神经网络处理器、实现方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114492729A (zh) |
-
2021
- 2021-12-21 CN CN202111576228.1A patent/CN114492729A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11960566B1 (en) | Reducing computations for data including padding | |
US11200724B2 (en) | Texture processor based ray tracing acceleration method and system | |
EP2593862B1 (en) | Out-of-order command execution in a multimedia processor | |
US9996386B2 (en) | Mid-thread pre-emption with software assisted context switch | |
US10678479B1 (en) | Registers for restricted memory | |
CN110647480A (zh) | 数据处理方法、远程直接访存网卡和设备 | |
US11321256B2 (en) | Persistent kernel for graphics processing unit direct memory access network packet processing | |
US10909655B2 (en) | Direct memory access for graphics processing unit packet processing | |
WO2017185336A1 (zh) | 用于执行pooling运算的装置和方法 | |
CN112130969A (zh) | 有效执行经由任务图指定的工作负载 | |
US20230214338A1 (en) | Data moving method, direct memory access apparatus and computer system | |
WO2023124428A1 (zh) | 芯片、加速卡以及电子设备、数据处理方法 | |
CN110888824B (zh) | 多级存储器层级结构 | |
Tarrillo et al. | Dynamic partial reconfiguration manager | |
CN112559403B (zh) | 一种处理器及其中的中断控制器 | |
CN107678781B (zh) | 处理器以及用于在处理器上执行指令的方法 | |
CN114492729A (zh) | 卷积神经网络处理器、实现方法、电子设备及存储介质 | |
CN111860772B (zh) | 一种用于执行人工神经网络pooling运算的装置和方法 | |
US20220067872A1 (en) | Graphics processing unit including delegator and operating method thereof | |
Wang et al. | Design and implementation of a flexible DMA controller in video codec system | |
Kumar B et al. | A novel utilization-aware and power-delay-aware intelligent DMA controller for video streaming used in AI applications | |
Seidel | A Task Level Programmable Processor | |
US9824413B2 (en) | Sort-free threading model for a multi-threaded graphics pipeline | |
Seidner | Improved low-cost FPGA image processor architecture with external line memory | |
CN114330691B (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 |