任务数据的装载方法、装置和计算机设备制造方法及图纸

技术编号:37975341 阅读:9 留言:0更新日期:2023-06-30 09:50
本申请涉及一种任务数据的装载方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:当发起任务之后,对所述任务中涉及到的各类缓冲区进行分析,确定各所述缓冲区是否满足预设的只读缓冲区条件;将满足所述只读缓冲区条件的缓冲区确定为只读缓冲区;基于只读存储空间的空间信息和所述只读缓冲区的尺寸信息,将所述只读缓冲区映射到匹配的只读存储空间中,得到对应的只读映射信息;基于所述只读映射信息,将所述只读缓冲区中的任务数据装载至相匹配的只读存储空间。采用本方法能够提高任务数据的装载效率。够提高任务数据的装载效率。够提高任务数据的装载效率。

【技术实现步骤摘要】
任务数据的装载方法、装置和计算机设备


[0001]本申请涉及计算机
,特别是涉及一种任务数据的装载方法、装置、计算机设备、存储介质和计算机程序产品。

技术介绍

[0002]OpenCL是一个为异构平台编写程序的框架,此异构平台可由中央处理器(CPU)、图形处理器(GPU)或其他类型的处理器组成。OpenCL由一门用于编写kernels(在OpenCL设备上运行的函数)的语言(基于C99)和一组用于定义并控制平台的API(应用程序接口)组成。
[0003]以常见的CPU、GPU异构方式为例:一般来说,CPU端发起GPU端的OpenCL task(任务),从OpenCL的角度来说,编译器会使用更有效率的取数指令来完成对只读缓冲区(read only Buffer)的数据装载(LOAD)功能,如果一块缓冲区(Buffer)未被常量(Constant)修饰、只读(read_only)限定符修饰,实际代码(Kernel)中对这块Buffer也没有STORE(写)动作,如果这样的Buffer仍被编译器映射到普通的Memory Buffer(内存缓冲)中,就等同于放弃了更有效率的取数指令的数据LOAD方案,进而影响程序运行性能。

技术实现思路

[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]图1为一个实施例中任务数据的装载方法的应用环境图;
[0036]图2为一个实施例中任务数据的装载方法的流程示意图;
[0037]图3为另一个实施例中任务数据的装载方法的流程示意图;
[0038]图4为一个实施例中任务数据的装载方法的结构框图;
[0039]图5为一个实施例中任务数据的装载装置的结构框图;
[0040]图6为一个实施例中计算机设备的内部结构图。
具体实施方式
[0041]为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种任务数据的装载方法,其特征在于,所述方法包括:当发起任务之后,对所述任务中涉及到的各类缓冲区进行分析,确定各所述缓冲区是否满足预设的只读缓冲区条件;将满足所述只读缓冲区条件的缓冲区确定为只读缓冲区;基于只读存储空间的空间信息和所述只读缓冲区的尺寸信息,将所述只读缓冲区映射到匹配的只读存储空间中,得到对应的只读映射信息;基于所述只读映射信息,将所述只读缓冲区中的任务数据装载至相匹配的只读存储空间。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:将不满足所述只读缓冲区条件的缓冲区确定为读写缓冲区或写缓冲区;将所述读写缓冲区或写缓冲区映射到常规存储空间中,得到对应的常规映射信息;根据所述常规映射信息,将所述读写缓冲区或写缓冲区中的任务数据装载至所述常规存储空间。3.根据权利要求1所述的方法,其特征在于,所述对所述任务中涉及到的各类缓冲区进行分析,确定各所述缓冲区是否满足预设的只读缓冲区条件,包括:对所述任务中涉及到各类缓冲区的进行分析,确定各所述缓冲区是否携带只读属性信息;若所述缓冲区携带所述只读属性信息,则确定所述缓冲区满足预设的只读缓冲区条件。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:若所述缓冲区不携带所述只读属性信息,则对中间语言进行扫描,确定所述缓冲区是否涉及到写回动作,所述中间语言为编译器根据所述任务的任务信息产生的中间表达语言;若不涉及到所述写回动作,则仍确定所述缓冲区满足预设的只读缓冲区条件。5.根据权利要求1所述的方法,其特征在于,所述只读存储空间包括第一常量存储区、第二常量存储区以及采样器存储区;所述基于只读存储空间的空间信息和所述只读缓冲区的尺寸信息,将所述只读缓冲区映射到匹配的只读存储空间...

【专利技术属性】
技术研发人员:常竹林张淮声金鑫
申请(专利权)人:格兰菲智能科技有限公司
类型:发明
国别省市:

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

1