一种时分复用的通用神经网络处理器的制造方法

文档序号:9433184阅读:871来源:国知局
一种时分复用的通用神经网络处理器的制造方法
【技术领域】
[0001]本发明涉及加速器和处理器体系结构及设计方法,具体涉及针对人工神经网络(Artificial Neural Network,简称 ANN)的硬件加速技术。
【背景技术】
[0002]人工神经网络,简称神经网络,是一种运算模型,由大量的节点(或称神经元)相互连接构成。每个节点代表一种特定的输出函数,又称为激励函数(activat1nfunct1n),其可以是线性函数、斜面函数、阈值函数、S形函数和双极S形函数等。每两个节点间的连接都代表一个对于通过该连接的信号的加权重,称之为权重,这相当于神经网络的记忆。神经网络的输出则依网络的连接方式、权重和激励函数的不同而不同。神经网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。
[0003]目前,神经网络的应用通常使用图形处理单元(Graphics Processing Unit,简称GPU)或现场可编程门阵列(FPGA)来实现。在使用GPU的实现中,由于GPU的运算效率较差,并且GPU的指令和结构都是针对图形/图像而不是针对神经网络的计算设计的,而图形/图像的计算和神经网络的计算有着很大差别,因此使用GPU计算神经网络会导致效率不高,并且GPU的指令是固定的,控制起来不够灵活;在使用FPGA的实现中,由于FPGA自身工作频率很难提高,因此制约了计算性能的进一步提高。
[0004]为解决上述效率、性能等问题,现有的神经网络加速器通常使用直接拓扑映射的方法,在结构上通过将神经网络全展开的方式设计一个与之拓扑结构一一对应的硬件结构,通过解析指令实现神经网络计算。这种方法的计算效率较高,但缺点也很突出:一方面,随着深度学习的普及,实际应用中所使用的神经网络规模越来越庞大,拓扑映射的方法难以适用;另一方面,采用拓扑映射的方法设计的加速器只适用于一种特定结构的神经网络,而不能适用于其他结构的神经网络,即无法在相同的硬件加速器上运行不同的神经网络算法。
[0005]综上,现有的神经网络加速器不适用于计算大规模的神经网络且通用性较差。

【发明内容】

[0006]为解决上述现有神经网络加速器存在的缺陷,根据本发明的一个实施例,提供一种时分复用的通用神经网络处理器,包括:
[0007]至少一个存储单元(100),用于存储指令和数据;
[0008]至少一个存储单元控制器(101),其中每个存储单元控制器(101)与所述至少一个存储单元(100)中的一个相对应,用于对相应的存储单元(100)进行访问;
[0009]至少一个算术逻辑单元(103),用于执行神经网络计算;以及
[0010]控制单元(102),与所述至少一个存储单元控制器(101)和所述至少一个算术逻辑单元(103)相连,用于经由所述至少一个存储单元控制器(101)获得所述至少一个存储单元(100)存储的指令,并且解析该指令以时分复用地控制所述至少一个算术逻辑单元(103)执行计算。
[0011]上述通用神经网络处理器中,所述控制单元(102)包括:
[0012]译码子单元,用于对经由所述至少一个存储单元控制器(101)从所述至少一个存储单元(100)获得的指令进行解析;以及
[0013]调度子单元,用于根据所述译码子单元的解析结果,对所述至少一个存储单元控制器(101)和所述至少一个算术逻辑单元(103)发送控制信号,以调度至少一个存储单元控制器(101)和所述至少一个算术逻辑单元(103)进行操作。
[0014]上述通用神经网络处理器中,所述控制单元(102)用于根据解析指令得到的微操作,控制所述至少一个算术逻辑单元(103)彼此并行且独立地执行计算,其中计算所涉及的数据彼此独立。
[0015]上述通用神经网络处理器中,所述控制单元(102)用于根据解析指令得到的微操作,控制所述至少一个算术逻辑单元(103)中的每个算术逻辑单元(103)顺序地计算神经元响应值。
[0016]上述通用神经网络处理器中,所述控制单元(102)根据解析的指令所指示的顺序,控制每个算术逻辑单元(103)在不同时段计算不同神经元的响应值。
[0017]上述通用神经网络处理器中,所述控制单元(102)用于根据解析指令得到的微操作向所述至少一个存储单元控制器(101)发送控制信号,并由所述至少一个存储单元控制器(101)通过访问相应的存储单元(100)向所述算术逻辑单元(103)发送神经元响应值计算所涉及的数据;所述控制单元(102)还用于根据解析指令得到的微操作向所述算术逻辑单元(103)发送控制信号,以根据解析得到的激励函数控制所述算术逻辑单元(103)使用从所述至少一个存储单元控制器(101)获得的数据执行一次神经元响应值的计算。
[0018]上述通用神经网络处理器中,所述控制单元(102)还用于控制所述算术逻辑单元
(103)将计算结果发送给所述至少一个存储单元控制器(101),由所述至少一个存储单元控制器(101)将该计算结果写入相应的存储单元(100)。
[0019]上述通用神经网络处理器中,所述至少一个算术逻辑单元(103)中的每个算术逻辑单元(103)包括用于执行激励函数计算的运算部件。
[0020]上述通用神经网络处理器还可以包括:至少一个输入输出接口(104),与所述控制单元(102)和所述至少一个存储单元控制器(101)相连,用于访问外部数据源。所述控制单元(102)还根据解析指令得到的微操作向所述至少一个输入输出接口(104)发送控制信号,由所述至少一个输入输出接口(104)将从外部数据源获得的数据发送给所述至少一个存储单元控制器(101),并由所述至少一个存储单元控制器(101)将该数据写入相应的存储单元(100)。
[0021]上述通用神经网络处理器中,每个存储单元(100)可由一个或多个数据存储部件组成,并且每个算术逻辑单元(103)与所述至少一个存储单元(100)中的一个或多个数据存储部件相关联。
[0022]本发明提供的神经网络处理器通用性强,适用于计算大规模神经网络,并且解决了现有神经网络加速器由于采用拓扑映射方式而导致的硬件开销及功耗大的问题。
[0023]此外,本发明提供的神经网络处理器可应用于文字处理、语音识别与处理、多国语言翻译、图像识别、视频识别、生物特征识别、智能控制等领域,可用作智能计算处理器,也可以用作用于机器人、智能硬件等领域的控制处理器,可用于构建大规模神经网络计算超级计算机,用于实现高智能、大规模大脑模拟、类脑计算、类人计算,也可用于移动设备、机器人等移动场景,可结合低功耗计算,实现无缝智能。
【附图说明】
[0024]以下参照附图对本发明实施例作进一步说明,其中:
[0025]图1是根据本发明一个实施例的通用神经网络处理器的结构框图;
[0026]图2是根据本发明一个实施例的线性激励函数的计算方法示意图;
[0027]图3是根据本发明一个实施例的神经网络中同一层神经元响应值的计算方法示意图;
[0028]图4是根据本发明一个实施例的神经网络中神经元响应值的计算方法示意图。
【具体实施方式】
[0029]为了使
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1