显存分配的方法、装置、计算设备及计算机存储介质制造方法及图纸

技术编号:20546780 阅读:32 留言:0更新日期:2019-03-09 19:41
本发明专利技术公开了一种显存分配的方法、装置、计算设备及计算机存储介质,其中,方法包括:解析加载于设备中的一个或多个深度学习算法模型的数据流动路线,得到解析结果;根据解析结果得到各个深度学习算法模型的数据流动过程中所需占用的显存块的第一数量;确定各个深度学习算法模型的数据流动过程中的第一数量的显存块的分配规则;根据各个深度学习算法模型对应的分配规则为所述深度学习算法模型分配显存块。本发明专利技术方案,根据数据流动路线的解析结果确定深度学习算法模型所需占用的显存块的数量以及该数量的显存块的分配规则,使设备中的显存可以最大程度的发挥缓存的作用,进而通过提高显存利用率来降低深度学习算法模型的工程实施成本。

【技术实现步骤摘要】
显存分配的方法、装置、计算设备及计算机存储介质
本专利技术涉及计算机
,具体涉及一种显存分配的方法、装置、计算设备及计算机存储介质。
技术介绍
随着硬件技术的高速发展,目前市面上的主流硬件设备已经能满足深度学习算法的基本运行,但是在实际工业生产当中却隐含诸多问题。其中一种较典型的问题如下:大部分开源深度学习框架主要针对学术研究而开发,而对显卡的显存利用率一直不是很高,一般显卡设备无法负担以ResNet等超大规模的深度神经网络作为特征提取网络的深度学习算法对内存的需求。并且,在实际工业使用中,如果使用开源深度学习框架,比如Caffe这种通用的深度学习框架,它的硬件成本是非常昂贵的,进而造成一块显卡无法负载多个深度学习算法模型。因此,需要一种适用于工业生产的方案以克服现有的深度学习算法模型运行时显存利用率低、实施成本高的问题。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的显存分配的方法、装置、计算设备及计算机存储介质。根据本专利技术的一个方面,提供了一种显存分配的方法,其特征在于,包括:解析加载于设备中的一个或多个深度学习算法模型的数据流动路线,得到解析结果;根据解析结果得到各个深度学习算法模型的数据流动过程中所需占用的显存块的第一数量;确定各个深度学习算法模型的数据流动过程中的第一数量的显存块的分配规则;在一个或多个深度学习算法模型的运行中,根据各个深度学习算法模型对应的分配规则为所述深度学习算法模型分配显存块。根据本专利技术的另一方面,提供了一种显存分配的装置,其特征在于,包括:解析模块,适于解析加载于设备中的一个或多个深度学习算法模型的数据流动路线,得到解析结果;显存块数量确定模块,适于根据解析结果得到各个深度学习算法模型的数据流动过程中所需占用的显存块的第一数量;分配规则确定模块,适于确定各个深度学习算法模型的数据流动过程中的第一数量的显存块的分配规则;分配模块,适于在一个或多个深度学习算法模型的运行中,根据各个深度学习算法模型对应的分配规则为所述深度学习算法模型分配显存块。根据本专利技术的又一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述显存分配的方法对应的操作。根据本专利技术的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述显存分配的方法对应的操作。根据本专利技术的显存分配的方法、装置、计算设备及计算机存储介质,通过对深度学习算法模型的数据流动路线进行解析,可以得到反映深度学习算法模型中的多个神经网络层之间的数据流动关系的信息,即解析结果;然后,根据该信息得到深度学习算法模型的数据流动过程中所需占用的显存块的第一数量,并对数据流动过程中的第一数量的显存块进行分配,得到分配规则,该分配规则可以保障深度学习算法模型的正常数据流动,同时也可以仅占用必要的显存资源;在深度学习算法模型的运行过程中,根据分配规则进行显存块的分配,而不是给每个中间数据均分配显存块,进而减少了深度学习算法模型运行过程中所占用的显存资源,并且有利于在同一设备上运行多个深度学习算法模型,进而可以降低实施成本。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本专利技术一个实施例的显存分配的方法的流程图;图2示出了根据本专利技术另一个实施例的显存分配的方法的流程图;图3示出了一个具体的深度学习算法模型的数据流动路线的示意图;图4示出了根据本专利技术一个实施例的显存分配的装置的功能框图;图5示出了根据本专利技术实施例的一种计算设备的结构示意图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。深度学习算法模型是一种组接性以及模块化极强的算法模型,目前常用的深度学习框架比如Caffe,Mxnet,tensorflow等,它们的设计理念是将深度学习算法模型抽象成一个计算路线图(即为定义好的有向无环图),然后控制算法模型输入数据流动,逐层计算,并且每层都会有一个输入和输出,每一层的输出作为下一层输入依次经过计算路线图中的各个神经网络层,最终给出结果。现有技术中,用于学术研究的深度学习算法模型,在运行过程中,通常会将经过每一层传输的数据进行存储,而随着神经网络层的加深,所需存储的数据也越来越多,相应的,则需要开辟更多的显存用来存储数据,则一个深度学习算法模型会同时占用大量的显存空间,并且不利于在多个深度学习算法模型之间进行显存资源的分配与复用。基于此,同时考虑到实际工业生产中,算法使用者主要关注的是深度学习算法模型给出的最后值,其它的中间结果则没有任何意义,本专利技术提出了一种对常用的深度学习算法模型进行智能解析,利用解析结果为深度学习算法模型的运行过程分配显存的方案。图1示出了根据本专利技术一个实施例的显存分配的方法的流程图。如图1所示,该方法包括:步骤S101:解析加载于设备中的一个或多个深度学习算法模型的数据流动路线,得到解析结果。其中,数据流动路线是指与深度学习算法模型的计算路线相对应的路线。例如,对于一个单线路的计算路线,则数据流动路线为该计算路线中第一层的输入数据至最后一层的输出数据的流动路线。其中,计算路线是在深度学习算法模型定义的时候就确定好的。具体地,对加载于设备中的一个或多个深度学习算法模型的数据流动路线进行解析,得到解析结果,该解析结果包括反映深度学习算法模型中的多个神经网络层之间的数据流动关系的信息。步骤S102:根据解析结果得到各个深度学习算法模型的数据流动过程中所需占用的显存块的第一数量。其中,第一数量为允许深度学习算法模型同时占用的显存块的最大数量值,并且本专利技术中得到的第一数量少于深度学习算法模型中的数据节点的数量,该数据节点包括深度学习算法模型的初始输入数据(即第一个神经网络层的输入数据)对应的一个数据节点,以及深度学习算法模型的多个神经网络层的输出数据对应的多个数据节点。举例来说,深度学习算法模型共有5个神经网络层,则共有6个数据节点。具体地,从解析结果中可以获知为了保障深度学习算法模型的各个神经网络层的正常运算,深度学习算法模型的数据流动过程中的各个时刻所必须占用的显存块的情况,根据各个时刻所必须占用的显存块的情况确定可以深度学习算法模型分配的、允许深度学习算法模型同时占用的显存块的最大数量值,并将该允许深度学习算法模型同时占用的显存块的最大数量值作为深度学习算法模型的数据流动的整个过程本文档来自技高网...

