视觉图像处理器、神经网络处理器及图像卷积计算方法与流程

文档序号:36011041发布日期:2023-11-17 04:52阅读:38来源:国知局
视觉图像处理器的制作方法

本技术涉及图像处理领域,具体而言,涉及一种视觉图像处理器、神经网络处理器及图像卷积计算方法。


背景技术:

1、npu(neural-network processing units,神经网络处理器)中可以设置vip(vision image processor,视觉图像处理器),以对图像进行卷积计算。目前,一个npu中可以设置多个vip,不同vip可以被配置为分别进行不同部分的卷积计算,以提高卷积计算的效率。

2、但是,目前配置多个vip的方式,是在任意vip完成卷积计算后,将卷积计算结果输出至外部存储器(例如ddr(double data rate,双倍速率同步动态随机存储器))中,以供其它vip从ddr中获取在先vip的卷积计算结果,并进行后续的卷积计算。

3、同时,卷积计算时,会将输入图像与kernel(卷积核)进行卷积计算,而目前多vip工作的方式是使不同vip配置不同的卷积核,该方式计算时仍需从ddr中获取全部输入图像数据,并将所有输入图像数据与vip上配置的卷积核进行计算。

4、在上述方式中,因vip与vip之间无法直接进行数据传输,这使得vip卷积计算结果输出至ddr、从ddr中读取卷积计算结果以及每一vip需获取全部输入图像数据进行卷积计算,此类过程均会影响vip和npu的计算效率。


技术实现思路

1、有鉴于此,本技术旨在提供一种视觉图像处理器、神经网络处理器及图像卷积计算方法,以提高视觉图像处理器的卷积计算效率。

2、第一方面,本技术实施例提供一种视觉图像处理器,包括:缓存器,用于存储图像数据;读取模块,与所述缓存器连接,所述读取模块用于从所述缓存器读取所述图像数据;协同模块,包括输入端和输出端,所述协同模块的输入端与所述读取模块连接;卷积模块,包括多个卷积单元,不同卷积单元用于进行不同的卷积计算;所述卷积模块与所述协同模块的输出端连接,用于基于预先配置的所述卷积单元对所述图像数据进行卷积计算,得到卷积计算结果;所述协同模块的输出端用于与后一视觉图像处理器连接;所述协同模块的输入端还用于与前一视觉图像处理器连接;所述卷积模块还与所述缓存器连接,所述卷积模块还用于将所述卷积计算结果存入所述缓存器;所述协同模块被配置为将所述图像数据输出至所述后一视觉图像处理器;所述协同模块还被配置为接收所述前一视觉图像处理器传来的图像数据。

3、本技术实施例中,在视觉图像处理器中设置协同模块,协同模块可以使得该视觉图像处理器与其他视觉图像处理器连接,从而在各视觉图像处理器之间可以对图像数据进行传输共享。由此,在多个视觉图像处理器共同对图像数据进行卷积计算的场景中,图像数据可以直接在各视觉图像处理器之间传输,以及当前卷积层的卷积计算结果能够存储在缓存器内,在进行下一卷积层的卷积计算时,当前卷积层的卷积计算结果能够作为图像数据,并通过协同模块在各视觉图像处理器之间进行共享,由此,卷积计算结果无需存入外部存储器,从而能够有效减少各视觉图像处理器将卷积计算结果存入外部存储器以及从外部存储器读取卷积计算结果和图像数据的这一过程执行所需的时间,由此,可以提高多视觉处理器共同对图像数据进行卷积计算时的效率。

4、一实施例中,所述协同模块包括:控制单元、第一多路复用器和第二多路复用器;所述第一多路复用器的两个输入端分别与所述前一视觉图像处理器和所述读取模块连接;所述第一多路复用器的输出端与所述卷积模块连接;所述第二多路复用器的两个输入端分别与所述前一视觉图像处理器和所述读取模块连接;所述第二多路复用器的输出端与所述后一视觉图像处理器连接;所述控制单元分别与所述第一多路复用器和所述第二多路复用器的控制端连接,所述控制单元被配置为控制所述第一多路复用器的其中一个输入端与输出端导通;以及,所述控制单元还被配置为控制所述第二多路复用器的其中一个输入端与输出端导通。

5、本技术实施例中,通过第一多路复用器,可以使得前一视觉图像处理器输出的图像数据被当前视觉图像处理器所接收并进行卷积计算,同时,将第一多路复用器的另一输入端与读取模块连接,使得当前视觉图像处理器自身的图像数据也能够被正常处理。同理,通过第二多路复用器,可以使得前一视觉图像处理器输出的图像数据能发送至后一视觉图像处理器,实现数据传输的功能。同时,将第二多路复用器的另一输入端与读取模块连接,使得当前视觉图像处理器自身的图像数据能够被正常处理以及传输至后一视觉图像处理器,从而实现数据共享的功能。由此,通过第一视觉图像处理器和第二视觉图像处理器,可以使得不同视觉图像处理器之间在进行卷积计算过程中能够共享图像数据,从而实现多个视觉图像处理器协同完成对同一卷积层的图像数据的卷积计算,无需将数据输出至外部存储器,提高卷积计算效率。

