一种卷积神经网络的运算装置及服务器制造方法及图纸

技术编号:31161840 阅读:17 留言:0更新日期:2021-12-04 10:30
本发明专利技术公开了一种卷积神经网络的运算装置及服务器,装置包括:主处理器;与主处理器连接的协处理器,协处理器包括寄存器模块以及运算模块,寄存器模块包含多个寄存器;外部存储器,外部存储器分别与主处理器以及协处理器连接,并且存储有卷积神经网络卷积运算的输入输出数据;其中,主处理器配置为基于RISC

【技术实现步骤摘要】
一种卷积神经网络的运算装置及服务器


[0001]本专利技术涉及神经网络
,尤其涉及一种卷积神经网络的运算装置及服务器。

技术介绍

[0002]近年来,随着对卷积神经网络(CNN)的研究越来越深入,卷积神经网络模型越来越多样,精度越来越高,同时模型也越来越复杂,参数越来越多,由此带来的计算量也越来越大,由卷积神经网络对硬件性能的要求也更高。过去的半个多世纪,半导体行业一直遵循摩尔定律高速发展,但是当半导体制程节点到了5nm甚至更小的节点之后,单纯靠提升工艺制程来提升芯片性能的方法已经无法充分满足需求,半导体行业也逐步进入了后摩尔时代。在这一时期,已经无法单纯依靠工艺制程进步推动芯片性能提升,而应该更多地依靠架构创新。
[0003]RISC

V是一种基于精简指令集(RISC)原则的指令集架构(ISA),RISC

V指令集可以自由地用于任何目的,允许任何人设计、制造和销售RISC

V芯片和软件而不必支付给任何公司专利费。RISC

V指令集具备的开放、模块化和可扩展的特点较好地满足了特定领域架构的需求,用户可以根据需求添加自定义指令满足个性化需求,也为DSA提供了一种实现方案。
[0004]当前存在多种CNN实现方式,例如,基于标准计算库在通用CPU上实现、基于GPU(Graphics Processing Unit,图形处理器,又称显示核心、视觉处理器、显示芯片)实现、以及基于ASIC的加速实现方案。通用CPU对于CNN来讲计算效率较低;GPU的SIMD(Single Instruction Multiple Data,单指令多数据流,能够复制多个操作数并把它们打包在大型寄存器的一组指令集)结构恰好可以用来加速CNN,但GPU的能效较低;相比之下,基于ASIC定制化的特点可以提供能效方面的优势。尽管基于ASIC实现CNN加速的方案可以提供较高的能效,但这种方案灵活性有限,难以满足不断更新的CNN模型对灵活性的要求。

技术实现思路

[0005]有鉴于此,本专利技术提出了一种卷积神经网络的运算装置及服务器,解决了ASIC加速方案灵活性不足的问题,卷积运算速度快,同时该装置的灵活性好。
[0006]基于上述目的,本专利技术实施例的一方面提供了一种卷积神经网络的运算装置,具体包括:
[0007]主处理器;
[0008]与所述主处理器连接的协处理器,所述协处理器包括寄存器模块以及运算模块,所述寄存器模块包含多个寄存器;
[0009]外部存储器,所述外部存储器分别与所述主处理器以及所述协处理器连接,并且存储有卷积神经网络卷积运算的输入输出数据;
[0010]其中,所述主处理器配置为基于RISC

V定义多个指令,并向所述协处理器发送所
述指令;所述协处理器配置为解析所述指令,并将解析后的指令发送给对应的寄存器;所述寄存器配置为基于接收到的指令,为所述计算模块提供运算参数;所述运算模块配置为基于接收到所述运算参数从所述外部存储模块读取输入输出数据进行卷积运算。
[0011]在一些实施方式中,所述输入输出数据包括特征图和权重,所述指令包括:协处理器寄存器配置指令、协处理器寄存器读取指令、协处理器缓存载入指令、协处理器预加载指令和MAC阵列启动指令;
[0012]其中,所述协处理器寄存器配置指令用于配置协处理器中的寄存器;所述协处理器寄存器读取指令用于读取协处理器的寄存器;所述协处理器缓存载入指令用于从外部存储器向缓存模块载入所述特征图或所述权重;所述协处理器预加载指令用于从所述缓存模块向数据预加载模块预加载所述特征图或所述权重;MAC阵列启动指令用于启动MAC阵列执行乘加运算。
[0013]在一些实施方式中,所述卷积运算包括MAC阵列运算与累加运算,所述运算模块包括:
[0014]与所述主处理器连接的接口适配模块,所述接口适配模块与所述主处理器通过命令请求通道与命令响应通道连接,所述接口适配模块配置为接收所述主处理器通过命令请求通道发送的指令,并通过所述寄存器模块执行所述的指令,并通过命令响应通道将指令执行结果返回所述主处理器;
[0015]与所述接口适配模块连接的指令译码模块,所述指令译码模块配置为接收所述接口适配模块发出的指令,并对所述指令进行译码;
[0016]与所述指令译码模块连接的寄存器模块,所述寄存器模块配置为接收所述指令译码模块译码后的指令,并判断能否将所述指令写入对应的寄存器,并基于写入的所述指令输出对应的信号;
[0017]与所述寄存器模块连接的缓存模块,所述缓存模块配置为响应于接收到对应的寄存器输出的数据搬移信息,从所述外部存储器读取对应所述特征图或所述权重并保存;
[0018]分别与所述寄存器模块和所述缓存模块连接的数据载入模块;所述数据载入模块配置为响应于接收到对应寄存器发出的数据载入启动信号从所述外部存储器读取所述特征图或所述权重,并写入所述缓存模块;
[0019]分别与所述寄存器模块和所述数据载入模块连接的数据预加载模块,所述数据预加载模块配置为响应于接收到所述数据载入模块发出的所述特征图或所述权重载入完成信号并且接收到对应的寄存器发出的所述特征图或所述权重的预加载启动信号,按预设周期从所述缓存模块读取所述特征图或所述权重并保存读取的数据;
[0020]分别与所述寄存器模块和所述数据预加载模块连接的MAC阵列,所述MAC阵列配置为响应于接收到对应的寄存器发出的MAC阵列启动信号从所述数据预加载模块读取所述数据,并基于所述数据进行MAC阵列计算,并输出阵列计算结果;
[0021]分别与所述寄存器模块和所述MAC阵列连接的累加器模块,所述累加器模块配置为接收所述MAC阵列输出的计算结果,并对接收的所述计算结果进行累加运算,并保存每次累加运算的结果以进行下一次累加运算,以及响应于累加运算结束后,输出并保存最终计算结果,并由所述累加器模块输出计算完成标志信号;
[0022]分别与所述寄存器模块、所述缓存模块和所述累加器模块连接的数据写出模块,
所述数据写出模块配置为接收所述累加器模块输出的所述计算完成标志信号,从所述累加器模块读取所述累加运算结果,并写入所述缓存模块或所述外部存储器;
[0023]分别与所述数据载入模块、所述数据写出模块和所述外部存储器连接的DMA控制器,所述DMA控制器配置为进行所述数据载入模块或所述数据写出模块与所述外部存储器之间的数据搬移。
[0024]在一些实施方式中,所述累加器模块还配置为接收对应的寄存器发出的累加运算总数量,并对所述累加运算的累加次数进行计数;
[0025]响应于所述累加次数达到所述累加运算总数量,输出并保存最终计算结果,并由所述累加器输出计算完成标志信号。
[0026]在一些实施方式中,所述缓存模块包括:特征图缓存以及权重缓存;所述数据载入模块包括分别与特征图缓存以及权重缓存连接的特征图载入模块以及权重本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种卷积神经网络的运算装置,其特征在于,包括:主处理器;与所述主处理器连接的协处理器,所述协处理器包括寄存器模块以及运算模块,所述寄存器模块包含多个寄存器;外部存储器,所述外部存储器分别与所述主处理器以及所述协处理器连接,并且存储有卷积神经网络卷积运算的输入输出数据;其中,所述主处理器配置为基于RISC

