深度学习系统构建方法、装置、深度学习系统及存储介质与流程

文档序号:15020773发布日期:2018-07-25 00:39阅读:128来源:国知局
本发明涉及深度学习领域,尤其涉及深度学习系统构建方法、装置、深度学习系统及存储介质。
背景技术
:深度学习的概念源于人工神经网络的研究。深度学习的提出使得人工神经网络重新成为机器学习最重要的算法之一,在传统的人工神经网络训练中增加了一个预训练阶段,即用无监督学习对每一层网络进行一次专门的训练,然后才用有监督学习对整个网络进行总体训练,也就是说计算机通过深度神经网络,模拟人脑的机制来学习、判断、决策。通过深度学习方法,人工神经网络的效果一举赶上甚至显著超过了支持向量机等其他机器学习方法。近年来,这种方法已被应用于许多领域,在IBM、谷歌、微软、科大讯飞、百度等公司很多工业级图像和语音处理应用上取得了非常好的效果,在近期和未来都将是人工智能领域的一个热点研究方向。深度学习中涉及的算法需要基于深度学习系统实现。现有技术中,深度学习系统由大量的中央处理器(CPU)及图形处理器(GPU)堆积而成,这样的深度学习系统,成本高且运行能耗高。技术实现要素:本发明的主要目的在于提供一种深度学习系统构建方法、装置、深度学习系统及存储介质,旨在解决现有技术中深度学习系统成本高、运行能耗高的技术问题。为实现上述目的,本发明提供一种深度学习系统构建方法,所述深度学习系统构建方法包括:获取目标算法的计算需求,基于所述计算需求,确定待使用芯片组;根据待使用芯片组包含的待使用芯片的数量,对所述目标算法进行划分,得到若干子算法;获取各个子算法的带宽需求,根据所述各个子算法的带宽需求,确定各个待使用芯片对应的待使用存储器。优选地,所述获取目标算法的计算需求包括:获取目标算法的算法标识,根据所述算法标识,获取所述目标算法的计算需求。优选地,所述基于所述计算需求,确定待使用芯片组包括:获取预置芯片的计算能力,根据计算需求与所述计算能力,计算得到预置芯片的所需数量;根据所述预置芯片的所需数量,确定待使用芯片组,其中,所述待使用芯片组的整体计算能力大于所述计算需求。优选地,所述获取各个子算法的带宽需求,根据所述各个子算法的带宽需求,确定各个待使用芯片对应的待使用存储器包括:获取各个子算法的带宽需求,获取各个子算法与各个待使用芯片的对应关系;根据各个子算法的带宽需求,以及各个子算法与各个待使用芯片的对应关系,确定各个待使用芯片对应的待使用存储器。优选地,所述获取各个子算法的带宽需求,根据所述各个子算法的带宽需求,确定各个待使用芯片对应的待使用存储器之后包括:基于所述待使用芯片组以及所述各个待使用芯片对应的待使用存储器,生成构建信息;输出所述构建信息。此外,为实现上述目的,本发明还提供一种基于上述所述的深度学习系统构建方法构建的深度学习系统,所述深度学习系统包括:多个通过数据接口串联的所述待使用芯片,各个待使用芯片连接有对应的待使用存储器。此外,为实现上述目的,本发明还提供一种深度学习系统构建装置,所述深度学习系统构建装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的深度学习系统构建程序,所述深度学习系统构建程序被所述处理器执行时实现如上所述的深度学习系统构建方法的步骤。此外,为实现上述目的,本发明还提供一种存储介质,所述存储介质上存储有深度学习系统构建程序,所述深度学习系统构建程序被处理器执行时实现如上所述的深度学习系统构建方法的步骤。本发明中,获取目标算法的计算需求,基于计算需求,确定待使用芯片组,根据待使用芯片组包含的待使用芯片的数量,对所述目标算法进行划分,得到若干子算法,获取各个子算法的带宽需求,根据各个子算法的带宽需求,确定各个待使用芯片对应的待使用存储器。通过本发明,可根据目标算法的计算需求,确定待使用芯片组,从而根据待使用芯片组包含的待使用芯片数量,将目标算法划分成若干个子算法,再进一步根据每个子算法的带宽需求,确定各个待使用芯片对应的待使用存储器。通过确定的待使用芯片以及待使用芯片对应的待使用存储器,即可构建出满足目标算法的计算需求的深度学习系统,实现了根据目标算法的计算需求、带宽需求,灵活配置深度学习系统,降低了硬件成本与运行成本。附图说明图1是本发明实施例方案涉及的硬件运行环境的装置结构示意图;图2为本发明深度学习系统构建方法第一实施例的流程示意图;图3为本发明深度学习系统建立方法一实施例中FPGA板卡的结构示意图;图4为本发明深度学习系统建立方法一实施例中基于构建信息得到的深度学习系统的场景示意图。本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。如图1所示,图1是本发明实施例方案涉及的硬件运行环境的装置结构示意图。本发明实施例装置可以是PC,也可以是智能手机、平板电脑、便携计算机等终端设备。如图1所示,该装置可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。本领域技术人员可以理解,图1中示出的装置结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及深度学习系统构建程序。在图1所示的装置中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的深度学习系统构建程序,并执行以下操作:获取目标算法的计算需求,基于所述计算需求,确定待使用芯片组;根据待使用芯片组包含的待使用芯片的数量,对所述目标算法进行划分,得到若干子算法;获取各个子算法的带宽需求,根据所述各个子算法的带宽需求,确定各个待使用芯片对应的待使用存储器。进一步地,所述获取目标算法的计算需求包括:获取目标算法的算法标识,根据所述算法标识,获取所述目标算法的计算需求。进一步地,所述基于所述计算需求,确定待使用芯片组包括:获取预置芯片的计算能力,根据计算需求与所述计算能力,计算得到预置芯片的所需数量;根据所述预置芯片的所需数量,确定待使用芯片组,其中,所述待使用芯片组的整体计算能力大于所述计算需求。进一步地,所述获取各个子算法的带宽需求,根据所述各个子算法的带宽需求,确定各个待使用芯片对应的待使用存储器包括:获取各个子算法的带宽需求,获取各个子算法与各个待使用芯片的对应关系;根据各个子算法的带宽需求,以及各个子算法与各个待使用芯片的对应关系,确定各个待使用芯片对应的待使用存储器。进一步地,所述获取各个子算法的带宽需求,根据所述各个子算法的带宽需求,确定各个待使用芯片对应的待使用存储器之后包括:基于所述待使用芯片组以及所述各个待使用芯片对应的待使用存储器,生成构建信息;输出所述构建信息。参照图2,图2为本发明深度学习系统构建方法第一实施例的流程示意图。在一实施例中,深度学习系统构建方法包括:步骤S10,获取目标算法的计算需求,基于所述计算需求,确定待使用芯片组;本实施例中,获取目标算法的计算需求,可以通过获取算法标识来确定目标算法的计算需求。例如,预先建立算法标识与计算需求的对应关系表。参照表1,表1为本发明一实施例中算法标识与计算需求的对应关系表。表1其中,计算需求是指该算法对芯片计算能力的需求,FLOPS,即每秒浮点运算次数(亦称每秒峰值速度)是每秒所执行的浮点运算次数(英文:Floating-pointoperationspersecond;缩写:FLOPS)的简称,被用来评估电脑效能,尤其是在使用到大量浮点运算的科学计算领域中。一个TFLOPS(teraFLOPS)等於每秒万亿(=10^12)次的浮点运算。本发明一实施例中,为了实现目标算法的运行,需要构建一个深度学习系统。获取目标算法的算法标识为B,则在预先建立算法标识与计算需求的对应关系表中,通过查表的方式,获取该目标算法对芯片计算能力的需求为8TFlops,然后进一步获取预置芯片的计算能力,例如预置芯片的计算能力为3TFlops。本实施例中,可预先将预置芯片的计算能力写入深度学习系统构建装置中。由于该目标算法对芯片计算能力的需求为8TFlops,预置芯片的计算能力为3TFlops,则确定的待使用芯片组包括预置芯片1、预置芯片2、预置芯片3。根据目标算法对芯片计算能力的需求a以及预置芯片的计算能力b,确定的待使用芯片组的整体计算能力要大于a。即a/b=c,待使用芯片组中包含的预置芯片数量n为大于c,且与c最为接近的整数。步骤S20,根据待使用芯片组包含的待使用芯片的数量,对所述目标算法进行划分,得到若干子算法;本实施例中,使用最优化理论对目标算法进行划分,得到若干子算法,使得每个子算法对计算量的需求不超过现有单个处理器的最大能力,例如目标算法对芯片计算能力的需求为8TFlops,预置芯片的计算能力为3TFlops,则确定的待使用芯片组包括预置芯片1、预置芯片2、预置芯片3。待使用芯片组包含的待使用芯片的数量为3,则对目标算法进行划分,得到子算法1、子算法2、子算法3,每部分子算法的计算需求(即对芯片计算能力的需求)为8/3TFlops,子算法1由预置芯片1实现,子算法2由预置芯片2实现,子算法3由预置芯片3实现。由于各个预置芯片的计算能力均为3TFlops,均可满足其对应的子算法的计算需求。本发明另一可选实施例中,可根据选择的预置芯片的数量以及各个预置芯片的计算能力来对算法进行划分。例如目标算法对芯片计算能力的需求为8TFlops,预置芯片的计算能力分别为预置芯片1:2TFlops、预置芯片2:3TFlops、预置芯片3:4TFlops、预置芯片4:4TFlops,则确定的待使用芯片组包括预置芯片1、预置芯片2、预置芯片3。待使用芯片组包含的待使用芯片的数量为3,则对目标算法进行划分,得到子算法1、子算法2、子算法3,子算法1由预置芯片1实现,子算法2由预置芯片2实现,子算法3由预置芯片3实现,算法1对芯片计算能力的需求为8*2/9,算法2对芯片计算能力的需求为8*3/9,算法1对芯片计算能力的需求为8*4/9。各个预置芯片的计算能力均可满足其对应的子算法的计算需求。本实施例中,预置芯片可采用FPGA,FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。本实施例中,预置芯片可集成在板卡上。步骤S30,获取各个子算法的带宽需求,根据所述各个子算法的带宽需求,确定各个待使用芯片对应的待使用存储器。本实施例中,深度学习涉及的目标算法往往是卷积运算,在卷积运算中,随着运算深度加深,算法对带宽的需求会加大。例如,子算法1的带宽需求为X1,子算法2的带宽需求为X2,子算法3的带宽需求为X3,其中:X1<X2<X3因此,需要根据各个子算法的带宽需求,确定各个待使用芯片对应的待使用存储器。本实施例中,待使用存储器可以是DDR。DDR=DoubleDataRate双倍速率同步动态随机存储器。严格的说DDR应该叫DDRSDRAM,人们习惯称为DDR,其中,SDRAM是SynchronousDynamicRandomAccessMemory的缩写,即同步动态随机存取存储器。而DDRSDRAM是DoubleDataRateSDRAM的缩写,是双倍速率同步动态随机存储器的意思。例如,子算法1的带宽需求为X1,而其对应的预置芯片1自身的性能便可满足该带宽需求X1,则无需为预置芯片1配置额外的DDR;子算法2的带宽需求为X2,而其对应的预置芯片2自身的性能不能满足该带宽需求X2,若预置芯片2自身的性能加上DDR2可满足该带宽需求X2,则预置芯片2对应的待使用存储器为DDR2;子算法3的带宽需求为X3,而其对应的预置芯片3自身的性能不能满足该带宽需求X3,若预置芯片3自身的性能加上2个DDR4可满足该带宽需求X3,则预置芯片3对应的待使用存储器为2个DDR4。本实施例中,确定待使用芯片以及各个待使用芯片对应的待使用存储器后,便可输出构建信息,以供用户自行构建深度学习系统。一实施例中,输出的构建信息为:待使用芯片为预置芯片1、预置芯片2、预置芯片3;预置芯片1无需额外配置DDR,预置芯片2配置1个DDR2,预置芯片3配置2个DDR4。参照图3,图3为本发明深度学习系统建立方法一实施例中FPGA板卡的结构示意图。如图3所示,FPGA板卡包括FPGA芯片10、接口11、接口12,其中接口11用于与其他FPGA板卡连接,接口12用于连接DDR,接口12的数量根据实际需要进行设置,在此不作限制。本实施例中,获取目标算法的计算需求,基于计算需求,确定待使用芯片组,根据待使用芯片组包含的待使用芯片的数量,对所述目标算法进行划分,得到若干子算法,获取各个子算法的带宽需求,根据各个子算法的带宽需求,确定各个待使用芯片对应的待使用存储器。通过本实施例,可根据目标算法的计算需求,确定待使用芯片组,从而根据待使用芯片组包含的待使用芯片数量,将目标算法划分成若干个子算法,再进一步根据每个子算法的带宽需求,确定各个待使用芯片对应的待使用存储器。通过确定的待使用芯片以及待使用芯片对应的待使用存储器,即可构建出满足目标算法的计算需求的深度学习系统,实现了根据目标算法的计算需求、带宽需求,灵活配置深度学习系统,降低了硬件成本与运行成本。进一步的,本发明深度学习系统建立方法一实施例中,所述获取目标算法的计算需求包括:获取目标算法的算法标识,根据所述算法标识,获取所述目标算法的计算需求。本实施例中,获取目标算法的计算需求,可以通过获取算法标识来确定目标算法的计算需求。例如,预先建立算法标识与计算需求的对应关系表。参照表1,表1为本发明一实施例中算法标识与计算需求的对应关系表。表1其中,计算需求是指该算法对芯片计算能力的需求,FLOPS,即每秒浮点运算次数(亦称每秒峰值速度)是每秒所执行的浮点运算次数(英文:Floating-pointoperationspersecond;缩写:FLOPS)的简称,被用来评估电脑效能,尤其是在使用到大量浮点运算的科学计算领域中。一个TFLOPS(teraFLOPS)等於每秒万亿(=10^12)次的浮点运算。本发明一实施例中,为了实现目标算法的运行,需要构建一个深度学习系统。获取目标算法的算法标识为B,则在预先建立算法标识与计算需求的对应关系表中,通过查表的方式,获取该目标算法对芯片计算能力的需求为8Tflops。本实施例中,通过建立算法标识与计算需求的对应关系表,在建立深度学习系统前,根据算法标识,确定目标算法的计算需求,从而确定待使用芯片组,即保证了算法的正常运行,也降低了深度学习系统的建立成本与运行成本。进一步的,本发明深度学习系统建立方法一实施例中,所述基于所述计算需求,确定待使用芯片组包括:获取预置芯片的计算能力,根据计算需求与所述计算能力,计算得到预置芯片的所需数量;根据所述预置芯片的所需数量,确定待使用芯片组,其中,所述待使用芯片组的整体计算能力大于所述计算需求。本发明一实施例中,为了实现目标算法的运行,需要构建一个深度学习系统。获取目标算法的算法标识为B,则在预先建立算法标识与计算需求的对应关系表中,通过查表的方式,获取该目标算法对芯片计算能力的需求为8TFlops,然后进一步获取预置芯片的计算能力,例如预置芯片的计算能力为3TFlops。本实施例中,可预先将预置芯片的计算能力写入深度学习系统构建装置中。由于该目标算法对芯片计算能力的需求为8TFlops,预置芯片的计算能力为3TFlops,则确定的待使用芯片组包括预置芯片1、预置芯片2、预置芯片3。根据目标算法对芯片计算能力的需求a以及预置芯片的计算能力b,确定的待使用芯片组的整体计算能力要大于a。即a/b=c,待使用芯片组中包含的预置芯片数量n为大于c,且与c最为接近的整数。通过本发明,基于预置芯片的计算能力以及目标算法对芯片计算能力的需求,确定待使用芯片组,即保证了算法的正常运行,也降低了深度学习系统的建立成本与运行成本。进一步的,本发明深度学习系统建立方法一实施例中,步骤S30包括:获取各个子算法的带宽需求,获取各个子算法与各个待使用芯片的对应关系;根据各个子算法的带宽需求,以及各个子算法与各个待使用芯片的对应关系,确定各个待使用芯片对应的待使用存储器。本实施例中,深度学习涉及的目标算法往往是卷积运算,在卷积运算中,随着运算深度加深,算法对带宽的需求会加大。例如,子算法1的带宽需求为X1,子算法2的带宽需求为X2,子算法3的带宽需求为X3,其中:X1<X2<X3表2子算法带宽需求子算法1X1子算法2X2子算法3X3参照表2,表2为本发明一实施例中子算法与带宽需求的对应关系表。因此,需要根据各个子算法的带宽需求,确定各个待使用芯片对应的待使用存储器。本实施例中,待使用存储器可以是DDR。DDR=DoubleDataRate双倍速率同步动态随机存储器。严格的说DDR应该叫DDRSDRAM,人们习惯称为DDR,其中,SDRAM是SynchronousDynamicRandomAccessMemory的缩写,即同步动态随机存取存储器。而DDRSDRAM是DoubleDataRateSDRAM的缩写,是双倍速率同步动态随机存储器的意思。例如,子算法1的带宽需求为X1,而其对应的预置芯片1自身的性能便可满足该带宽需求X1,则无需为预置芯片1配置额外的DDR;子算法2的带宽需求为X2,而其对应的预置芯片2自身的性能不能满足该带宽需求X2,若预置芯片2自身的性能加上DDR2可满足该带宽需求X2,则预置芯片2对应的待使用存储器为DDR2;子算法3的带宽需求为X3,而其对应的预置芯片3自身的性能不能满足该带宽需求X3,若预置芯片3自身的性能加上2个DDR4可满足该带宽需求X3,则预置芯片3对应的待使用存储器为2个DDR4。本实施例中,基于各个子算法对带宽的需求,为各个待使用芯片配置存储器,即保证各个待使用芯片能满足对应的子算法对带宽的需求,又避免了资源的浪费,降低了深度学习系统的建立成本与运行成本。进一步的,本发明深度学习系统建立方法一实施例中,步骤S30之后包括:基于所述待使用芯片组以及所述各个待使用芯片对应的待使用存储器,生成构建信息;输出所述构建信息。本实施例中,经过步骤S10~S30,确定了待使用芯片组以及待使用芯片组中各个待使用芯片对应的待使用存储器,便可基于待使用芯片组以及各个待使用芯片对应的待使用存储器输出构建信息,以供用户自行构建深度学习系统。一实施例中,输出的构建信息为:待使用芯片为预置芯片1、预置芯片2、预置芯片3;预置芯片1无需额外配置DDR,预置芯片2需要配置1个DDR2,预置芯片3需要配置2个DDR4。参照图3,图3为本发明深度学习系统建立方法一实施例中FPGA板卡的结构示意图。如图3所示,FPGA板卡包括FPGA芯片10、接口11、接口12,其中接口11用于与其他FPGA板卡连接,接口12用于连接DDR,接口12的数量根据实际需要进行设置,在此不作限制。参照图4,图4为本发明深度学习系统建立方法一实施例中基于构建信息得到的深度学习系统的场景示意图。如图4所示,预置芯片1与预置芯片2连接,预置芯片2与预置芯片3连接,预置芯片2配置有1个DDR2,预置芯片3配置有2个DDR4,预置芯片1、预置芯片2以及预置芯片3即构成了针对目标算法的深度学习系统。本实施例中,基于待使用芯片组以及各个待使用芯片对应的待使用存储器输出构建信息,以供用户自行构建深度学习系统,使得得到的深度学习系统既满足了目标算法的计算需求、带宽需求,也降低了硬件成本与运行成本。此外,本发明实施例还提供一种基于上述所述的深度学习系统构建方法构建的深度学习系统,所述深度学习系统包括:多个通过数据接口串联的所述待使用芯片,各个待使用芯片连接有对应的待使用存储器。参照图4,图4为本发明深度学习系统建立方法一实施例中基于构建信息得到的深度学习系统的场景示意图。本实施例中,数据接口为实时、高速传递数据的接口。本发明深度学习系统的具体实施例与上述深度学习系统构建方法的各个实施例基本相同,在此不做赘述。此外,本发明实施例还提出一种存储介质,所述存储介质上存储有深度学习系统构建程序,所述深度学习系统构建程序被处理器执行时实现如上所述的深度学习系统构建方法的步骤。本实施例中,存储介质即计算机可读存储介质。本发明存储介质的具体实施例与上述深度学习系统构建方法的各个实施例基本相同,在此不做赘述。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域
,均同理包括在本发明的专利保护范围内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1