融合存储器、存储系统及深度学习计算方法与流程

文档序号:19570867发布日期:2019-12-31 18:55阅读:285来源:国知局
融合存储器、存储系统及深度学习计算方法与流程

本发明涉及人工智能技术领域,特别是涉及一种融合存储器、存储系统及深度学习计算方法。



背景技术:

目前,普遍采用计算节点和存储节点的分层耦合架构,对数据进行深度学习计算,如图1所示。在计算节点中,部署有针对深度学习的au(accelerationunit,加速处理模块),au为通过硬件加速实现深度学习计算的芯片,例如tpu(tensorprocessingunit,张量处理器)、gpu(graphicsprocessingunit,图像处理器)等,au作为协处理器由计算节点中的cpu(centralprocessingunit,中央处理器)负责调度;深度学习计算所需要的待计算数据存储在存储节点中。

上述计算节点与存储节点的分层耦合架构中,进行深度学习计算的流程如图2所示,数据由外部写入到存储节点;由计算节点的cpu将待计算数据从存储节点加载到计算节点,并通过计算节点的au进行深度学习加速计算,得到深度学习计算结果。

由于存储节点与计算节点之间待计算数据的搬移,易受外部环境的影响,待计算数据的传输过程中不可避免的存在时延和丢包的问题,导致深度学习计算的计算效率较低。



技术实现要素:

本发明实施例的目的在于提供一种融合存储器、存储系统及深度学习计算方法,以提高深度学习计算的计算效率。具体技术方案如下:

第一方面,本发明实施例提供了一种融合存储器,所述融合存储器包括:加速存储控制器及存储芯片;所述加速存储控制器,包括:处理器、数据通路模块及加速处理模块;

所述处理器,用于根据接收到的存储命令,调度所述数据通路模块,存储外部输入的数据至所述存储命令对应的存储芯片,所述数据包括待计算数据;根据获取到的计算控制指令,按照所述计算控制指令对应的加载方式,调度所述数据通路模块,将所述待计算数据加载至所述加速处理模块;

所述数据通路模块,用于为存储所述数据提供传输通路,以及为加载所述待计算数据提供传输通路;

所述加速处理模块,用于通过硬件加速,对所述待计算数据进行深度学习计算;

所述存储芯片,用于存储所述数据。

可选的,所述数据通路模块,包括:协议处理模块、存储访问模块、错误编解码模块以及存储控制模块;

所述处理器,用于根据接收到的存储命令,通过对所述协议处理模块、所述存储访问模块、所述错误编解码模块以及所述存储控制模块进行调度,存储外部输入的数据至所述存储命令对应的存储芯片。

可选的,所述存储芯片,包括:与非门型闪存芯片;所述协议处理模块,包括:存储接口协议处理模块;所述存储控制模块,包括:闪存控制层模块。

可选的,所述加速存储控制器,还包括:动态随机存储器;

所述动态随机存储器,用于缓冲所述待计算数据;

所述数据通路模块,还用于为外部输入的待计算数据缓冲至所述动态随机存储器提供传输通路;

所述处理器,具体用于在所述计算控制指令为计算与写操作的计算控制指令时,调度所述数据通路模块,将外部输入的待计算数据缓冲至所述动态随机存储器,并调度所述数据通路模块,将所述动态随机存储器中缓冲的所述待计算数据加载至所述加速处理模块。

可选的,所述数据通路模块,还用于为所述存储芯片中存储的待计算数据缓冲至所述动态随机存储器提供传输通路;

所述处理器,具体用于在所述计算控制指令为读操作与计算的计算控制指令时,调度所述数据通路模块,将所述存储芯片中存储的待计算数据缓冲至所述动态随机存储器,并调度所述数据通路模块,将所述动态随机存储器中缓冲的所述待计算数据加载至所述加速处理模块。

可选的,所述数据通路模块,包括:数据访问模块;

所述处理器,具体用于通过所述数据访问模块,将所述动态随机存储器中缓冲的所述待计算数据加载至所述加速处理模块。