V定义多个指令,并向所述协处理器发送所述指令;所述协处理器配置为解析所述指令,并将解析后的指令发送给对应的寄存器;所述寄存器配置为基于接收到的指令,为所述计算模块提供运算参数;所述运算模块配置为基于接收到所述运算参数从所述外部存储模块读取输入输出数据进行卷积运算。2.根据权利要求1所述的装置,其特征在于,所述输入输出数据包括特征图和权重,所述指令包括:协处理器寄存器配置指令、协处理器寄存器读取指令、协处理器缓存载入指令、协处理器预加载指令和MAC阵列启动指令;其中,所述协处理器寄存器配置指令用于配置协处理器中的寄存器;所述协处理器寄存器读取指令用于读取协处理器的寄存器;所述协处理器缓存载入指令用于从外部存储器向缓存模块载入所述特征图或所述权重;所述协处理器预加载指令用于从所述缓存模块向数据预加载模块预加载所述特征图或所述权重;MAC阵列启动指令用于启动MAC阵列执行乘加运算。3.根据权利要求1所述的装置,其特征在于,所述卷积运算包括MAC阵列运算与累加运算,所述运算模块包括:与所述主处理器连接的接口适配模块,所述接口适配模块与所述主处理器通过命令请求通道与命令响应通道连接,所述接口适配模块配置为接收所述主处理器通过命令请求通道发送的指令,并通过所述寄存器模块执行所述的指令,并通过命令响应通道将指令执行结果返回所述主处理器;与所述接口适配模块连接的指令译码模块,所述指令译码模块配置为接收所述接口适配模块发出的指令,并对所述指令进行译码;与所述指令译码模块连接的寄存器模块,所述寄存器模块配置为接收所述指令译码模块译码后的指令,并判断能否将所述指令写入对应的寄存器,并基于写入的所述指令输出对应的信号;与所述寄存器模块连接的缓存模块,所述缓存模块配置为响应于接收到对应的寄存器输出的数据搬移信息,从所述外部存储器读取对应所述特征图或所述权重并保存;分别与所述寄存器模块和所述缓存模块连接的数据载入模块;所述数据载入模块配置为响应于接收到对应寄存器发出的数据载入启动信号从所述外部存储器读取所述特征图或所述权重,并写入所述缓存模块;分别与所述寄存器模块和所述数据载入模块连接的数据预加载模块,所述数据预加载模块配置为响应于接收到所述数据载入模块发出的所述特征图或所述权重载入完成信号并且接收到对应的寄存器发出的所述特征图或所述权重的预加载启动信号,按预设周期从所述缓存模块读取所述特征图或所述权重并保存读取的数据;分别与所述寄存器模块和所述数据预加载模块连接的MAC阵列,所述MAC阵列配置为响
应于接收到对应的寄存器发出的MAC阵列启动信号从所述数据预加载模块读取所述数据,并基于所述数据进行MAC阵列计算,并输出阵列计算结果;分别与所述寄存器模块和所述MAC阵列连接的累加器模块,所述累加器模块配置为接收所述MAC阵列输出的计算结果,并对接收的所述计算结果进行累加运算,并保存每次累加运算的结果以进行下一次累加运算,以及响应于累加运算结束后,输出并保存最终计算结果,并由所述累加器模块输出计算完成标...

【专利技术属性】
技术研发人员:杨继林
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1