处理器及实现方法、电子设备和存储介质转让专利

申请号 : CN202010851757.7

文献号 : CN112152947B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 严小平

申请人 : 北京百度网讯科技有限公司

摘要 :

本申请公开了处理器及实现方法、电子设备和存储介质,涉及人工智能及深度学习领域,所述处理器中包括:系统控制器,用于将预定的数据包信息发送给数据打包拆包模块;数据打包拆包模块,用于根据数据包信息从存储阵列模块获取对应的数据包数据,与数据包信息进行打包,将打包得到的第一数据包发送给运算模块进行运算处理,并获取运算模块返回的第二数据包,通过拆包得到运算结果数据,存储到存储阵列模块中;存储阵列模块,用于进行数据存储;运算模块,用于对获取到的第一数据包进行运算处理,根据运算结果数据生成第二数据包,返回给数据打包拆包模块。应用本申请所述方案,可降低设计难度,提升整体处理效率等。

权利要求 :

1.一种处理器,包括:系统控制器、存储阵列模块、数据打包拆包模块以及运算模块;

所述系统控制器,用于将预定的数据包信息发送给所述数据打包拆包模块;

所述数据打包拆包模块,用于根据所述数据包信息从所述存储阵列模块获取对应的数据包数据,将所述数据包数据与所述数据包信息进行打包,将打包得到的第一数据包发送给所述运算模块进行运算处理,并获取所述运算模块返回的第二数据包,通过对所述第二数据包进行拆包得到运算结果数据,存储到所述存储阵列模块中;

所述存储阵列模块,用于进行数据存储;

所述运算模块,用于对获取到的所述第一数据包进行运算处理,根据运算结果数据生成所述第二数据包,返回给所述数据打包拆包模块。

2.根据权利要求1所述的处理器,还包括:直接内存存取模块,用于在所述系统控制器的控制下实现外部存储数据与所述存储阵列模块中的内部存储阵列数据的高速交换。

3.根据权利要求1所述的处理器,还包括:路由交换模块,用于将获取自所述数据打包拆包模块的所述第一数据包发送给所述运算模块,并将获取自所述运算模块的所述第二数据包发送给所述数据打包拆包模块。

4.根据权利要求3所述的处理器,其中,所述运算模块包括:通用运算模块以及激活运算模块;

所述通用运算模块,用于进行通用运算;所述激活运算模块,用于进行激活运算。

5.根据权利要求4所述的处理器,其中,所述存储阵列模块中包括N1个存储单元;

所述数据打包拆包模块中包括N2个数据打包拆包单元,每个数据打包拆包单元分别通过一个数据通道连接到所述路由交换模块上,N1和N2均为大于一的正整数;

所述通用运算模块中包括M个运算单元,所述激活运算模块中包括P个运算单元,每个运算单元分别通过一个数据通道连接到所述路由交换模块上,M和P均为大于一的正整数;

所述数据打包拆包单元将从所述存储单元获取的所述数据包数据及从所述系统控制器获取的所述数据包信息进行打包,利用所述数据通道,将打包得到的所述第一数据包通过所述路由交换模块发送给运算单元进行运算处理,并利用所述数据通道,通过所述路由交换模块获取所述运算单元返回的所述第二数据包,通过对所述第二数据包进行拆包得到运算结果数据,存储到所述存储单元中。

6.根据权利要求5所述的处理器,其中,所述数据包信息中包括:源通道、源地址、目的通道以及运算类型;

所述数据打包拆包单元从所述源通道对应的存储单元的所述源地址中获取所述数据包数据;

所述路由交换模块将所述第一数据包发送给所述目的通道对应的运算单元进行所述运算类型的运算处理。

7.根据权利要求6所述的处理器,其中,所述N1和N2的取值相同,每个数据打包拆包单元分别对应于一个存储单元,从对应的存储单元获取所述数据包数据。

8.根据权利要求7所述的处理器,其中,所述数据包信息中进一步包括:目的地址或存储策略;