可选的,所述加速处理模块,包括:矩阵处理模块、池化加速模块及修正线性激活加速模块;

所述矩阵处理模块,用于通过硬件加速,对所述待计算数据进行卷积计算,得到卷积结果;

所述池化加速模块,用于通过硬件加速,对所述卷积结果进行池化操作,得到池化结果;

所述修正线性激活加速模块,用于通过硬件加速,对所述卷积结果及所述池化结果进行激活函数的计算。

第二方面,本发明实施例提供了一种基于深度学习的存储系统,所述系统包括:核心处理器、多个融合存储器及计算结果存储器;

所述核心处理器,用于将数据输入相应的融合存储器;

所述融合存储器包括:加速存储控制器及存储芯片;所述加速存储控制器,包括:处理器、数据通路模块及加速处理模块;所述处理器,用于根据接收到的存储命令,调度所述数据通路模块,存储外部输入的数据至所述存储命令对应的存储芯片,所述数据包括待计算数据,根据获取到的计算控制指令,按照所述计算控制指令对应的加载方式,调度所述数据通路模块,将所述待计算数据加载至所述加速处理模块;所述数据通路模块,用于为存储所述数据提供传输通路,以及为加载所述待计算数据提供传输通路;所述加速处理模块,用于通过硬件加速,对所述待计算数据进行深度学习计算,得到计算结果;所述处理器,还用于输出所述计算结果至所述计算结果存储器;所述存储芯片,用于存储所述数据;

所述计算结果存储器,用于存储所述计算结果。

可选的,所述核心处理器,包括:缓存介质;

所述缓存介质,用于存储各融合存储器的管理表项信息。

可选的,所述加速存储控制器,还包括:动态随机存储器;

所述动态随机存储器,用于缓冲所述待计算数据;

所述数据通路模块,还用于为外部输入的待计算数据缓冲至所述动态随机存储器提供传输通路;

所述处理器,具体用于在所述计算控制指令为计算与写操作的计算控制指令时,调度所述数据通路模块,将外部输入的待计算数据缓冲至所述动态随机存储器,并调度所述数据通路模块,将所述动态随机存储器中缓冲的所述待计算数据加载至所述加速处理模块。

可选的,所述数据通路模块,还用于为所述存储芯片中存储的待计算数据缓冲至所述动态随机存储器提供传输通路;

所述处理器,具体用于在所述计算控制指令为读操作与计算的计算控制指令时,调度所述数据通路模块,将所述存储芯片中存储的待计算数据缓冲至所述动态随机存储器,并调度所述数据通路模块,将所述动态随机存储器中缓冲的所述待计算数据加载至所述加速处理模块。

可选的,所述数据通路模块,包括:数据访问模块;

所述处理器,具体用于通过所述数据访问模块,将所述动态随机存储器中缓冲的所述待计算数据加载至所述加速处理模块。

可选的,所述加速处理模块,包括:矩阵处理模块、池化加速模块及修正线性激活加速模块;

所述矩阵处理模块,用于通过硬件加速,对所述待计算数据进行卷积计算,得到卷积结果;

所述池化加速模块,用于通过硬件加速,对所述卷积结果进行池化操作,得到池化结果;

所述修正线性激活加速模块,用于通过硬件加速,对所述卷积结果及所述池化结果进行激活函数的计算。

第三方面,本发明实施例提供了一种深度学习计算方法,应用于本发明实施例第一方面所述的融合存储器中加速存储控制器的处理器,所述方法包括:

获取待计算数据及计算控制指令;

根据所述计算控制指令,按照所述计算控制指令对应的加载方式,调度所述加速存储控制器中的数据通路模块,将所述待计算数据加载至所述加速处理模块,以使所述加速处理模块通过硬件加速,对所述待计算数据进行深度学习计算,得到计算结果;

输出所述计算结果。

可选的,所述计算控制指令,包括:计算与写操作的计算控制指令;

所述获取待计算数据,包括:

从所述融合存储器中的动态随机存储器,获取所述动态随机存储器中缓冲的外部输入的待计算数据;