6、一实施例中,所述图像数据和所述卷积计算结果包括二维图像切片数据;所述协同模块还包括:二维图像切片缓存单元,分别与所述读取模块、所述第一多路复用器和所述第二多路复用器连接;所述二维图像切片缓存单元用于对从所述缓存器读取的所述二维图像切片数据进行暂存。

7、本技术实施例中,利用二维图像切片缓存单元,可以对二维图像切片数据进行缓存,减少卷积模块因卷积计算无法及时接收二维图像切片数据从而导致数据丢失的情况发生,提高多视觉图像处理器协同工作情况下的准确性。

8、一实施例中,所述第一多路复用器的输出端通过第一数据总线与所述卷积模块连接;所述第二多路复用器的输出端通过第二数据总线与所述后一视觉图像处理器连接;所述二维图像切片缓存单元的输出端位宽为预设位宽;其中,所述预设位宽根据所述第一数据总线的位宽和所述第二数据总线的位宽确定。

9、本技术实施例中,二维图像切片缓存单元的输出端位宽为预设位宽,由此,可以便于第一数据总线和第二数据总线的位宽增大提高传输速度,第一数据总线或第二数据总线位宽增大之后,二维图像切片缓存单元的输出端位宽均能调整为第一数据总线和第二数据总线的位宽匹配。

10、一实施例中,所述控制单元还与所述二维图像切片缓存单元连接,所述控制单元还被配置为对所述二维图像切片数据进行第一标记或第二标记;所述第一标记表征所述二维图像切片数据首次被所述读取模块读出;所述第二标记表征所述二维图像切片数据最后一次被所述读取模块读出,且将不再被所述读取模块连接的后一视觉图像处理器读出。

11、读取模块会逐个读出缓存器中的二维图像切片数据,而不同视觉图像处理器所处理的二维图像切片数据可能不同。本技术实施例中,对二维图像切片数据进行第一标记,以使得视觉图像处理器可以对数据进行区分,从而对自身需要卷积计算的二维图像切片数据进行卷积计算。同理,对二维图像切片数据进行第二标记,以使得当前视觉图像处理器中的二维图像切片数据不再被读出,从而表征一轮循环的完成,避免重复计算。

12、一实施例中,所述控制单元被配置为响应于所述二维图像切片数据存入所述二维图像切片缓存单元,接收所述前一视觉图像处理器发送的第一信号;以及所述控制单元还被配置为响应于所述二维图像切片数据从所述二维图像切片缓存单元读出,向所述前一视觉图像处理器发送第二信号;所述第一信号和第二信号的数量之差表征所述二维图像切片缓存单元中未被处理的二维图像切片数据数量。

13、本技术实施例中,通过第一信号的接收和第二信号的发出,可以对各视觉图像处理器之间是否正常传输数据进行校验。以及,通过第一信号的接收可以获知前一视觉图像处理器的卷积计算情况,发出第二信号可以使前一视觉图像处理器获知当前视觉图像处理器(即发送第二信号的视觉图像处理器)的卷积计算情况,从而使得图像数据可以在各视觉图像处理器之间正常传输,实现共享,减少图像数据无法被接收的情况发生,提高数据的完整性,从而提高卷积计算的准确性。

14、一实施例中,所述协同模块还包括:第一寄存器和第二寄存器;所述第一寄存器分别与所述第一多路复用器的一个输入端和所述前一视觉图像处理器连接;所述第一寄存器用于调整所述前一视觉图像处理器输出图像数据的时序;所述第二寄存器分别与所述第二多路复用器和所述后一视觉图像处理器;所述第二寄存器用于调整输出至所述后一视觉图像处理器的图像数据的时序。

15、在本技术实施例中,通过第一寄存器,可以对前一视觉图像处理器输出的卷积计算结果进行时序调整,同理,通过第二寄存器,可以对输出至后一视觉图像处理器输出的卷积计算结果进行时序调整,从而使得卷积计算结果能够被在后的视觉图像处理器准确接收与处理,提高卷积计算的准确性。

16、一实施例中,所述视觉图像处理器还包括:先入先出存储器;所述先入先出存储器分别与所述前一视觉图像处理器和所述协同模块连接。

17、由于不同的视觉图像处理器之间可能使用的时钟不同,本技术实施例中,将先入先出存储器设置于前一视觉图像处理器和协同模块之间,使得在先入先出存储器内可以对前一视觉图像处理器输出的数据进行时序的调整,以使得不同视觉图像处理器之间传输的数据总能同步至接收方图像处理器的时钟域,从而能够在后的视觉图像处理器能够对前一视觉图像处理器传来的数据进行卷积计算。