若所述数据包信息中包括所述目的地址,则所述数据打包拆包单元根据所述目的地址,将所述运算结果数据存储到对应的存储单元中;

若所述数据包信息中包括所述存储策略,则所述数据打包拆包单元根据所述存储策略,将所述运算结果数据存储到对应的存储单元中。

9.根据权利要求8所述的处理器,其中,所述存储策略包括:实现数据对齐的存储策略。

10.一种处理器实现方法,包括:构建由系统控制器、存储阵列模块、数据打包拆包模块以及运算模块组成的处理器;

利用所述处理器进行神经网络运算;其中,所述系统控制器用于将预定的数据包信息发送给所述数据打包拆包模块;所述数据打包拆包模块用于根据所述数据包信息从所述存储阵列模块获取对应的数据包数据,将所述数据包数据与所述数据包信息进行打包,将打包得到的第一数据包发送给所述运算模块进行运算处理,并获取所述运算模块返回的第二数据包,通过对所述第二数据包进行拆包得到运算结果数据,存储到所述存储阵列模块中;

所述存储阵列模块用于进行数据存储;所述运算模块用于对获取到的所述第一数据包进行运算处理,根据运算结果数据生成所述第二数据包,返回给所述数据打包拆包模块。

11.根据权利要求10所述的方法,还包括:在所述处理器中增加直接内存存取模块,所述直接内存存取模块用于在所述系统控制器的控制下实现外部存储数据与所述存储阵列模块中的内部存储阵列数据的高速交换。

12.根据权利要求10所述的方法,还包括:在所述处理器中增加路由交换模块,所述路由交换模块用于将获取自所述数据打包拆包模块的所述第一数据包发送给所述运算模块,并将获取自所述运算模块的所述第二数据包发送给所述数据打包拆包模块。

13.根据权利要求12所述的方法,其中,所述运算模块包括:用于进行通用运算的通用运算模块以及用于进行激活运算的激活运算模块。

14.根据权利要求13所述的方法,其中,所述存储阵列模块中包括N1个存储单元;

所述数据打包拆包模块中包括N2个数据打包拆包单元,每个数据打包拆包单元分别通过一个数据通道连接到所述路由交换模块上,N1和N2均为大于一的正整数;

所述通用运算模块中包括M个运算单元,所述激活运算模块中包括P个运算单元,每个运算单元分别通过一个数据通道连接到所述路由交换模块上,M和P均为大于一的正整数;

所述数据打包拆包单元用于将从所述存储单元获取的所述数据包数据及从所述系统控制器获取的所述数据包信息进行打包,利用所述数据通道,将打包得到的所述第一数据包通过所述路由交换模块发送给运算单元进行运算处理,并利用所述数据通道,通过所述路由交换模块获取所述运算单元返回的所述第二数据包,通过对所述第二数据包进行拆包得到运算结果数据,存储到所述存储单元中。

15.根据权利要求14所述的方法,其中,所述数据包信息中包括:源通道、源地址、目的通道以及运算类型;

所述数据包数据为所述数据打包拆包单元从所述源通道对应的存储单元的所述源地址中获取的数据包数据;

获取到所述第一数据包的运算单元为所述路由交换模块确定出的所述目的通道对应的运算单元;

所述运算处理为所述运算单元进行的所述运算类型的运算处理。

16.根据权利要求15所述的方法,其中,所述N1和N2的取值相同,每个数据打包拆包单元分别对应于一个存储单元,从对应的存储单元获取所述数据包数据。

17.根据权利要求16所述的方法,其中,所述数据包信息中进一步包括:目的地址或存储策略;

若所述数据包信息中包括所述目的地址,则所述数据打包拆包单元根据所述目的地址,将所述运算结果数据存储到对应的存储单元中;

若所述数据包信息中包括所述存储策略,则所述数据打包拆包单元根据所述存储策略,将所述运算结果数据存储到对应的存储单元中。