所述根据所述计算控制指令,按照所述计算控制指令对应的加载方式,调度所述加速存储控制器中的数据通路模块,将待计算数据加载至所述加速处理模块,包括:

调度所述数据通路模块,将所述动态随机存储器中的所述待计算数据加载至所述加速处理模块,以使所述加速处理模块通过硬件加速,对所述待计算数据进行深度学习计算,得到计算结果;

在所述获取待计算数据之后,所述方法还包括:

获取存储命令;

根据所述存储命令,调度所述数据通路模块,将所述待计算数据写入所述存储命令对应的存储芯片中。

可选的,所述计算控制指令,包括:读操作与计算的计算控制指令;

所述获取待计算数据,包括:

获取所述存储芯片中存储的待计算数据;

所述根据所述计算控制指令,按照所述计算控制指令对应的加载方式,调度所述加速存储控制器中的数据通路模块,将待计算数据加载至所述加速处理模块,包括:

调度所述数据通路模块,将所述待计算数据缓冲至所述融合存储器的动态随机存储器;

调度所述数据通路模块,将所述动态随机存储器中的待计算数据加载至所述加速处理模块,以使所述加速处理模块通过硬件加速,对所述待计算数据进行深度学习计算,得到计算结果。

可选的,所述输出所述计算结果,包括:

根据所述计算结果,查询保存所述计算结果的目标地址;

将所述计算结果写入计算结果存储器中所述目标地址对应的存储空间。

本发明实施例提供的一种融合存储器、存储系统及深度学习计算方法,融合存储器包括加速存储控制器及存储芯片,加速存储控制器包括处理器、数据通路模块及加速处理模块,处理器用于根据接收到的存储命令,调度数据通路模块,存储外部输入的数据至存储命令对应的存储芯片,还用于根据获取到的计算控制指令,按照计算控制指令对应的加载方式,调度数据通路模块,将待计算数据加载至加速处理模块,数据通路模块用于为存储数据提供传输通路,以及为加载待计算数据提供传输通路,加速处理模块通过硬件加速即可实现对待计算数据的深度学习计算。融合存储器提供了深度学习计算与数据存储融合的架构,即对数据的存储以及对待计算数据的深度学习计算可以在一个融合存储器中实现,而不需要该融合存储器与其他节点设备进行数据搬移,消除了数据搬移的过程,避免了因外部环境的影响所产生的时延、丢包等问题,从而提高了深度学习计算的计算效率。

附图说明

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

图1为现有技术的采用计算节点和存储节点的分层耦合架构示意图;

图2为现有技术的进行深度学习计算的流程示意图;

图3为本发明一实施例的融合存储器的结构示意图;

图4为本发明另一实施例的融合存储器的结构示意图;

图5为本发明再一实施例的融合存储器的结构示意图;

图6为本发明又一实施例的融合存储器的结构示意图;

图7为本发明实施例的深度学习计算方法的流程示意图;

图8a为本发明实施例的计算控制指令为计算与写操作的计算控制指令时的操作流程示意图;

图8b为本发明实施例的计算控制指令为读操作与计算的计算控制指令时的操作流程示意图;

图9为本发明一实施例的基于深度学习的存储系统的结构示意图;

图10为本发明另一实施例的基于深度学习的存储系统的结构示意图。

具体实施方式

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

为了提高深度学习计算的计算效率,本发明实施例提供了一种融合存储器、基于深度学习的存储系统及深度学习计算方法。

本发明实施例提供了一种融合存储器,如图3所示,该融合存储器包括:加速存储控制器310及存储芯片320,存储芯片320的个数可以为多个,也可以为一个,一般情况下,为了保证对大量数据的正常存储,通常设置存储芯片320为多个。

其中,加速存储控制器310,包括:处理器311、数据通路模块312及加速处理模块313。

