数据加载方法及图形处理器、计算机可读存储介质技术

技术编号:37619804 阅读:10 留言:0更新日期:2023-05-18 12:11
一种数据加载方法及图形处理器、计算机可读存储介质,所述数据加载方法包括:接收数据加载指令;检测到所述数据加载指令存在模式标识符时,获取所述数据加载指令指示的目标数据的数据量,并从常量缓冲区视图中获取所述目标数据的地址;根据所述目标数据的地址,读取所述目标数据;将所述目标数据加载至N个目的寄存器中;N为正整数。采用上述方案,能够提高数据加载速度。据加载速度。据加载速度。

【技术实现步骤摘要】
数据加载方法及图形处理器、计算机可读存储介质


[0001]本专利技术涉及图形处理器
,尤其涉及一种数据加载方法及图形处理器、计算机可读存储介质。

技术介绍

[0002]为进一步提升图形渲染的效果和性能,基于三维(3D)图形渲染的流水线和基于人工智能(AI)的深度学习流水线深度融合。为了在3D图形渲染的图形处理器(Graphics Processing Unit,GPU)中支持深度学习功能,不但需要向量/张量运算核心的支持,还需要与之相匹配的将大量矩阵数据加载至运算核心的速度。
[0003]现有技术中,矩阵数据的加载速度较慢。

技术实现思路

[0004]本专利技术解决的是矩阵数据的加载速度较慢的技术问题。
[0005]为解决上述技术问题,本专利技术提供一种数据加载方法,包括:接收数据加载指令;检测到所述数据加载指令存在模式标识符时,获取所述数据加载指令指示的目标数据的数据量,并从常量缓冲区视图中获取所述目标数据的地址;根据所述目标数据的地址,读取所述目标数据;将所述目标数据加载至N个目的寄存器中,N为正整数。
[0006]可选的,所述从常量缓冲区视图中获取所述目标数据的地址,包括:获取所述目标数据的起始数据在所述常量缓冲区视图中的起始偏移量;根据所述起始偏移量以及所述目标数据的数据量,从所述常量缓冲区视图中获取所述目标数据的起始地址以及结束地址。
[0007]可选的,所述获取所述目标数据的起始数据在所述常量缓冲区视图中的起始偏移量,包括:获取所述数据加载指令中的立即数;基于所述立即数,确定所述起始偏移量。
[0008]可选的,所述获取所述目标数据的起始数据在所述常量缓冲区视图中的起始偏移量,包括:获取所述数据加载指令中的寄存器;基于所述寄存器,确定所述起始偏移量。
[0009]可选的,所述目标数据包括:矩阵数据。
[0010]可选的,所述将所述目标数据加载至N个目的寄存器中,包括:根据所述目标数据的数据量,确定所述目的寄存器的个数N;将所述目标数据加载至N个目的寄存器中。
[0011]可选的,所述将所述目标数据加载至N个目的寄存器中,包括:将所述目标数据加载至地址连续的N个目的寄存器中。
[0012]可选的,所述目标数据的地址包括起始地址;所述将所述目标数据加载至地址连续的N个目的寄存器中,包括:基于所述目标数据的起始地址,读取所述目标数据;每完成一次数据读取操作,对实时偏移量进行更新,所述实时偏移量用于表征待读取数据与所述目标数据的起始地址之间的偏移量;在完成预设长度的数据读取操作后,将所述预设长度的目标数据加载至对应的目的寄存器,对未读取的目标数据的数据量进行更新,并更新进行数据加载的目的寄存器的标识。
[0013]可选的,所述数据加载方法还包括:检测到所述数据加载指令不存在模式标识符
时,从所述常量缓冲区视图中获取所述目标数据的地址;根据所述目标数据的地址,读取所述目标数据;将所述目标数据加载至目的寄存器中。
[0014]本专利技术还提供了一种图形处理器,包括:访问控制器以及调度执行核心,其中:所述访问控制器,用于接收数据加载指令;所述调度执行核心,用于检测到所述数据加载指令的模式标识符时,获取所述数据加载指令指示的目标数据的数据量,并从常量缓冲区视图中获取所述目标数据的地址;根据所述目标数据的数据量以及所述目标数据的地址,读取所述目标数据;将所述目标数据加载至N个目的寄存器中;N为正整数。
[0015]本专利技术还提供了一种计算机可读存储介质,所述计算机可读存储介质为非易失性存储介质或非瞬态存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行上述任一种所述的数据加载方法的步骤。
[0016]与现有技术相比,本专利技术的技术方案具有以下有益效果:检测到数据加载指令的模式标识符使能时,根据目标数据的数据量以及目标数据的地址,读取目标数据,并将目标数据加载至N个目的寄存器中。由此,通过一条数据加载指令实现多条数据的加载,从而提高数据加载速度。
附图说明
[0017]图1是本专利技术实施例中的一种数据加载方法的流程图;图2是本专利技术实施例中的一种图形处理器的结构示意图。
具体实施方式
[0018]传统的矩阵数据加载方式,通过加载/存储(load/store)路径和纹理单元读取加载路径。上述的两种路径主要为3D图形数据服务,一条数据加载指令仅能够加载一条数据,加载速度较慢。
[0019]在本专利技术实施例中,检测到数据加载指令的模式标识符使能时,根据目标数据的数据量以及目标数据的地址,读取目标数据,并将目标数据加载至N个目的寄存器中。由此,通过一条数据加载指令实现多条数据的加载,从而提高数据加载速度。
[0020]为使本专利技术的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本专利技术的具体实施例做详细的说明。
[0021]本专利技术实施例提供了一种数据加载方法,参照图1,以下通过具体步骤进行详细说明。
[0022]步骤101,接收数据加载指令。
[0023]在具体实施中,可以由图形处理器内部的硬件单元接收数据加载指令,硬件单元能够实现指令接收的功能,可以为访问控制器、访问控制单元等。
[0024]在本专利技术实施例中,数据加载指令可以为常量数据加载指令,用于加载并缓存内存中常量缓冲区视图(Constant Buffer View,CBV)的数据。
[0025]以数据加载指令为CDL(const data load)指令为例,现有技术中的CDL指令的结构如下:CDL dest_reg, offset_reg, cbv[idx];其中,dest_reg为目的寄存器,用于存放取回的常量数据;offset_reg,用于表征
常量数据在cbv中的偏移量,该值可以是寄存器也可以是立即数; cbv[idx]中的idx表示当前选中的是哪一个cbv中描述(存放)的数据。上述指令的完整含义为:加载cbv编号为idx的内存区域中偏移量为offest处对应的常量数据到寄存器dest_reg中。
[0026]在具体应用中,GPU中的运算单元以单指令多数据流(Single Instruction Multiple Data,SIMD)运行。假设当前是SIMD32模式,则dest_reg对应32个32bit宽的向量寄存器,offset_reg同样对应32个32bit宽的寄存器。
[0027]在本专利技术实施例中,当编译器(compiler)检测到短时间内需要加载大量数据的需求时,可以对现有的数据加载指令进行更改,在更改后的数据加载指令中,增加模式标识符,以及需要加载的数据的数据量。反之,当编译器检测到短时间内不存在加载大量数据的需求时,则可以无需对现有的数据加载指令进行更改。
[0028]具体地,在数据加载指令中增加模式标识符,通过模式标识符指示短时间内需要加载大量数据。在数据加载指令中增加需要加载的数据的数据量,指示本条数据加载指令所要加载的数据大小。
...