18.根据权利要求17所述的方法,其中,所述存储策略包括:实现数据对齐的存储策略。

19.一种电子设备,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求10‑18中任一项所述的方法。

20.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求10‑18中任一项所述的方法。

21.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求10‑18中任一项所述的方法。

说明书 :

处理器及实现方法、电子设备和存储介质

技术领域

[0001] 本申请涉及计算机应用技术,特别涉及人工智能及深度学习领域的处理器及实现方法、电子设备和存储介质。

背景技术

[0002] 越来越智能化的应用使得神经网络算法更为多样化,使得整体的神经网络模型变得越来越复杂,相应地,带来了更大量的运算和数据的存储交互,因此如神经网络处理器
(NPU,Network Processing Unit)芯片等基于神经网络的处理器越来越受到重视。
[0003] 目前的NPU包括以加速器为核心和以指令扩展为核心的两种主流设计方式,其中前一种设计方式由于通用性和扩展性较差,较少采用,主要采用后一种设计方式。但后一种
设计方式中,需要扩展对应神经网络运算操作的繁琐指令集,并需要开发专用的编译器支
持等,设计难度很高,尤其是应用于语音数据实时处理时。

发明内容

[0004] 本申请提供了处理器及实现方法、电子设备和存储介质。
[0005] 一种处理器,包括:系统控制器、存储阵列模块、数据打包拆包模块以及运算模块;
[0006] 所述系统控制器,用于将预定的数据包信息发送给所述数据打包拆包模块;
[0007] 所述数据打包拆包模块,用于根据所述数据包信息从所述存储阵列模块获取对应的数据包数据,将所述数据包数据与所述数据包信息进行打包,将打包得到的第一数据包
发送给所述运算模块进行运算处理,并获取所述运算模块返回的第二数据包,通过对所述
第二数据包进行拆包得到运算结果数据,存储到所述存储阵列模块中;
[0008] 所述存储阵列模块,用于进行数据存储;
[0009] 所述运算模块,用于对获取到的所述第一数据包进行运算处理,根据运算结果数据生成所述第二数据包,返回给所述数据打包拆包模块。
[0010] 一种处理器实现方法,包括:
[0011] 构建由系统控制器、存储阵列模块、数据打包拆包模块以及运算模块组成的处理器;
[0012] 利用所述处理器进行神经网络运算;其中,所述系统控制器用于将预定的数据包信息发送给所述数据打包拆包模块;所述数据打包拆包模块用于根据所述数据包信息从所
述存储阵列模块获取对应的数据包数据,将所述数据包数据与所述数据包信息进行打包,
将打包得到的第一数据包发送给所述运算模块进行运算处理,并获取所述运算模块返回的
第二数据包,通过对所述第二数据包进行拆包得到运算结果数据,存储到所述存储阵列模
块中;所述存储阵列模块用于进行数据存储;所述运算模块用于对获取到的所述第一数据
包进行运算处理,根据运算结果数据生成所述第二数据包,返回给所述数据打包拆包模块。
[0013] 一种电子设备,包括:
[0014] 至少一个处理器;以及
[0015] 与所述至少一个处理器通信连接的存储器;其中,
[0016] 所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如以上所述的方法。
[0017] 一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如以上所述的方法。
[0018] 一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如以上所述的方法。
[0019] 上述申请中的一个实施例具有如下优点或有益效果:提出了一种存算一体的实现方式,在处理器中完成了神经网络存储到运算的整体交互,避免了复杂的指令设计和高难
度的编译器开发等,从而降低了设计难度,提升了整体处理效率等。
[0020] 应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

[0021] 附图用于更好地理解本方案,不构成对本申请的限定。其中:
[0022] 图1为本申请所述处理器10第一实施例的组成结构示意图;
[0023] 图2为本申请所述处理器10第二实施例的组成结构示意图;
[0024] 图3为本申请所述处理器10第三实施例的组成结构示意图;
[0025] 图4为本申请所述处理器实现方法实施例的流程图;
[0026] 图5为根据本申请实施例所述方法的电子设备的框图。