【技术保护点】
1.一种显存分配的方法,其特征在于,包括:解析加载于设备中的一个或多个深度学习算法模型的数据流动路线,得到解析结果;根据解析结果得到各个深度学习算法模型的数据流动过程中所需占用的显存块的第一数量;确定各个深度学习算法模型的数据流动过程中的第一数量的显存块的分配规则;在一个或多个深度学习算法模型的运行中,根据各个深度学习算法模型对应的分配规则为所述深度学习算法模型分配显存块。

【技术特征摘要】
1.一种显存分配的方法,其特征在于,包括:解析加载于设备中的一个或多个深度学习算法模型的数据流动路线,得到解析结果;根据解析结果得到各个深度学习算法模型的数据流动过程中所需占用的显存块的第一数量;确定各个深度学习算法模型的数据流动过程中的第一数量的显存块的分配规则;在一个或多个深度学习算法模型的运行中,根据各个深度学习算法模型对应的分配规则为所述深度学习算法模型分配显存块。2.根据权利要求1所述的方法,其特征在于,所述解析加载于设备中的一个或多个深度学习算法模型的数据流动路线图,得到解析结果进一步包括:解析加载于设备中的一个或多个深度学习算法模型的数据流动路线,得到对应各个深度学习算法模型的数据流动路线的数据流动时序,以及得到对应各个深度学习算法模型的数据流动路线的数据流动时序中的各个时刻所需占用的显存块的第二数量;所述根据解析结果得到各个深度学习算法模型的数据流动过程中所需占用的显存块的第一数量进一步包括:根据解析出的各个时刻所需占用的显存块的第二数量得到所述深度学习算法模型的数据流动过程中所需占用的显存块的第一数量。3.根据权利要求2所述的方法,其特征在于,所述根据解析出的各个时刻所需占用的显存块的第二数量得到所述深度学习算法模型的数据流动过程中所需占用的显存块的第一数量进一步包括:比较解析出的各个时刻所需占用的显存块的第二数量的数量值的大小,确定数量值最大的第二数量为所述深度学习算法模型的数据流动过程中所需占用的显存块的第一数量。4.根据权利要求2或3所述的方法,其特征在于,所述确定各个深度学习算法模型的数据流动过程中的第一数量的显存块的分配规则进一步包括:根据各个深度学习算法模型的数据流动路线和数据流动时序确定所述深度学习算法模型的数据流动过程中的第一数量的显存块的分配规则。5.根据权利要求4所述的方法,其特征在于,所述分配规则包括释放显存块的规则和/或新增显存块的规则。6.根据权利要求5所述的方法,其特征在于,在所述根据各个深度学习算法模型对应的分配规则为所述深度学习算法模型分配显存块进一步之前,所述方法还包括:设置包括多个显存块的显存池;所述根据各个深度学习算法模型对应的分配规则为所述深度学习算法模型分配显存块进一步包括:根据所述释放显存块的规则将所述深度学习算法模型已占用的显存块释放至显存池中;和/或,根据所述新...

【专利技术属性】
技术研发人员:洪伟
申请(专利权)人:杭州比智科技有限公司
类型:发明
国别省市:浙江,33

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

1