一种私有内存分配寻址方法、装置、图形处理器及介质制造方法及图纸

技术编号:37853857 阅读:14 留言:0更新日期:2023-06-14 22:46
本发明专利技术公开了一种私有内存分配寻址方法、装置、图形处理器及介质。该方法包括:获取硬件线程所需的地址空间大小,确定各处理器核中的线程组数量及各线程组中的硬件线程数量;响应于运算中目标线程组中目标硬件线程对目标地址空间中私有数据的寻址,根据目标线程组编号确定目标线程组所属的目标工作组;其中,各线程组中数据按垂直模式排列;各线程组之间数据连续排列;根据目标地址空间、目标硬件线程编号以及硬件线程数量,确定工作组内地址偏移量;根据目标工作组信息确定工作组间地址偏移量;从而确定目标地址空间的最终地址偏移量,获取私有数据。本发明专利技术自适应地对私有内存进行分配寻址,提高了私有存储利用率,及私有数据的读写访问效率。的读写访问效率。的读写访问效率。

【技术实现步骤摘要】
一种私有内存分配寻址方法、装置、图形处理器及介质


[0001]本专利技术涉及计算机
,尤其涉及一种私有内存分配寻址方法、装置、图形处理器及介质。

技术介绍

[0002]随着计算机技术的发展,多核处理器如图形处理器(Graphics Processing Unit,GPU)的应用越来越普遍。在GPU中存在硬件线程,各个硬件线程具有独立的私有内存。
[0003]通常,硬件线程的私有数据是存储在寄存器中的,可以被处理器核高效实用。但是,当寄存器数量不足时,需要将私有数据先存储在私有内存。在需要使用私有数据时,再从私有内存读取私有数据,写入到寄存器。
[0004]现有技术中,硬件线程的私有内存使用是由应用程序执行决定的,存在私有内存分配过大或过小的问题。当为硬件线程分配的私有内存较大时,整个GPU所需的私有内存很大,内存应用率低。当为硬件线程分配的私有内存较小时,会增加私有数据搬运次数,影响GPU性能。因此,亟待提供一种对私有内存进行合理分配的技术方案。

技术实现思路

