一种显存分配方法、装置、存储介质及电子设备制造方法及图纸

技术编号:38462364 阅读:8 留言:0更新日期:2023-08-11 14:39
本申请公开了一种显存分配方法、装置、存储介质及电子设备,其中方法包括:获取用于处理数据的目标算法类链条;基于目标算法类链条中各算法子类单次运行时输入元素个数与输出元素个数的元素比以及各算法子类的输入间隔的步长,对目标算法类链条进行分割处理,获得若干算法类单元;确定各算法类单元的输入元素总个数,并基于各算法类单元的输入元素总个数、各算法类单元的公共元素比以及各算法类单元的步长,计算各算法类单元的输出元素总个数;至少基于各算法类单元对应的输入元素总个数以及输出元素总个数,对待分配的目标显存进行存储空间分配,获得各算法类单元对应的显存空间。本申请中能够使得分配结果更加合理,进而减少显存开销。而减少显存开销。而减少显存开销。

【技术实现步骤摘要】
一种显存分配方法、装置、存储介质及电子设备


[0001]本专利技术涉及计算机
,特别涉及一种显存分配方法、装置、存储介质及电子设备。

技术介绍

[0002]大多数异构平台的主要结构是一张CPU搭载一个外部计算设备,CPU负责该设备的调用、数据传输等功能,外部设备负责数据的处理、计算。主流的外部计算设备有:GPU、FPGA和DSP。随着NVIDIA公司发布CUDA语言以后,使用GPU进行并行计算的难度被大大降低,GPU也因其易于编程和搭建硬件环境的优点,变成了普遍使用的异构平台元件。
[0003]然而在面临大规模数据计算时,通常会在单次计算时会尽可能调用单张显卡上所有的计算单元,通过提高算法的并行性来尽量多地启用GPU线程数,因而显存开销较大的问题。

技术实现思路