【技术保护点】

【技术特征摘要】
1.一种数据加载方法,其特征在于,包括:接收数据加载指令;检测到所述数据加载指令存在模式标识符时,获取所述数据加载指令指示的目标数据的数据量,并从常量缓冲区视图中获取所述目标数据的地址;根据所述目标数据的地址,读取所述目标数据;将所述目标数据加载至N个目的寄存器中,N为正整数。2.如权利要求1所述的数据加载方法,其特征在于,所述从常量缓冲区视图中获取所述目标数据的地址,包括:获取所述目标数据的起始数据在所述常量缓冲区视图中的起始偏移量;根据所述起始偏移量以及所述目标数据的数据量,从所述常量缓冲区视图中获取所述目标数据的起始地址以及结束地址。3.如权利要求2所述的数据加载方法,其特征在于,所述获取所述目标数据的起始数据在所述常量缓冲区视图中的起始偏移量,包括:获取所述数据加载指令中的立即数;基于所述立即数,确定所述起始偏移量。4.如权利要求2所述的数据加载方法,其特征在于,所述获取所述目标数据的起始数据在所述常量缓冲区视图中的起始偏移量,包括:获取所述数据加载指令中的寄存器;基于所述寄存器,确定所述起始偏移量。5.如权利要求1所述的数据加载方法,其特征在于,所述目标数据包括:矩阵数据。6.如权利要求1所述的数据加载方法,其特征在于,所述将所述目标数据加载至N个目的寄存器中,包括:根据所述目标数据的数据量,确定所述目的寄存器的个数N;将所述目标数据加载至N个目的寄存器中。7.如权利要求1所述的数据加载方法,其特征在于,所述将所述目标数据加载至N个目的寄存器中,包括:将所述目标数据加载至地...

【专利技术属性】
技术研发人员:孙超商秋和华朱康挺
申请(专利权)人:砺算科技上海有限公司
类型:发明
国别省市:

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

1