向量处理器中通道的独立推进的制作方法

摘要: 背景技术:1、相关技术的描述2、任务的并行化用于增加计算系统的通量。为此,编译器从应用中提取可并行化的任务以在系统硬件上并行执行。为了增加硬件上的并行执行,可以...
向量处理器中通道的独立推进的制作方法

背景技术:

1、相关技术的描述

2、任务的并行化用于增加计算系统的通量。为此,编译器从应用中提取可并行化的任务以在系统硬件上并行执行。为了增加硬件上的并行执行,可以使用并行数据处理电路,该并行数据处理电路包括多个并行执行通道,诸如在单指令多数据(simd)微架构中的多个并行执行通道。这种类型的微架构为并行数据应用提供比通用微架构更高的指令吞吐量。受益于simd微架构的任务的一些示例包括视频图形渲染、密码学和机器学习数据模型。受益于simd微架构的任务被用于诸如医学、科学、化学、工程、社交媒体、金融等各种领域的各种应用中。

3、并行数据处理电路(例如,在gpu中)的simd电路通常具有单个程序计数器(pc)寄存器和多个执行通道。为了允许编译器将“单指令多线程”(simt)编程模型映射到多个执行通道,simd电路使用每通道谓词掩码来控制哪些通道是活动的。每个线程能够以与另一个并发地执行的线程不同的方向进行分支,并且多个执行通道中的全部执行通道利用simd电路的单个pc寄存器。编译器负责在并行数据应用中的控制流点处设置该谓词掩码,以去激活不执行当前选择的控制路径的通道。

4、上述使用单个程序计数器用于多个通道的方法的一个问题在于,可能使利用多个线程的并行数据应用发生死锁。此外,单独分支的执行被串行化。这可以减少应用中的存储器级并行性的量并降低性能。这些问题可以通过修改simd电路以在每个时钟周期中从多个执行通道中的每个执行通道独立地提取不同指令来解决。然而,这种方法会显著使硬件复杂化、增加管芯面积并增加功耗。

5、鉴于上述情况,需要用于在处理电路内的硬件并行执行通道中高效地处理指令的高效方法和装置。

技术实现思路

1.一种处理器,所述处理器包括:

2.根据权利要求1所述的处理器,其中所述电路系统还被配置为生成指定陷阱或中断已经发生的第二指示。

3.根据权利要求2所述的处理器,其中所述电路系统还被配置为响应于已经到达所述发散点和已经生成所述第二指示中的一者或多者,更新存储在向量寄存器文件中的所述多个程序计数器值。

4.根据权利要求2所述的处理器,其中所述电路系统还被配置为更新所述通道选择id以指定所述多个并行执行通道中的已经保持不活动的第二并行执行通道。

5.根据权利要求4所述的处理器,其中所述电路系统还被配置为利用所述多个程序计数器值中的与所述第二并行执行通道的程序计数器值匹配的对应一个程序计数器值,继续执行所述多个并行执行通道中的每个并行执行通道。

6.根据权利要求1所述的处理器,其中所述电路系统还被配置为在已经为if-else构造的第二路径发出的存储器访问指令完成之前,发出与所述if-else构造的第一路径相对应的存储器访问指令。

7.根据权利要求1所述的处理器,其中响应于到达所述发散点,所述电路系统还被配置为:

8.一种方法,所述方法包括:

9.根据权利要求8所述的方法,所述方法还包括由所述电路系统生成指定等待指令已经被执行的第二指示。

10.根据权利要求9所述的方法,所述方法还包括响应于已经到达所述发散点和已经生成所述第二指示中的一者或多者,更新存储在向量寄存器文件中的所述多个程序计数器值。

11.根据权利要求9所述的方法,所述方法还包括由所述电路系统更新所述通道选择id以指定所述多个并行执行通道中的已经保持不活动的第二并行执行通道。

12.根据权利要求11所述的方法,所述方法还包括利用所述多个程序计数器值中的与所述第二并行执行通道的程序计数器值匹配的对应一个程序计数器值,继续执行所述多个并行执行通道中的每个并行执行通道。

13.根据权利要求8所述的方法,所述方法还包括在已经为if-else构造的第二路径发出的存储器访问指令完成之前,发出与所述if-else构造的第一路径相对应的存储器访问指令。

14.根据权利要求13所述的方法,所述方法还包括防止执行所述第一路径和所述第二路径的指令的所述多个并行执行通道中的一个并行执行通道在所述发散点之后推进超过向量同步点,直到所述多个并行执行通道中的每个并行执行通道准备好推进。

15.一种计算系统,所述计算系统包括:

16.根据权利要求15所述的计算系统,其中所述电路系统还被配置为生成第二指示,所述第二指示指定自已经到达所述发散点以来已经过去的阈值时间段。

17.根据权利要求16所述的计算系统,其中所述电路系统还被配置为响应于已经到达所述发散点和已经生成所述第二指示中的一者或多者,更新存储在向量寄存器文件的所述多个程序计数器值中的所述多个程序计数器值。

18.根据权利要求16所述的计算系统,其中所述电路系统还被配置为更新所述通道选择id以指定所述多个并行执行通道中的已经保持不活动的第二并行执行通道。

19.根据权利要求18所述的计算系统,其中所述电路系统还被配置为利用所述多个程序计数器值中的与所述第二并行执行通道的程序计数器值匹配的对应一个程序计数器值,继续执行所述多个并行执行通道中的每个并行执行通道。

20.根据权利要求15所述的计算系统,其中所述电路系统还被配置为在已经为if-else构造的第二路径发出的存储器访问指令完成之前,发出与所述if-else构造的第一路径相对应的存储器访问指令。