18、一实施例中,所述视觉图像处理器还包括:第三寄存器,输入端与所述协同模块连接,输出端与所述后一视觉图像处理器连接。

19、本技术实施例中,由于协同模块与后一视觉图像处理器之间在物理距离上有较远的距离,这使得这一条线路时序较差,通过在后一视觉图像处理器与协同模块之间设置第三寄存器,可以对输出至后一视觉图像处理器的数据进行时序调整,从而使得输出的数据能够较为准确地被后一视觉图像处理器所使用。

20、第二方面,本技术实施例提供一种图像卷积计算方法,应用于如第一方面任一项所述的视觉图像处理器,所述视觉图像处理器被配置与其他视觉图像处理器连接;所述图像卷积计算方法包括:获取图像数据;所述图像数据从所述缓存器中获取或从前一视觉图像处理器获取;基于预先配置的卷积单元对所述图像数据进行卷积计算,得到卷积计算结果;响应于下一卷积层的卷积计算,将所述卷积计算结果作为新的图像数据输出至后一视觉图像处理器。

21、本技术实施例中,可以接收上一视觉图像处理器的卷积计算结果和图像数据,以及将卷积计算结果和图像数据传输至下一视觉图像处理器,由此,各视觉图像处理器之间可以数据传输与共享,无需将数据输出至外部存储器或从外部存储器读取数据,减少获取需进行卷积计算的数据所需的时间,从而提高多视觉图像处理器协同工作下的卷积计算效率。

22、第三方面,本技术实施例提供一种神经网络处理器,包括:多个如第一方面任一项所述的视觉图像处理器;各所述视觉图像处理器之间通过各自的协同模块相互连接;控制器,分别与各所述视觉图像处理器连接;所述控制器用于控制多个所述视觉图像处理器之间协同对所述图像数据进行卷积计算;所述控制器被配置为基于预设分配规则为不同的所述视觉图像处理器分配第一参数和第二参数;所述第一参数的值表征该视觉图像处理器被分配到的需从缓存器中读取图像数据的数量值;所述第二参数的值表征该视觉图像处理器需输出卷积计算结果的数量值;所述控制器还被配置为校验各所述视觉图像处理器的同步性;所述控制器还被配置为在各所述视觉图像处理器同步的情况下,控制各所述神经网络处理器基于所述第一参数的值和所述第二参数的值对所述图像数据进行卷积计算。

23、本技术实施例中,利用相互连接的多个视觉图像处理器协同进行卷积计算,可以提高卷积计算的效率。基于预设分配规则分配第一参数和第二参数,协调多个视觉图像处理器之间的工作情况,以及使多个视觉图像处理器同步,可以减少多个视觉图像处理器之间配合工作出现异常的情况。本技术提供的神经网络处理器包括相互连接并传输数据的多个视觉图像处理器,该神经网络处理器区别于现有技术,相应地,本技术提供对应的图像卷积计算方法,以使得神经网络处理器能够正常工作,以提高多神经网络处理器协同工作情况下的卷积计算效率。

24、一实施例中,所述控制器还被配置为:若各所述视觉图像处理器之间分配到的第二参数的值不相等,则将除分配卷积核最多的视觉图像处理器之外的其他视觉图像处理器配置为:在获得与自身分配到第二参数的值相同数量的图像数据之后,将后续获取的图像数据标记为无效数据。

25、本技术实施例中,若各视觉图像处理器分配到的第二参数不等,则各视觉图像处理器实际所需进行卷积计算的次数也不等,而各视觉图像处理器之间进行卷积计算是同步进行的,若分配第二参数较少的视觉图像处理器无需额外进行卷积计算,则可以将图像数据标记为无效数据,以使得视觉图像处理器不进行额外的卷积计算,避免额外计算导致的计算错误。

26、一实施例中,所述控制器还被配置为:若存在任意视觉图像处理器分配到的所述第一参数的值为零,则将该视觉图像处理器配置为:选择前一视觉图像处理器传输的图像数据进行卷积计算或输出至后一视觉图像处理器;存在任意视觉图像处理器分配到的所述第二参数的值为零,则将该视觉图像处理器配置为:将该视觉图像处理器读出的图像数据或前一视觉图像处理器传输的图像数据输出至后一视觉图像处理器。

27、本技术实施例中,在第一参数为0时,不从该视觉图像处理器的缓存器中读取图像数据,仅对前一视觉图像处理器传输的图像数据进行卷积计算或输出,以及,在第二参数为0时,不进行卷积计算,而是直接输出,由此,可以使得各视觉图像处理器根据自身需要获取数据,避免数据浪费,提高卷积计算效率。