[0005]本专利技术提供了一种私有内存分配寻址方法、装置、图形处理器及介质,以自适应地动态对GPU中的私有内存进行分配寻址,提高私有内存利用率及私有数据的读写访问效率。
[0006]根据本专利技术的一方面,提供了一种私有内存分配寻址方法,该方法包括:
[0007]获取在运算中硬件线程所需私有内存的地址空间大小,并根据所述地址空间大小确定各处理器核中的线程组数量以及各线程组中的硬件线程数量;
[0008]响应于运算中目标线程组中目标硬件线程对目标地址空间中私有数据的寻址,根据目标线程组编号确定所述目标线程组所属的目标工作组;其中,在各所述线程组中,数据按照垂直模式排列;在各所述线程组之间,数据连续排列;
[0009]根据所述目标地址空间、目标硬件线程编号以及所述硬件线程数量,确定工作组内地址偏移量;并根据目标工作组信息确定工作组间地址偏移量;
[0010]根据所述工作组内地址偏移量和所述工作组间地址偏移量,确定目标地址空间的最终地址偏移量,并根据所述最终地址偏移量获取私有数据。
[0011]根据本专利技术的另一方面,提供了一种私有内存分配寻址装置,该装置包括:
[0012]线程信息确定模块,用于获取在运算中硬件线程所需私有内存的地址空间大小,并根据所述地址空间大小确定各处理器核中的线程组数量以及各线程组中的硬件线程数量;
[0013]目标工作组确定模块,用于响应于运算中目标线程组中目标硬件线程对目标地址空间中私有数据的寻址,根据目标线程组编号确定所述目标线程组所属的目标工作组;其中,在各所述线程组中,数据按照垂直模式排列;在各所述线程组之间,数据连续排列;
[0014]工作组地址偏移量确定模块,用于根据所述目标地址空间、目标硬件线程编号以
及所述硬件线程数量,确定工作组内地址偏移量;并根据目标工作组信息确定工作组间地址偏移量;
[0015]私有数据获取模块,用于根据所述工作组内地址偏移量和所述工作组间地址偏移量,确定目标地址空间的最终地址偏移量,并根据所述最终地址偏移量获取私有数据。
[0016]根据本专利技术的另一方面,提供了一种图形处理器,所述图形处理器包括:
[0017]至少一个处理器核,以及寄存器;
[0018]各所述处理器核中包括至少一个线程组,各所述线程组中包括至少一个硬件线程;
[0019]各所述硬件线程具有独立的私有内存;其中,
[0020]所述图形处理器的寄存器中存储有可被所述至少一个处理器核执行的计算机程序,所述计算机程序被所述至少一个处理器核执行,以使所述至少一个处理器核能够执行本专利技术任一实施例所述的私有内存分配寻址方法。
[0021]根据本专利技术的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本专利技术任一实施例所述的私有内存分配寻址方法。
[0022]本专利技术的技术方案,通过获取在运算中硬件线程所需私有内存的地址空间大小,并根据所述地址空间大小确定各处理器核中的线程组数量以及各线程组中的硬件线程数量;响应于运算中目标线程组中目标硬件线程对目标地址空间中私有数据的寻址,根据目标线程组编号确定所述目标线程组所属的目标工作组;其中,在各所述线程组中,数据按照垂直模式排列;在各所述线程组之间,数据连续排列;根据所述目标地址空间、目标硬件线程编号以及所述硬件线程数量,确定工作组内地址偏移量;并根据目标工作组信息确定工作组间地址偏移量;根据所述工作组内地址偏移量和所述工作组间地址偏移量,确定目标地址空间的最终地址偏移量,并根据所述最终地址偏移量获取私有数据,解决了私有内存的合理分配问题,可以自适应地对私有内存进行分配寻址,提高了私有存储利用率,也相应的提高了相同工作组内部的私有数据的读写访问效率。
[0023]应当理解,本部分所描述的内容并非旨在标识本专利技术的实施例的关键或重要特征,也不用于限制本专利技术的范围。本专利技术的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0024]为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0025]图1是根据本专利技术实施例一提供的一种私有内存分配寻址方法的流程图;
[0026]图2是根据本专利技术实施例一提供的一种GPU的硬件线程结构示意图;
[0027]图3是根据本专利技术实施例一提供的一种私有内存分配示意图;
[0028]图4是根据本专利技术实施例一提供的一种垂直模式排列结构示意图;
[0029]图5是根据本专利技术实施例二提供的一种私有内存分配寻址方法的流程图;
[0030]图6是根据本专利技术实施例三提供的一种私有内存分配寻址装置的结构示意图;
[0031]图7是实现本专利技术实施例的私有内存分配寻址方法的电子设备的结构示意图。
具体实施方式
[0032]为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分的实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。
[0033]需要说明的是,本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本专利技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种私有内存分配寻址方法,其特征在于,包括:获取在运算中硬件线程所需私有内存的地址空间大小,并根据所述地址空间大小确定各处理器核中的线程组数量以及各线程组中的硬件线程数量;响应于运算中目标线程组中目标硬件线程对目标地址空间中私有数据的寻址,根据目标线程组编号确定所述目标线程组所属的目标工作组;其中,在各所述线程组中,数据按照垂直模式排列;在各所述线程组之间,数据连续排列;根据所述目标地址空间、目标硬件线程编号以及所述硬件线程数量,确定工作组内地址偏移量;并根据目标工作组信息确定工作组间地址偏移量;根据所述工作组内地址偏移量和所述工作组间地址偏移量,确定目标地址空间的最终地址偏移量,并根据所述最终地址偏移量获取私有数据。2.根据权利要求1所述的方法,其特征在于,根据所述地址空间大小确定各处理器核中的线程组数量以及各线程组中的硬件线程数量,包括:根据所述地址空间大小,确定所述硬件线程所需地址空间的目标长度;根据私有内存总长度、所述目标长度、以及处理器核数,确定线程组数量与各线程组中的硬件线程数量的数量总和;根据所述数量总和、预设线程组数量条件以及预设硬件线程数量条件,确定各处理器核中的线程组数量以及各线程组中的硬件线程数量。3.根据权利要求2所述的方法,其特征在于,所述预设线程组数量条件为所述线程组数量至少为2;所述预设硬件线程数量条件为所述硬件线程数量大于等于对应处理器核中的计算单元数量相同;根据所述数量总和、预设线程组数量条件以及预设硬件线程数量条件,确定各处理器核中的线程组数量以及各线程组中的硬件线程数量,包括:如果所述数量总和能同时满足所述预设线程组数量条件与所述预设硬件线程数量条件,则确定所述硬件线程数量为对应处理器核中的计算单元数量,所述线程组数量为所述数量总和与所述硬件线程数量的差值;如果所述数量总和能满足所述预设线程组数量条件,但不能满足所述预设硬件线程数量条件,则确定所述线程组数量为2,所述硬件线程数量为所述数量总和与所述线程组数量的差值;否则,确定所述硬件线程数量与所述线程组数量均为1。4.根据权利要求1所述的方法,其特征在于,在各所述线程组中,数据按照垂直模式排列,包括:根据运算中的执行度,确定所述硬件线程在每次运算中所需的数据长度;根据所述数据长度在各所述硬件线程对应私有内存的地址空间中切分至少一个内存空间组,并为各内存空间组编号;其中,同一硬件线程对应的多个内存空间组按照地址空间顺序编号;不同硬件线程对应相同数量的内存空间组,且编号对应相同;在各所述线程组中,将所有硬件线程中相同编号的内存空间组所对应的数据连续排列,并将末位硬件线程对应的当前编号内存空间组所对应的数据与首位硬件线程对应的下一编号空间组所对应的数据连续...

【专利技术属性】
技术研发人员:和华王斐孙鹏阙恒
申请(专利权)人:砺算科技上海有限公司
类型:发明
国别省市:

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

1