一种卷积神经网络加速方法、系统、终端及存储介质与流程

文档序号:21273627发布日期:2020-06-26 23:06阅读:182来源:国知局
一种卷积神经网络加速方法、系统、终端及存储介质与流程

本发明涉及卷积神经网络技术领域,具体涉及一种卷积神经网络加速方法、系统、终端及存储介质。



背景技术:

随着大数据时代的到来,海量数据随着计算机性能的提高呈现指数级的爆发式增长,以卷积神经网络为代表的各类深度学习算法得到了广泛应用。然而,基于神经网络层次式和卷积计算结构,带来的巨大计算量和参数越来越成为卷积神经网络的性能瓶颈,特别是大量的参数存储和访存延迟成为了计算瓶颈。



技术实现要素:

针对现有技术的上述不足,本发明提供一种卷积神经网络加速方法、系统、终端及存储介质,以解决上述技术问题。

第一方面,本发明提供一种卷积神经网络加速方法,包括:

利用源码生成器生成risc-v处理器软核;

通过设置所述risc-v处理器软核的扩展dma、内存控制器和分布式内存模块构建risc-v单核;

利用所述risc-v单核构造预设规格的众核加速阵列;

将所述众核加速阵列接入卷积神经网络系统,所述卷积神经网络系统包括主处理器和卷积神经网络硬件。

进一步的,所述利用源码生成器生成risc-v处理器软核,包括:

利用开源的risc-vrocketchip生成器通过内核生成参数配置;

根据所述参数配置生成risc-v32位处理器的软核rtl源码。

进一步的,所述通过设置所述risc-v处理器软核的扩展dma、内存控制器和分布式内存模块构建risc-v单核,包括:

基于所述risc-v处理器软核的axi总线接口扩展直接内存存取模块、内存控制器和分布式内存模块,所述直接内存存取模块连接卷积神经网络硬件。

进一步的,所述利用risc-v单核构造预设规格的众核加速阵列,包括:

根据卷积神经网络的计算量需求设置众核加速阵列的risc-v单核数量;

构建设置数量的risc-v单核组成众核加速阵列。

进一步的,所述方法还包括:

利用开源的risc-v工具链生成64位risc-v双核处理器;

向所述risc-v双核处理器添加直接内存存取模块和内存设备;

利用risc-v生态中开源固件和linux系统,配置双核risc-v系统;

在所述双核risc-v系统设置rocc转换接口。

进一步的,所述在双核risc-v系统设置rocc转换接口,包括:

利用开源的risc-v工具链生成rocc转换接口;

利用所述rocc转换接口分别连接众核加速阵列和卷积神经网络硬件。

第二方面,本发明提供一种卷积神经网络加速系统,包括:

主处理器、卷积神经网络硬件和众核加速阵列,所述主处理器与卷积神经网络通信连接;所述众核加速阵列分别与主处理器和卷积神经网络硬件互联;

所述众核加速阵列包括多个risc-v单核,所述risc-v单核risc-v32位处理器、直接内存存取模块、内存控制器和分布式内存模块。

进一步的,所述众核加速阵列通过rocc转换接口与主处理器互联;所述众核加速阵列通过直接内存存取模块与卷积神经网络互联。

第三方面,提供一种终端,包括:

处理器、存储器,其中,

该存储器用于存储计算机程序,

该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。

第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

本发明的有益效果在于,

本发明提供的卷积神经网络加速方法、系统、终端及存储介质,通过构建基于risc-v众核架构的众核加速序列,将众核加速序列接入卷积神经网络系统,通过并行访存的方式,实现卷积神经网络中卷积计算的参数并发访存,为卷积神经网络的卷积计算提供高速的参数访存,以增大卷积计算中访存带宽,消除现有神经网络面临的访存带宽瓶颈。本发明能够大大提高计算过程中的访存带宽,降低访存延迟的同时,也会提高卷积神经网络的计算性能,实现卷积神经网络的计算加速。

此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一个实施例的方法的示意性流程图。

图2是本发明一个实施例的系统的示意性架构图。

图3为本发明实施例提供的一种终端的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

下面对本发明中出现的关键术语进行解释。

risc-v架构是最新一代开放指令集架构(isa),属于精简指令集,使用bsdlicense开源协议,具有轻量化、低功耗的特点。用户可以基于risc-v指令集的开源软件和硬件生态快速设计实现基于risc-v指令集的处理器,生态包括isa规范、嵌入式和通用计算的完整软件堆栈、各种risc-v处理器以及系统级的硬件基础架构。risc-v设计方式采用模块化设计,可以通过不同模块指令的组合满足不同应用需求,而且还具备扩展指令功能,用户可以根据实际需求进行定制指令功能和相应实现。基于上述特点,risc-v特别适合轻量级、众核化的应用场景,尤其适合众核加速器的设计实现。

dma(directmemoryaccess,直接内存存取),允许不同速度的硬件装置来沟通,而不需要依赖于cpu的大量中断负载,使得外围设备可以通过dma控制器直接访问内存。