处理器311,用于根据接收到的存储命令,调度数据通路模块312,存储外部输入的数据至存储命令对应的存储芯片320中;处理器311,还用于根据获取到的计算控制指令,按照该计算控制指令对应的加载方式,调度数据通路模块312,将待计算数据加载至加速处理模块313;数据通路模块312,用于为存储数据提供传输通路,以及为加载待计算数据提供传输通路,数据通路模块312具体可以为传输数据的多个部件组成的通路、数据传输线缆、无线传输的接口等;加速处理模块313,用于通过硬件加速,对待计算数据进行深度学习计算。

存储芯片320,用于存储数据。

融合存储器为存储数据、对待计算数据进行深度学习计算的存储设备,在传统的数据存储中,通常采用ssd(solid-statedisk,固态硬盘)存储数据,本实施例的存储器可以为但不限于ssd,ssd是一种用固态电子存储芯片阵列而制成的硬盘,传统的ssd中包括控制单元和存储单元,控制单元用于控制数据的存储,即在接收到外部输入的数据时,根据存储命令,将数据存储至存储命令对应的存储单元,存储单元可以为flash(闪存)芯片、dram(dynamicrandomaccessmemory,动态随机存取存储器)芯片等。

本实施例中,在传统存储器的存储架构的基础上,通过增加硬件加速实现深度学习计算的au(accelerationunit,加速处理模块),融合了深度学习的计算架构。融合存储器中包括了加速存储控制器和存储芯片,加速存储控制器用于管理数据在存储芯片中的存储,以及实现待计算数据的深度学习计算。通过在加速存储控制器中融合au,融合存储器在实现深度学习计算时,不需要从其他设备中搬移数据,可以消除数据搬移的过程,从而提高深度学习计算的计算效率。

处理器311还可以用于维护数据管理表项等。

基于图3所示的融合存储器,如图4所示,数据通路模块312具体可以包括协议处理模块3121、存储访问模块3122、错误编解码模块3123以及存储控制模块3124。

在图4所示实施例中,处理器311可以用于根据接收到的存储命令,通过协议处理模块3121、存储访问模块3122、错误编解码模块3123和存储控制模块3124的调度,存储外部输入的数据至存储命令对应的存储芯片320中。

融合存储器对数据的存储,通常是通过加速存储控制器中处理器的调度进行存储的,加速存储控制器一般会给数据分配一个数据通路,数据通路由协议处理模块、存储访问模块、错误编解码模块和存储控制模块组成,数据在到达融合存储器时,相应的会接收到一个存储命令,存储命令中限定了数据通路的选择规则,该选择规则与数据通路中协议处理模块的规范相对应。数据通路实现了数据从总线接口输入到存储芯片,总线接口可以为pci-e(peripheralcomponentinterconnect-express,高速串行计算机扩展总线标准)总线接口、scsi(smallcomputersystemsinterface,小型计算机系统接口)、sata(serialadvancedtechnologyattachment,串行高级技术附件)等,当然,在高速存储的应用场景下,通常选择具有高带宽的pci-e总线接口作为存储器的通讯接口。

协议处理模块用于处理融合存储器与外部通讯的协议规范;存储访问模块通常情况下为dma(directmemoryaccess,直接存储访问)模块,在加速存储控制器中实现数据搬移;错误编解码模块具体可以为ecc(errorcheckingandcorrecting,错误纠查)模块,ecc模块用于在加速存储控制器中负责对数据进行纠错与检错;存储控制模块在加速存储控制器中负责与存储芯片进行通信控制。

可选的,存储芯片320可以包括:与非门型闪存芯片;协议处理模块3121可以包括存储接口协议处理模块;存储控制模块3124可以包括闪存控制层模块。

存储芯片通常为非易失性的存储芯片,即该存储芯片中的数据在断电后仍可以得到保存。为了降低每比特存储成本、提高存储容量,本实施例中存储芯片可以选择nandflash(与非门型闪存芯片)。相应的,协议处理模块可以选择为nvme(non-volatilememoryexpress,非易失性内存主机控制器接口规范)协议处理模块,存储控制模块可以选择为fcl(flashcontrollay,闪存控制层)模块。其中,nvme是使用pci-e通道的ssd一种存储规范,nvme充分利用pci-essd的低延时以及并行性,以及处理器、平台与应用的并行性。ssd的并行性可以充分被主机的硬件与软件充分利用,相比通用的ahci(advancedhostcontrollerinterface,高级主控接口)标准,nvme标准可以带来数据存储多方面的性能提升。因此,通过nvme协议处理模块、处理器、dma模块、ecc模块和fcl模块,可以实现数据从pci-e总线的输入到nandflash的数据通路。