28、一实施例中,所述控制器还被配置为:控制各所述视觉图像处理器进入待定状态;所述待定状态下,各所述视觉图像处理器中的首个视觉图像处理器向下一所述视觉图像处理器发送同步信号,其余所述视觉图像处理器依次向后一视觉图像处理器传递所述同步信号;若所述首个视觉图像处理器收到所述同步信号,则所述首个视觉图像处理器向后一视觉图像处理器发送结束信号;其余所述视觉图像处理器被配置为依次向后一视觉图像处理器传递所述结束信号;响应于所述首个视觉图像处理器收到所述结束信号,确定各所述视觉图像处理器之间的同步完成。

29、由于各视觉图像处理器之间相互连接,若各视觉图像处理器准备好之后,信号会依次向后传递,发送信号的视觉图像处理器会收到该信号。则在本技术实施例中,可以利用该特性,使得各视觉图像处理器进入待定状态,首个视觉图像处理器发送同步信号并依次向后传递,直至收到同步信号,则确定各视觉图像处理器可以协同工作,在发出结束信号之后,确定各视觉图像处理器同步完成。而在多视觉图像处理器协同工作时,数据的传输较为重要,通过发出同步信号和结束信号的方式确定同步,可以使得各视觉图像处理器之间的同步能够使得数据传输有较高的可靠性,提高多视觉图像处理器协同工作下的卷积计算准确性。

30、一实施例中,所述控制器还被配置为:在完成一层卷积计算后,控制各所述视觉图像处理器重新校验同步性。

31、本技术实施例中,在完成一层卷积计算后重新校验同步性,可以使得各视觉图像处理器之间尽可能保持同步,减少多视觉图像处理器协同工作出现异常的可能性,以及减少数据丢失的可能性,提高多视觉图像处理器协同工作下的准确性。

32、一实施例中,所述预设分配规则包括:若第一参数或第二参数的总数k为预设通道数n和所述视觉图像处理器的数量m的公倍数,则基于所述预设通道数和所述视觉图像处理器的数量均分所述k,得到所述第一参数的值和所述第二参数的值;若所述k不为预设通道数n和所述视觉图像处理器的数量m的公倍数,则:若所述k大于n*(m-1),则为m-1个所述视觉图像处理器分配所述第一参数的值和所述第二参数的值为a,为最后一个所述视觉图像处理器分配所述第一参数的值和所述第二参数的值为k-a*(m-1);其中所述a为n的整数倍,且所述a大于k-a*(m-1);若所述k小于或等于n*(m-1),则为m个所述视觉图像处理器分配所述第一参数的值和所述第二参数的值为n,为1个所述视觉图像处理器分配所述第一参数的值和所述第二参数的值为k-n*m,为剩余的m-m-1个所述视觉图像处理器分配所述第一参数的值为0和所述第二参数的值为0;其中:所述m等于k/n的商值。

33、本技术实施例中,针对不同情况,采用不同的分配方式,以使得在不同情况下均能合理分配第一参数或第二参数,从而使得神经网络处理器的多视觉图像处理器协同工作模式能够适用于不同类型图像数据的卷积计算,扩大多视觉图像处理器协同工作模式的适用范围。

34、第四方面,本技术实施例提供一种图像卷积计算方法,应用于如上述实施例的神经网络处理器的控制器中,所述图像卷积计算方法包括:基于预设分配规则为不同的所述视觉图像处理器分配第一参数和第二参数;所述第一参数的值表征该视觉图像处理器被分配到的需从缓存器中读取图像数据的数量值;所述第二参数的值表征该视觉图像处理器需输出卷积计算结果的数量值;校验各所述视觉图像处理器的同步性;在各所述视觉图像处理器同步的情况下,控制各所述神经网络处理器基于所述第一参数的值和所述第二参数的值对所述图像数据进行卷积计算。

35、第五方面,本技术实施例提供一种电子设备,包括如第三方面所述的神经网络处理器。本技术实施例中,在视觉图像处理器中设置的协同模块可以使得该视觉图像处理器与其他视觉图像处理器连接,从而在各视觉图像处理器之间可以对图像数据进行传输共享。由此,在多个视觉图像处理器共同对图像数据进行卷积计算的场景中,图像数据可以直接在各视觉图像处理器之间传输,以及当前卷积层的卷积计算结果能够存储在缓存器内,在进行下一卷积层的卷积计算时,当前卷积层的卷积计算结果能够作为图像数据,并通过协同模块在各视觉图像处理器之间进行共享,由此,卷积计算结果无需存入外部存储器,从而能够有效减少各视觉图像处理器将卷积计算结果存入外部存储器以及从外部存储器读取卷积计算结果和图像数据的这一过程执行所需的时间,由此,可以提高多视觉处理器共同对图像数据进行卷积计算时的效率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1