图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种卷积神经网络加速系统。

如图1所示,该方法100包括:

步骤110,利用源码生成器生成risc-v处理器软核;

步骤120,通过设置所述risc-v处理器软核的扩展dma、内存控制器和分布式内存模块构建risc-v单核;

步骤130,利用所述risc-v单核构造预设规格的众核加速阵列;

步骤140,将所述众核加速阵列接入卷积神经网络系统,所述卷积神经网络系统包括主处理器和卷积神经网络硬件。

为了便于对本发明的理解,下面以本发明卷积神经网络加速方法的原理,结合实施例中对卷积神经网络进行加速的过程,对本发明提供的卷积神经网络加速方法做进一步的描述。

具体的,所述卷积神经网络加速方法包括:

s1、利用源码生成器生成risc-v处理器软核。

生成risc-v处理器软核:利用开源的risc-vrocketchip生成器(加州大学伯克利分校开发的一套基于risc-v精简指令集的处理器源码生成器),通过内核生成参数配置,生成risc-v32位处理器的软核rtl源码。

s2、通过设置所述risc-v处理器软核的扩展dma、内存控制器和分布式内存模块构建risc-v单核。

对s1中生成的处理器源码,基于生成的axi总线接口扩展dma、内存控制器和分布式内存模块,构建最简的32位risc-v单核处理系统。

s3、利用所述risc-v单核构造预设规格的众核加速阵列。

根据卷积神经网络计算量设置众核加速阵列规格,本实施例设置8×8的众核加速阵列,即创建64个32位risc-v单核处理系统,构成众核加速阵列。

s4、将所述众核加速阵列接入卷积神经网络系统,所述卷积神经网络系统包括主处理器和卷积神经网络硬件。

构建risc-v主处理器系统:利用开源的risc-v工具链生成64位risc-v双核处理器,并添加ddr控制器和内存设备,利用risc-v生态中开源固件和linux系统,设计双核risc-v系统。主处理器系统也可以采用现有的其他架构处理器,但最终需要设计rocc转换接口,实现与加速阵列的互连。构建rocc接口模块的方法为:利用开源的risc-v工具链生成rocc接口模块,并与神经网络和rv_32计算加速阵列互连。

构建神经网络处理模块:卷积神经网络可以采用普通的多层卷积神经网络架构实现,包括数据输入层、卷积计算层、激励层、池化层和全连接层等。本发明中,需要将卷积计算所有的存储和访存接口提取,并通过buffer(数据缓存模块)由dma接口与众核加速阵列互连。

将上述设计或生成的模块集成,加载系统固件,启动系统,并加载应用程序进行测试和调试。

如图2示,本实施例提供一种卷积神经网络加速系统,包括:

主处理器、卷积神经网络硬件和众核加速阵列,所述主处理器与卷积神经网络通信连接;所述众核加速阵列分别与主处理器和卷积神经网络硬件互联;

所述众核加速阵列包括多个risc-v单核,所述risc-v单核risc-v32位处理器、直接内存存取模块、内存控制器和分布式内存模块。

具体的,主处理器包括:64位risc-v双核处理器、ddr控制器、内存设备、开源固件和linux系统。还包括两个相同的rocc转换接口,分别与卷积神经网络硬件和众核加速阵列互连。

众核加速阵列包括:8x8的rv_32阵列,即64个rv_32计算单元。rv_32计算单元包括:risc-v32位处理器、axi总线接口扩展dma、内存控制器和分布式内存模块。

卷积神经网络硬件包括:数据输入层、卷积计算层、激励层、池化层和全连接层等。本发明的卷积神经网络实现取决于用户实际的需要加速的神经网络类型,本发明中示例系统采用普通的多层卷积神经网络。

本实施例中,采用普通的多层卷积神经网络硬件,将卷积神经网络硬件所有的存储和访存接口提取,并通过buffer(数据缓存模块)由dma接口与众核加速阵列互连。

图3为本发明实施例提供的一种终端系统300的结构示意图,该终端系统300可以用于执行本发明实施例提供的卷积神经网络加速方法。

其中,该终端系统300可以包括:处理器310、存储器320及通信单元330。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

其中,该存储器320可以用于存储处理器310的执行指令,存储器320可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。当存储器320中的执行指令由处理器310执行时,使得终端300能够执行以下上述方法实施例中的部分或全部步骤。

处理器310为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(integratedcircuit,简称ic)组成,例如可以由单颗封装的ic所组成,也可以由连接多颗相同功能或不同功能的封装ic而组成。举例来说,处理器310可以仅包括中央处理器(centralprocessingunit,简称cpu)。在本发明实施方式中,cpu可以是单运算核心,也可以包括多运算核心。

通信单元330,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。

本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-onlymemory,简称:rom)或随机存储记忆体(英文:randomaccessmemory,简称:ram)等。

尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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