基于图3所示的融合存储器,如图5所示,加速存储控制器310除了包括处理器311、数据通路模块312及加速处理模块313以外,还可以包括:动态随机存储器314。

动态随机存储器314,可以用于缓冲待计算数据。

数据通路模块312,还可以用于为外部输入的待计算数据缓冲至动态随机存储器314提供传输通路。处理器311,具体可以用于在计算控制指令为计算与写操作的计算控制指令时,调度数据通路模块312,将外部输入的待计算数据缓冲至动态随机存储器314,并调度数据通路模块312,将动态随机存储器314中缓冲的待计算数据加载至加速处理模块313。

数据通路模块312,还可以用于为存储芯片320中存储的待计算数据缓冲至动态随机存储器314提供传输通路。处理器311,具体可以用于在计算控制指令为读操作与计算的计算控制指令时,调度数据通路模块312,将存储芯片320中存储的待计算数据缓冲至动态随机存储器314,并调度数据通路模块312,将动态随机存储器314中缓冲的待计算数据加载至加速处理模块313。

可选的,数据通路模块312,可以包括数据访问模块。处理器311,具体可以用于通过数据访问模块,将动态随机存储器314中缓冲的待计算数据加载至加速处理模块313。

在对待计算数据进行深度学习计算时,待计算数据往往是缓冲在动态随机存储器中的,而计算控制指令包括计算与写操作的计算控制指令、和读操作与计算的计算控制指令两种。

如果计算控制指令为计算与写操作的计算控制指令,说明需要对外部输入的待计算数据同时进行存储及深度学习计算的操作,需要数据通路模块为外部输入的待计算数据缓冲至动态随机存储器提供传输通路。在存储待计算数据的同时,对待计算数据进行深度学习计算,无需从存储芯片或者其他存储介质中提取待计算数据,可以有效减少数据带宽的开销。

如果计算控制指令为读操作与计算的计算控制指令,则说明待存储数据已在存储芯片中存储,需要数据通路模块为存储芯片中存储的待计算数据缓冲至动态随机存储器提供传输通路。由于数据的传输在融合存储器内部完成,不易受到外部环境的影响,可以有效避免数据时延、丢包等问题,提高了深度学习计算的计算效率。

动态随机存储器可以为加速存储控制器内部封装的存储器或在外部挂载的存储器,待计算数据缓冲至动态随机存储器后,处理器可以调度数据通路模块,从动态随机存储器加载待计算数据至加速处理模块,以实现对待计算数据的深度学习计算。动态随机存储器为加速存储控制器的内部存储芯片,其存储速度明显快于融合存储器中的存储芯片,因此,通过将待计算数据缓冲至动态随机存储器,可以提高深度学习计算的效率。由于在进行深度学习计算的过程中,会产生很多中间结果,这些中间结果需要参与后续的运算,因此,通常将这些中间结果也存储在动态随机存储器中,以保证深度学习计算的高效性。

加速处理模块313,可以包括:矩阵处理模块3131、池化加速模块3132及修正线性激活加速模块3133;

其中,矩阵处理模块3131,用于通过硬件加速,对待计算数据进行卷积计算,得到卷积结果;池化加速模块3132,用于通过硬件加速,对卷积结果进行池化操作,得到池化结果;修正线性激活加速模块3133,用于通过硬件加速,对卷积结果及池化结果进行激活函数的计算。

当然,基于图4及图5所示实施例,本发明实施例还提供了一种融合存储器,如图6所示,包括图4所示实施例中的所有部件,以及图5所示实施例中的所有部件。

