指令发送方法技术

技术编号:39513319 阅读:6 留言:0更新日期:2023-11-25 18:50
本申请实施例公开了一种指令发送方法

【技术实现步骤摘要】
指令发送方法、装置、设备及存储介质


[0001]本申请涉及但不限于图像处理
,尤其涉及一种指令发送方法

装置

设备及存储介质


技术介绍

[0002]当前图像处理器
(Graphics Processing Unit

GPU)
的处理器是以线程束为基本单元进行任务处理的,对于其中的单个线程束来讲,指令是一条一条从指令发射单元下发给下游指令队列中,指令队列根据最先发下来的指令是否已解除相关数据的依赖,来判断是否将该条指令发给对应的算术逻辑单元
(Arithmetic and Logic Unit

ALU)
去执行

当某个
ALU
完成对应指令的任务后,将完成的指示再传给指令队列,用以解除其它指令对于这条指令输出数据的依赖

[0003]对于单个线程束只能按指令顺序一条一条发给指令队列,而一个指令队列对应了多个
ALU
,即同时只能下发给某一个
ALU
一条指令,这对于可以流水操作的多个
ALU
来讲存在一定的时间浪费


技术实现思路

[0004]有鉴于此,本申请实施例至少提供一种指令发送方法

装置

设备及存储介质

[0005]本申请实施例的技术方案是这样实现的:
[0006]一方面,本申请实施例提供一种指令发送方法,所述方法包括:
[0007]获取多条指令;基于相关约束条件从所述多条指令中选取至少一条目标指令;其中,所述相关约束条件至少包括在所述多条指令对应至少两种指令类型的情况下,每一所述指令类型对应的所述目标指令至多一条;在当前时钟周期内按照所述至少一条目标指令所属的指令类型,将所述至少一条目标指令发送给与类型匹配的指令队列

[0008]另一方面,本申请实施例提供一种指令发送装置,所述装置包括:
[0009]指令获取模块,用于获取多条指令;
[0010]指令筛选模块,用于基于相关约束条件从所述多条指令中选取至少一条目标指令;其中,所述相关约束条件至少包括在所述多条指令对应至少两种指令类型的情况下,每一所述指令类型对应的所述目标指令至多一条;
[0011]指令发送模块,用于在当前时钟周期内按照所述至少一条目标指令所属的指令类型,将所述至少一条目标指令发送给与类型匹配的指令队列

[0012]再一方面,本申请实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的部分或全部步骤

[0013]又一方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的部分或全部步骤

[0014]本申请实施例中,首先,获取多条指令;然后基于相关约束条件从所述多条指令中
选取至少一条目标指令;最后在当前时钟周期内按照所述至少一条目标指令所属的指令类型,将所述至少一条目标指令发送给与类型匹配的指令队列;如此,通过对多条指令进行相关约束条件分析,筛选出至少一条目标指令,并按照指令类型将至少一条目标指令存入对应类型的指令队列中,从而可以通过多个类型的指令队列将多条不同指令同时发到不同的
ALU
中去执行,使得各类
ALU
在使用时尽可能被均匀用到,进而能够提升单线程束的执行效率

[0015]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开的技术方案

附图说明
[0016]此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本申请的实施例,并与说明书一起用于说明本申请的技术方案

[0017]图1为相关技术中单线程束的指令串行发送过程的示意图;
[0018]图2为本申请实施例提供的指令发送方法的可选的流程示意图;
[0019]图3为本申请实施例提供的指令发送方法的可选的流程示意图;
[0020]图4为本申请实施例提供的指令发送方法的可选的流程示意图;
[0021]图5为本申请实施例提供的多指令并行发送过程的示意图;
[0022]图6为本申请实施例提供的存在相同类型的多指令并行发送示意图;
[0023]图7为本申请实施例提供的存在前置数据依赖的多指令并行发送示意图;
[0024]图8为本申请实施例提供的存在已发送指令的多指令并行发送示意图;
[0025]图9为本申请实施例提供的一种指令发送装置的组成结构示意图;
[0026]图
10
为本申请实施例提供的一种计算机设备的硬件实体示意图

具体实施方式
[0027]为了使本申请的目的

技术方案和优点更加清楚,下面结合附图和实施例对本申请的技术方案进一步详细阐述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围

[0028]在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合

[0029]所涉及的术语“第一
/
第二
/
第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一
/
第二
/
第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施

[0030]除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的
的技术人员通常理解的含义相同

本文中所使用的术语只是为了描述本申请的目的,不是旨在限制本申请

[0031]在对本申请实施例进行进一步详细说明之前,先对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释

[0032]线程块会被拆分成最小执行线程束
(
或简称线程束,
thread warp)
,每个线程束包含了固定数量
(
或小于这个固定数量
)
的线程,例如,
32
个线程

当多个线程块在同一计算单元中执行时,该计算单元中的线程束可以来自于同一个线程块或不同的线程块,且同一线程束中所有线程可以按照单指令多数据流
(Single Instruction Multiple Data
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种指令发送方法,其特征在于,应用于单线程束,所述方法包括:获取多条指令;基于相关约束条件从所述多条指令中选取至少一条目标指令;其中,所述相关约束条件至少包括在所述多条指令对应至少两种指令类型的情况下,每一所述指令类型对应的所述目标指令至多一条;在当前时钟周期内按照所述至少一条目标指令所属的指令类型,将所述至少一条目标指令发送给与类型匹配的指令队列
。2.
根据权利要求1所述的方法,其特征在于,所述基于相关约束条件从所述多条指令中选取至少一条目标指令,包括:从所述多条指令中读取第一数量的指令作为候选指令,所述候选指令符合远期数据依赖;基于相关约束条件从所述候选指令中选取至少一条目标指令
。3.
根据权利要求2所述的方法,其特征在于,所述相关约束条件包括所述目标指令不能依赖于不属于所述候选指令的未发送指令
。4.
根据权利要求2所述的方法,其特征在于,所述相关约束条件包括:在所述候选指令中存在至少两条指令属于同一指令类型的情况下,所述目标指令的地址离程序计数器的值最近;其中,所述程序计数器的值表征当前待执行指令的地址
。5.
根据权利要求2所述的方法,其特征在于,所述相关约束条件包括:在所述候选指令中存在第四候选指令依赖于第三候选指令的情况下,所述至少一条目标指令包括所述第四候选指令和所述第三候选指令,其中,所述第四候选指令的指令类型与所述第三候选指令的指令类型不同
。6.
根据权利要求4所述的方法,其特征在于,在将所述至少一条目标指令发送完成之后,所述方法还包括:确定所述当前时钟周期内与所述程序计数器的值相邻的连续发送的所述目标指令的指令总数;基于所述指令总数,更新所述程序计数器的值
。7.
根据权利要求6所述的方法,其特征在于,所述方法还包括:在所述程序计数器的值更新后,对指令地址仍位...

【专利技术属性】
技术研发人员:请求不公布姓名
申请(专利权)人:摩尔线程智能科技北京有限责任公司
类型:发明
国别省市:

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

1