具体实施方式

[0027] 以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识
到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同
样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0028] 另外,应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情
况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0029] 图1为本申请所述处理器10第一实施例的组成结构示意图。如图1所示,包括:系统控制器101、存储阵列模块102、数据打包拆包模块103以及运算模块104。
[0030] 系统控制器101,用于将预定的数据包信息发送给数据打包拆包模块103。
[0031] 数据打包拆包模块103,用于根据数据包信息从存储阵列模块102获取对应的数据包数据,将数据包数据与数据包信息进行打包,将打包得到的第一数据包发送给运算模块
104进行运算处理,并获取运算模块104返回的第二数据包,通过对第二数据包进行拆包得
到运算结果数据,存储到存储阵列模块102中。
[0032] 存储阵列模块102,用于进行数据存储。
[0033] 运算模块104,用于对获取到的第一数据包进行运算处理,根据运算结果数据生成第二数据包,返回给数据打包拆包模块103。
[0034] 可以看出,上述实施例中提出了一种存算一体的实现方式,在处理器中完成了神经网络存储到运算的整体交互,避免了复杂的指令设计和高难度的编译器开发等,从而降
低了设计难度,提升了整体处理效率等。
[0035] 在图1所示基础上,处理器10中还可进一步包括以下之一或全部:直接内存存取(DMA,Direct Memory Access)模块、路由交换模块。
[0036] 优选地,可同时包括上述两个模块,相应地,图2为本申请所述处理器10第二实施例的组成结构示意图。如图2所示,包括:系统控制器101、存储阵列模块102、数据打包拆包
模块103、运算模块104、DMA模块105以及路由交换模块106。
[0037] 其中,DMA模块105,用于在系统控制器101的控制下实现外部存储数据与存储阵列模块103中的内部存储阵列数据的高速交换。
[0038] 路由交换模块106,用于将获取自数据打包拆包模块103的第一数据包发送给运算模块104,并将获取自运算模块104的第二数据包发送给数据打包拆包模块103。
[0039] 如图2所示,运算模块104中可进一步包括:通用运算模块1041以及激活运算模块1042。顾名思义,通用运算模块1041可用于进行通用运算,激活运算模块1042可用于进行激
活运算。
[0040] 系统控制器101可以采用简单的控制逻辑或状态机设计,也可包括复杂的处理器IP,IP为知识产权(Intellectual Propert)的缩写,如所述复杂的处理器IP可包括进阶精
简指令集机器(ARM,Advanced RISC Machine)、数字信号处理(DSP,Digital Signal 
Processing)、X86、微控制单元(MCU,Microcontroller Unit)内核IP等。
[0041] 存储阵列模块102可由多组静态随机存取存储器(SRAM,Static Random‑Access Memory)组成,支持多口高速同时读出或写入,并可采用矩阵的方式实现数据高速缓存或存
储。存储阵列模块102中存储的数据可包括神经网络模型数据、外部输入数据以及中间层的
临时数据等。
[0042] 数据打包拆包模块103可对存储阵列模块102进行数据读取和存储操作,对获取自系统控制器101的数据包信息及存储阵列模块102的数据包数据进行打包操作,并将打包得
到的第一数据包通过路由交换模块106发送给运算模块104,并将运算模块104通过路由交
换模块106返回的第二数据包进行拆包,将得到的运算结果数据存储到存储阵列模块102
中。
[0043] 相应地,路由交换模块106可接收数据打包拆包模块103和运算模块104的数据包,进行数据交换等。
[0044] 通用运算模块1041进行的通用运算可包括向量四则运算、逻辑运算、比较运算、点乘、累加、求和等通用的向量运算。激活运算模块1042进行的激活运算可包括非线性函数
sigmoid、tanh、relu、softmax运算中的一种或多种等。
[0045] 系统控制器101可对整体进行管理和控制,如前述的将数据包信息发送给数据打包拆包模块102,以便数据打包拆包模块102进行数据的打包拆包工作等,并可负责启动DMA
模块105以实现外部存储数据与存储阵列模块102中的内部存储阵列数据的高速交换等。
[0046] 可以看出,上述实施例中,处理器整体采用存储阵列模块+数据打包拆包模块+路由交换模块的主体结构,完成了神经网络存储到运算的整体交互,避免了复杂的指令设计
和高难度的编译器开发等,从而降低了设计难度,提升了整体处理效率等。
[0047] 图3为本申请所述处理器10第三实施例的组成结构示意图。如图3所示,包括:系统控制器101、存储阵列模块102、数据打包拆包模块103、运算模块104、DMA模块105以及路由
交换模块106。其中,存储阵列模块102中可包括N1个存储单元1021,每个存储单元1021可为
一组SRAM等,数据打包拆包模块103中可包括N2个数据打包拆包单元1031,每个数据打包拆
包单元1031可分别通过一个数据通道连接到路由交换模块106上,N1和N2均为大于一的正
整数,另外,通用运算模块1041中可包括M个运算单元10411,激活运算模块1042中可包括P
个运算单元10421,每个运算单元10411/10421可分别通过一个数据通道连接到路由交换模
块106上,M和P均为大于一的正整数。N1、N2、M和P的具体取值均可根据实际需要而定。
[0048] 相应地,数据打包拆包单元1031可将从存储单元1021元获取的数据包数据及从系统控制器101获取的数据包信息进行打包,利用数据通道,将打包得到的第一数据包通过路
由交换模块106发送给运算单元10411/10421进行运算处理,并利用数据通道,通过路由交
换模块106获取运算单元10411/10421返回的第二数据包,通过对第二数据包进行拆包得到
运算结果数据,存储到存储单元1021中。
[0049] 在实际应用中,系统控制器101可模拟出每次神经网络运算的细节等,如需要获取哪些数据、从哪里获取、需要进行何种运算等,相应地,可生成数据包信息,发送给相关的数
据打包拆包单元1031。各数据打包拆包单元1031可并行工作,如分别获取来自系统控制器
101的数据包信息,并进行打包拆包操作等。
[0050] 相应地,数据包信息中可包括:源通道、源地址、目的通道(运算通道)、运算类型及数据包长度等。数据打包拆包单元1031可从源通道对应的存储单元1021的源地址中获取数
据包数据,路由交换模块106可将获取到的第一数据包发送给目的通道对应的运算单元
10411/10421,运算单元10411/10421可根据运算类型,进行相应类型的运算处理。
[0051] 优选地,N1和N2的取值相同,即存储单元1021和数据打包拆包单元1031的个数相同,每个数据打包拆包单元1031可分别对应于一个存储单元1021,从对应的存储单元1021
获取数据包数据。这样,可以更好地保证各数据打包拆包单元1031的并行工作,假设两个数
据打包拆包单元1031均可从某一存储单元1021中获取数据,那么可能出现等待的情况,即
其中一个数据打包拆包单元1031需要等待另一个数据打包拆包单元1031获取完数据之后
才能获取数据,从而造成效率的降低等。
[0052] 上述处理方式中,通过划分单元,提升了并行处理能力,进而提升了数据的存储交互能力等。
[0053] 现有的以指令扩展为核心的NPU中,数据的存储交互采用统一的加载/存储(load/store)模式,顺序同步操作,效率低下。而采用本申请所述处理方式后,可并行地进行处理,
并避免了同步操作带来的等待时延等,从而使得系统控制和数据存储交互等更为高效。
[0054] 数据包信息中还可进一步包括:目的地址或存储策略。若数据包信息中包括目的地址,那么数据打包拆包单元1031可根据目的地址,将运算结果数据存储到对应的存储单
元1021中,若数据包信息中包括存储策略,那么数据打包拆包单元1031可根据存储策略,将
运算结果数据存储到对应的存储单元1021中。所述存储策略可为实现数据对齐的存储策
略。
[0055] 运算单元10411/10421完成运算之后,可用运算结果数据替换第一数据包中的数据段中的数据,并且,数据长度通常会发生变化,因此还需要修改数据包中的数据长度信息
等,将生成的第二数据包按照第一数据包的传输路径返回给数据打包拆包单元1031,数据
打包拆包单元1031将运算结果数据从第二数据包中解析出来后,就会涉及到运算结果数据
如何存储的问题。
[0056] 相应地,数据包信息中可包括:源通道、源地址、目的通道及目的地址等,即可包括源地址、目的地址和两侧的通道地址,这样,对于获取到的运算结果数据,数据打包拆包单
元1031可根据目的地址,将其存储到对应的存储单元1021中。或者,数据包信息中也可不包
括目的地址,而是包括存储策略,数据打包拆包单元1031可根据存储策略,将运算结果数据
存储到对应的存储单元1021中,从而实现数据的自动对齐等。
[0057] 所述存储策略具体为何种策略可根据实际需要而定,比如,可以包括向上对齐、向下对齐、对齐后其它地方如何处理(如进行填充处理)等。
[0058] 神经网络涉及的运算操作会造成数据缩小或膨胀,即上述数据长度会发生变化,很容易造成运算后的数据不对齐,现有的以指令扩展为核心的NPU中,通常通过额外的数据
转换或转置来解决数据对齐问题,这种额外的操作会降低整体处理效率,由于神经网络运
算涉及大量的反复存储运算交互迭代操作,因此对整体处理效率会造成很大的影响。而本
申请所述处理方式中,通过路由交换的方式实现存储和运算的自由交互,并通过存储策略
等自动完成存储,实现数据的自动对齐,实现方式简单,并提升了整体处理效率等。
[0059] 如图3所示,系统控制器101可通过外部总线接口与处理单元进行交互,DMA模块105可通过外部总线存储接口与双倍速率(DDR,Double Data Rate)外存储单元进行交互
等,具体实现为现有技术。
[0060] 以上是装置实施例的介绍,以下通过方法实施例,对本申请所述方案进行进一步说明。
[0061] 图4为本申请所述处理器实现方法实施例的流程图。如图4所示,包括以下具体实现方式。
[0062] 在401中,构建由系统控制器、存储阵列模块、数据打包拆包模块以及运算模块组成的处理器。
[0063] 在402中,利用处理器进行神经网络运算;其中,系统控制器用于将预定的数据包信息发送给数据打包拆包模块;数据打包拆包模块用于根据数据包信息从存储阵列模块获
取对应的数据包数据,将数据包数据与数据包信息进行打包,将打包得到的第一数据包发
送给运算模块进行运算处理,并获取运算模块返回的第二数据包,通过对第二数据包进行
拆包得到运算结果数据,存储到存储阵列模块中;存储阵列模块用于进行数据存储;运算模
块用于对获取到的第一数据包进行运算处理,根据运算结果数据生成第二数据包,返回给
数据打包拆包模块。
[0064] 在上述基础上,还可在处理器中增加DMA模块,DMA模块可用于在系统控制器的控制下实现外部存储数据与存储阵列模块中的内部存储阵列数据的高速交换。
[0065] 此外,还可在处理器中增加路由交换模块,路由交换模块可用于将获取自数据打包拆包模块的第一数据包发送给运算模块,并将获取自运算模块的第二数据包发送给数据
打包拆包模块。
[0066] 运算模块可包括:用于进行通用运算的通用运算模块以及用于进行激活运算的激活运算模块。
[0067] 另外,存储阵列模块中可包括N1个存储单元,数据打包拆包模块中可包括N2个数据打包拆包单元,每个数据打包拆包单元分别通过一个数据通道连接到路由交换模块上,
N1和N2均为大于一的正整数。通用运算模块中可包括M个运算单元,激活运算模块中可包括
P个运算单元,每个运算单元可分别通过一个数据通道连接到路由交换模块上,M和P均为大
于一的正整数。
[0068] 相应地,数据打包拆包单元可用于将从存储单元获取的数据包数据及从系统控制器获取的数据包信息进行打包,利用数据通道,将打包得到的第一数据包通过路由交换模
块发送给运算单元进行运算处理,并利用数据通道,通过路由交换模块获取运算单元返回
的第二数据包,通过对第二数据包进行拆包得到运算结果数据,存储到存储单元中。
[0069] 数据包信息中可包括:源通道、源地址、目的通道以及运算类型。相应地,数据包数据可为数据打包拆包单元从源通道对应的存储单元的源地址中获取的数据包数据,获取到
第一数据包的运算单元可为路由交换模块确定出的目的通道对应的运算单元,运算处理可
为运算单元进行的所述运算类型的运算处理。
[0070] 优选地,N1和N2的取值相同,每个数据打包拆包单元分别对应于一个存储单元,从对应的存储单元获取数据包数据。
[0071] 数据包信息中还可进一步包括:目的地址或存储策略。若数据包信息中包括目的地址,那么数据打包拆包单元可根据目的地址,将运算结果数据存储到对应的存储单元中,
若数据包信息中包括存储策略,那么数据打包拆包单元可根据存储策略,将运算结果数据
存储到对应的存储单元中。所述存储策略可为实现数据对齐的存储策略。
[0072] 图4所示方法实施例的具体工作流程请参照前述装置实施例中的相关说明,不再赘述。
[0073] 总之,采用本申请方法实施例所述方案,提出了一种存算一体的实现方式,在处理器中完成了神经网络存储到运算的整体交互,避免了复杂的指令设计和高难度的编译器开
发等,从而降低了设计难度,提升了整体处理效率等。
[0074] 根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
[0075] 如图5所示,是根据本申请实施例所述方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、
刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装
置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所
示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述
的和/或者要求的本申请的实现。
[0076] 如图5所示,该电子设备包括:一个或多个处理器Y01、存储器Y02,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安
装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进
行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的
显示设备)上显示图形用户界面的图形信息的指令。在其它实施方式中,若需要,可以将多
个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设
备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理
器系统)。图5中以一个处理器Y01为例。
[0077] 存储器Y02即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的方
法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执
行本申请所提供的方法。
[0078] 存储器Y02作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的方法对应的程序指令/模块。处理器
Y01通过运行存储在存储器Y02中的非瞬时软件程序、指令以及模块,从而执行服务器的各
种功能应用以及数据处理,即实现上述方法实施例中的方法。
[0079] 存储器Y02可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据电子设备的使用所创建的数
据等。此外,存储器Y02可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少
一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器Y02可
选包括相对于处理器Y01远程设置的存储器,这些远程存储器可以通过网络连接至电子设
备。上述网络的实例包括但不限于互联网、企业内部网、区块链网络、局域网、移动通信网及
其组合。
[0080] 电子设备还可以包括:输入装置Y03和输出装置Y04。处理器Y01、存储器Y02、输入装置Y03和输出装置Y04可以通过总线或者其他方式连接,图5中以通过总线连接为例。
[0081] 输入装置Y03可接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或
者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置Y04可以包括显示设备、辅助照明装
置和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器、发光
二极管显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
[0082] 此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用集成电路、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可
以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一
个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可
编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,
并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0083] 这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些
计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指
令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光
盘、存储器、可编程逻辑装置),包括,接收作为机器可读信号的机器指令的机器可读介质。
术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
[0084] 为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,阴极射线管或者液晶显示器监视器);以及键
盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供
给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是
任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包
括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0085] 可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算
系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界
面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部
件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数
字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网、广
域网、区块链网络和互联网。
[0086] 计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端‑服务器关系的计
算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或
云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在
的管理难度大,业务扩展性弱的缺陷。
[0087] 应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只
要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
[0088] 上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请
的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。