加速处理模块313用于通过硬件加速实现深度学习的计算过程,而深度学习中往往包括卷积运算、pooling(池化)、relu(rectifiedlinearunit,线性整流函数)等运算,每一种运算可以利用相应的硬件加速实现,因此,在加速处理模块313中可以包括用于实现卷积运算的mpu(matrixprocessingunit,矩阵处理模块)、用于实现数据池化的pooling模块以及用于实现激活函数计算的relu模块。在给定训练完成后的深度学习参数后,加速存储控制器可以使用相应的专用硬件组件对输入数据进行计算加速。

应用上述实施例,融合存储器包括加速存储控制器及多个存储芯片,加速存储控制器包括处理器、数据通路模块及加速处理模块,处理器用于根据接收到的存储命令,调度数据通路模块,存储外部输入的数据至存储命令对应的存储芯片,还用于根据获取到的计算控制指令,按照计算控制指令对应的加载方式,调度数据通路模块,将待计算数据加载至加速处理模块,数据通路模块用于为存储数据提供传输通路,以及为加载待计算数据通过传输通路,加速处理模块通过硬件加速即可实现对待计算数据的深度学习计算。融合存储器提供了深度学习计算与数据存储融合的架构,即对数据的存储以及对待计算数据的深度学习计算可以在一个融合存储器中实现,而不需要该融合存储器与其他节点设备进行数据搬移,消除了数据搬移的过程,避免了因外部环境的影响所产生的时延、丢包等问题,从而提高了深度学习计算的计算效率。

相应于上述融合存储器实施例,本发明实施例提供了一种深度学习计算方法,可以应用于上述融合存储器实施例的加速存储控制器310的处理器311,如图7所示,该深度学习计算方法可以包括如下步骤。

s701,获取待计算数据及计算控制指令。

由于融合存储器需要实现深度学习计算和存储操作,在外部通过总线接口输入数据后,会首先将数据写入动态随机存储器,因此可以设置一计算与写操作的计算控制指令,以在待计算数据写入动态随机存储器后,立即对待计算数据进行深度学习计算,在进行深度学习计算的同时,可以对待计算数据进行存储,即实现对待计算数据的在线计算;数据在输入融合存储器时,也有可能并不立即进行深度学习计算,而是先将数据存储在存储芯片中,当有深度学习计算需求时再从存储芯片中获取待计算数据,这里的深度学习计算需求可以为设置的一读操作与计算的计算控制指令,即实现对待计算数据的离线计算。

s702,根据计算控制指令,按照计算控制指令对应的加载方式,调度加速存储控制器中的数据通路模块,将待计算数据加载至加速存储控制器的加速处理模块,以使加速处理模块通过硬件加速,对待计算数据进行深度学习计算,得到计算结果。

基于上述分析,计算控制指令可以为计算与写操作的计算控制指令,也可以为读操作与计算的计算控制指令,针对不同的计算控制指令,待计算数据的加载方式不同,如果是对待计算数据进行在线计算,则直接从动态随机存储器中加载待计算数据;如果是对待计算数据进行离线计算,则需要从存储芯片加载待计算数据至动态随机存储器,再由动态随机存储器加载至加速处理模块。

可选的,计算控制指令可以包括计算与写操作的计算控制指令;获取待计算数据,具体可以为:从融合存储器中的动态随机存储器,获取动态随机存储器中缓冲的外部输入的待计算数据。

相应的,s702具体可以为:调度数据通路模块,将动态随机存储器中的待计算数据加载至加速处理模块中,以使加速处理模块通过硬件加速,对待计算数据进行深度学习计算,得到计算结果。

由于融合存储器不仅仅需要对待计算数据进行深度学习计算,还需要对待计算数据进行存储,因此,在获取到待计算数据后,还可以包括:获取存储命令,根据该存储命令,调度数据通路模块,将待计算数据写入存储命令对应的存储芯片中。

上述在线计算的方式,在存储待计算数据的同时,对待计算数据进行深度学习计算,无需从存储芯片或者其他存储介质中提取待计算数据,可以有效减少数据带宽的开销。