[0004]有鉴于此,本专利技术提供了一种显存分配方法、装置、存储介质及电子设备,主要目的在于解决目前存在的显存开销较大的问题。
[0005]为解决上述问题,本申请提供一种显存分配方法,包括:
[0006]获取用于处理数据的目标算法类链条;
[0007]基于所述目标算法类链条中各算法子类单次运行时输入元素个数与输出元素个数的元素比以及各算法子类的输入间隔的步长,对所述目标算法类链条进行分割处理,获得若干算法类单元;
[0008]确定各算法类单元的输入元素总个数,并基于各算法类单元的输入元素总个数、各算法类单元的公共元素比以及各算法类单元的步长,计算各算法类单元的输出元素总个数;
[0009]至少基于各算法类单元对应的输入元素总个数以及输出元素总个数,对待分配的目标显存进行存储空间分配,获得各算法类单元对应的显存空间。
[0010]可选的,所述基于所述目标算法类链条中各算法子类单次运行时输入元素个数与输出元素个数的元素比以及各算法子类的输入间隔的步长,对所述目标算法类链条进行分割处理,获得若干算法类单元,具体包括:
[0011]确定目标算法类链条中各算法子类单次运行时的输入元素个数与输出元素个数的元素比以及各算法子类的输入间隔的步长;
[0012]基于任意相邻两个算法子类的元素比以及步长,利用预定的判断公式判断所述相邻两个算法子类是否符合分割条件,以在符合分割条件的情况下,对所述相邻两个算法子类合并,获得初始算法类单元;
[0013]基于所述的初始公共元素比、初始步长、与所述初始算法类单元相邻的算法子类的元素比以及步长,利用所述预定的判断公式判断所述初始算法类单元与所述算法子类是
否符合分割条件,直至针对各算法子类均完成分割条件的判断时,基于各所述初始算法类单元以及未进行分割的算法子类获得所述若干算法类单元。
[0014]可选的,在获得初始算法类单元之后,所述方法还包括:
[0015]基于所述初始算法类单元中的各算法子类的元素比以及步长,利用预定的计算公式,计算获得初始算法类单元的所述初始公共元素比以及所述初始步长。
[0016]可选的,所述确定各算法类单元的输入元素总个数,并基于各算法类单元的输入元素总个数、各算法类单元的公共元素比以及各算法类单元的步长,计算各算法类单元的输出元素总个数,具体包括:
[0017]基于目标算法类链条对应的配置文件,获取各算法子类的最小输入元素个数;
[0018]基于同一算法类单元中所包含的算法子类数量以及各算法子类对应的最小输入元素个数,确定算法类单元的最小输入元素个数以获得算法类单元的输入元素总个数;
[0019]基于各算法类单元的输入元素总个数以及各算法类单元的公共元素比以及各算法类单元的步长,分别确定各算法类单元对应的输出元素总个数。
[0020]可选的,所述至少基于各算法类单元对应的输入元素总个数以及输出元素总个数,对待分配的目标显存进行存储空间分配,获得各算法类单元对应的显存空间,具体包括:
[0021]基于所述算法类单元的个数确定第一显存空间的个数;
[0022]基于各算法类单元的输入元素总个数以及输出元素总个数确定各所述第一显存空间的第一存储容量;
[0023]基于各所述第一显存空间的第一存储容量对所述目标显存进行存储空间分配。
[0024]可选的,所述显存分配方法还包括:确定用于临时存储数据的第二显存空间的第二存储容量;
[0025]所述基于各所述第一显存空间的第一存储容量对所述目标显存进行存储空间分配,具体包括:
[0026]基于各所述第一显存空间的第一存储容量以及所述第二显存空间的第二存储容量对所述目标显存进行存储空间分配。
[0027]可选的,所述基于各算法类单元的输入元素总个数以及输出元素总个数确定各所述第一显存空间的第一存储容量,具体包括:
[0028]基于各所述算法类单元中位于首部的首部算法类单元的输入元素总个数以及首部算法类单元的输出元素总个数,确定与首部算法类单元对应的首部显存空间的第一存储容量;
[0029]基于各所述算法类单元中位于尾部的首部算法类单元的输入元素总个数以及尾部算法类单元的输出元素总个数,确定与尾部算法类单元对应的尾部显存空间的第一存储容量;
[0030]基于各所述算法类单元中,任意相邻两个算法类单元的输入元素总个数以及输出元素总个数,分别确定与任意相邻两个算法类单元的第一显存空间的第一存储容量。
[0031]为解决上述问题,本申请提供一种显存分配装置,包括:
[0032]第一获取模块,用于获取用于处理数据的目标算法类链条;
[0033]分割模块,用于基于所述目标算法类链条中各算法子类单次运行时输入元素个数
与输出元素个数的元素比以及各算法子类的输入间隔的步长,对所述目标算法类链条进行分割处理,获得若干算法类单元;
[0034]确定模块,用于确定各算法类单元的输入元素总个数,并基于各算法类单元的输入元素总个数、各算法类单元的公共元素比以及各算法类单元的步长,计算各算法类单元的输出元素总个数;
[0035]分配模块,用于至少至少基于各算法类单元对应的输入元素总个数以及输出元素总个数,对待分配的目标显存进行存储空间分配,获得各算法类单元对应的显存空间。
[0036]为解决上述问题,本申请提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述显存分配方法的步骤。
[0037]为解决上述问题,本申请提供一种电子设备,至少包括存储器、处理器,所述存储器上存储有计算机程序,所述处理器在执行所述存储器上的计算机程序时实现上述任一项所述显存分配方法的步骤。
[0038]本申请中的显存分配方法、装置、存储介质及电子设备,通过将算法类链条分割成若干算法类单元,然后基于各执行单元进行显存空间分配,能够使得分配结果更加合理,进而减少显存开销,并且在节省显存的同时,由于算法类链条中的所有子类均是从显存中提取数据进行计算,减少了无意义的数据传输,提高了计算速度。
[0039]上述说明仅本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种显存分配方法,其特征在于,包括:获取用于处理数据的目标算法类链条;基于所述目标算法类链条中各算法子类单次运行时输入元素个数与输出元素个数的元素比以及各算法子类的输入间隔的步长,对所述目标算法类链条进行分割处理,获得若干算法类单元;确定各算法类单元的输入元素总个数,并基于各算法类单元的输入元素总个数、各算法类单元的公共元素比以及各算法类单元的步长,计算各算法类单元的输出元素总个数;至少基于各算法类单元对应的输入元素总个数以及输出元素总个数,对待分配的目标显存进行存储空间分配,获得各算法类单元对应的显存空间。2.如权利要求1所述的方法,其特征在于,所述基于所述目标算法类链条中各算法子类单次运行时输入元素个数与输出元素个数的元素比以及各算法子类的输入间隔的步长,对所述目标算法类链条进行分割处理,获得若干算法类单元,具体包括:确定目标算法类链条中各算法子类单次运行时的输入元素个数与输出元素个数的元素比以及各算法子类的输入间隔的步长;基于任意相邻两个算法子类的元素比以及步长,利用预定的判断公式判断所述相邻两个算法子类是否符合分割条件,以在符合分割条件的情况下,对所述相邻两个算法子类合并,获得初始算法类单元;基于所述初始算法类单元的初始公共元素比、初始步长、与所述初始算法类单元相邻的算法子类的元素比以及步长,利用所述预定的判断公式判断所述初始算法类单元与所述算法子类是否符合分割条件,直至针对各算法子类均完成分割条件的判断时,基于各所述初始算法类单元以及未进行分割的算法子类获得所述若干算法类单元。3.如权利要求2所述的方法,其特征在于,在获得初始算法类单元之后,所述方法还包括:基于所述初始算法类单元中的各算法子类的元素比以及步长,利用预定的计算公式,计算获得初始算法类单元的所述初始公共元素比以及所述初始步长。4.如权利要求1所述的方法,其特征在于,所述确定各算法类单元的输入元素总个数,并基于各算法类单元的输入元素总个数、各算法类单元的公共元素比以及各算法类单元的步长,计算各算法类单元的输出元素总个数,具体包括:基于目标算法类链条对应的配置文件,获取各算法子类的最小输入元素个数;基于同一算法类单元中所包含的算法子类数量以及各算法子类对应的最小输入元素个数,确定算法类单元的最小输入元素个数以获得算法类单元的输入元素总个数;基于各算法类单元的输入元素总个数以及各算法类单元的公共元素比以及各算法类单元的步长,分别确定各算法类单元对应的输出元素总个数。5.如权利要求1所述的方法,其特征在于,所述至少基于各算法类单元对应的输入元素总个数以及输...

【专利技术属性】
技术研发人员:陈静雷
申请(专利权)人:东软医疗系统股份有限公司
类型:发明
国别省市:

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

1