可选的,计算控制指令可以包括读操作与计算的计算控制指令;获取待计算数据,具体可以为:获取存储芯片中存储的待计算数据。

相应的,s702具体可以为:调度数据通路模块,将待计算数据缓冲至加速存储控制器的动态随机存储器;调度数据通路模块,将动态随机存储器中的待计算数据加载至加速处理模块中,以使加速处理模块通过硬件加速,对待计算数据进行深度学习计算,得到计算结果。

上述离线计算的方式,由于数据的传输在融合存储器内部完成,不易受到外部环境的影响,可以有效避免数据时延、丢包等问题,提高了深度学习计算的计算效率。

s703,输出计算结果。

加速处理模块在对待计算数据进行深度学习计算后,处理器可以将深度学习计算的计算结果输出,输出的方式可以是将计算结果直接传输给后续的应用设备,例如显示器、摄像头等;输出的方式还可以是将计算结果发送至静态存储器,由静态存储器对计算结果进行保存,例如,可以将计算结果发送至hdd(harddiskdriver,硬盘驱动器)中,hdd是一种最基本的电脑存储器,由一个或者多个铝制或玻璃制的碟片组成。

可选的,s703具体可以为:根据计算结果,查询保存该计算结果的目标地址;将计算结果写入计算结果存储器中目标地址对应的存储空间。

保存计算结果的目标地址,与计算结果的大小等信息相关,计算结果的数据量大,则会分配较大存储空间的目标地址,计算结果的数据量小,则会分配较小存储空间的目标地址。

如图8a所示,为计算控制指令为计算与写操作的计算控制指令时的操作流程示意图,基于计算控制指令中的计算指令,进行数据加载,将动态随机存储器中的待计算数据加载至加速处理模块;迭代计算,通过加速处理模块进行深度学习计算;索引结果,根据存储命令确定存储待计算数据的存储芯片;写入存储芯片,基于计算控制指令中的写操作指令,存储待计算数据。如图8b所示,为计算控制指令为读操作与计算的计算控制指令时的操作流程示意图,基于计算控制指令中的读操作指令,进行数据读取,获取存储芯片中存储的待计算数据;数据加载,基于计算控制指令中的计算指令,将待计算数据加载至动态随机存储器、并加载至加速处理模块;迭代计算,通过加速处理模块进行深度学习计算;发送数据,发送计算结果。

应用本实施例,通过设置计算控制指令,计算与写操作的计算控制指令实现了深度学习在线计算的工作模式,读操作与计算的计算控制指令实现了深度学习离线计算的工作模式。通过在线计算与离线计算两种工作模式,可以使得融合存储器可以灵活工作在多种应用场景中。计算控制指令可以控制融合存储器在数据读取或者写入的过程中进行相应的深度学习计算,并且可以将计算结果保存在不同的区域,大大减少了数据的搬移过程。

本发明实施例还提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,实现如上述深度学习计算方法的所有步骤。由于机器可读存储介质所涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本发明实施例还提供了一种基于深度学习的存储系统,如图9所示,该基于深度学习的存储系统包括:核心处理器910、多个融合存储器920及计算结果存储器930。

核心处理器910,用于根据预设的远程直接数据存取方式,将数据输入相应的融合存储器。

融合存储器920可以为上述图3至图6任一融合存储器,包括:加速存储控制器及存储芯片;加速存储控制器,包括:处理器、数据通路模块及加速处理模块;处理器,用于根据接收到的存储命令,调度数据通路模块,存储外部输入的数据至存储命令对应的存储芯片;还用于根据获取到的计算控制指令,按照计算控制指令对应的加载方式,调度数据通路模块,将待计算数据加载至加速处理模块;数据通路模块,用于为存储数据提供传输通路,以及为加载待计算数据提供传输通路;加速处理模块,用于通过硬件加速,对待计算数据进行深度学习计算,得到计算结果;处理器,还用于输出计算结果至计算结果存储器930;存储芯片,用于存储数据;

计算结果存储器930,用于存储计算结果。

基于图9所示实施例,如图10所示,核心处理器910,包括:缓存介质911;缓存介质911,用于存储各融合存储器的管理表项信息。

为了能够提高深度学习计算的速度,基于深度学习的存储系统采用hbm(hostbasedmanagement,基于主机的管理方式)对融合存储器进行管理,在融合存储器运行的过程中,需要融合存储器大量的本地内存来保存存储芯片的映射表、块管理信息等大量融合存储器的管理表项信息,以维持硬盘的运行。然而,在融合存储器中,如果这些表项信息都存放在本地内存中,会与深度学习计算所需的存储空间相互竞争。因此,在基于深度学习的存储系统中,可以相关的表项信息都存放在系统cpu(centralprocessingunit,核心处理单元)的缓存介质中,并由cpu统一进行管理,通过这样的方式,可以实现对多个融合存储器的集中管理。

然而,与传统的hbm管理方式不同的是,融合存储器的本地存储器,作为动态随机存储器,分片给深度学习计算,从而使得深度学习计算能够在融合存储器的内部完成。这种存储器分配方式将深度学习计算过程中的数据搬移过程限制在了融合存储器内部,降低了对外部传输数据带宽的要求。

融合存储器在对待计算数据进行深度学习计算得到计算结果后,除了将计算结果发送至计算结果存储器存储以外,还可以根据用户需求,将计算结果展示给用户。

可选的,加速存储控制器,还可以包括:动态随机存储器;动态随机存储器,用于缓冲所述待计算数据;数据通路模块,还可以用于为外部输入的待计算数据缓冲至动态随机存储器提供传输通路;处理器,具体可以用于在计算控制指令为计算与写操作的计算控制指令时,调度数据通路模块,将外部输入的待计算数据缓冲至动态随机存储器,并调度数据通路模块,将动态随机存储器中缓冲的待计算数据加载至加速处理模块。

可选的,数据通路模块,还可以用于为存储芯片中存储的待计算数据缓冲至动态随机存储器提供传输通路;处理器,具体可以用于在计算控制指令为读操作与计算的计算控制指令时,调度数据通路模块,将存储芯片中存储的待计算数据缓冲至动态随机存储器,并调度数据通路模块,将动态随机存储器中缓冲的待计算数据加载至加速处理模块。

可选的,数据通路模块,可以包括:数据访问模块;处理器,具体可以用于通过数据访问模块,将动态随机存储器中缓冲的待计算数据加载至加速处理模块。

可选的,加速处理模块可以包括:矩阵处理模块、池化加速模块及修正线性激活加速模块;矩阵处理模块,可以用于通过硬件加速,对待计算数据进行卷积计算,得到卷积结果;池化加速模块,可以用于通过硬件加速,对卷积结果进行池化操作,得到池化结果;修正线性激活加速模块,可以用于通过硬件加速,对卷积结果及池化结果进行激活函数的计算。

应用本实施例,在基于深度学习的存储系统中,融合固态设备的相关表项信息都存放在核心处理器的本地存储介质中,并由核心处理器统一进行管理,通过这样的方式,可以实现对多个融合存储器的集中管理。并且将深度学习计算所需要的存储器与存储表项信息的存储器分配开,能够提高深度学习计算的速度。这种存储器分配方式将深度学习计算过程中的数据搬移过程限制在了融合存储器内部,消除了外部数据搬移的过程,避免了因外部环境的影响所产生的时延、丢包等问题,从而提高了深度学习计算的计算效率,并且降低了对外部数据传输带宽的要求。

上述处理器可以是通用处理器,包括cpu(centralprocessingunit,中央处理器)、np(networkprocessor,网络处理器)等;还可以是dsp(digitalsignalprocessor,数字信号处理器)、asic(applicationspecificintegratedcircuit,专用集成电路)、fpga(field-programmablegatearray,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

对于基于深度学习的存储系统实施例而言,由于其所涉及的融合存储器的内容基本相似于前述的融合存储器实施例,所以描述的比较简单,相关之处参见融合存储器实施例的部分说明即可。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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