System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种线程间操作数收集策略及应用系统技术方案_技高网

一种线程间操作数收集策略及应用系统技术方案

技术编号:44817113 阅读:3 留言:0更新日期:2025-03-28 20:05
本发明专利技术公开一种线程间操作数收集策略及应用系统,涉及GPGPU的跨线程数据共享技术领域。针对GPGPU在数据共享场景下因同步操作导致的读写延迟以及缓存占用问题,采用方案包括译码单元、发射单元和写回单元,这三个单元相互协作,形成一个完整的跨线程数据读写通路,其中:译码单元负责对自定义指令进行解码和线程索引的重映射;发射单元承担指令缓存、数据同步控制以及跨线程数据读取的任务;写回单元负责将指令执行结果写回存储空间,并更新相关寄存器的状态。本发明专利技术可以提高GPGPU在多线程并行计算场景下的并行性能。

【技术实现步骤摘要】

本专利技术涉及gpgpu的跨线程数据共享,具体的说是一种线程间操作数收集策略及应用系统


技术介绍

1、通用图形处理器(general-purpose graphics processing unit,gpgpu)采用单指令多线程(simt)架构,这种架构允许多个线程并行执行相同的指令。simt的设计使得gpgpu能够高效地处理大规模并行计算任务,同时保持编程的灵活性和可扩展性。gpgpu将多个线程(通常32个)组织成一个线程束(warp),线程束内的线程同步执行相同的指令,但线程间的数据是独立的,并不能直接在线程间共享。

2、gpgpu提供了共享内存这一快速的片上存储资源,用于线程束间的数据共享。共享内存的访问速度远高于全局内存,因此在需要频繁交换数据的场景下,使用共享内存可以显著提升性能。线程束中的线程可以将数据写入共享内存,其他线程束的线程则可以从共享内存中读取这些数据,以此实现数据共享。不过,在借助共享内存进行数据共享时,必须进行线程束间的同步操作,以保障数据的一致性与正确性。但同步过程中,所有线程束都需等待最慢的线程束完成操作,这无疑会带来额外开销,尤其当线程束数量众多时,同步开销会更加显著,进而降低程序执行效率。

3、近年来,以神经网络为代表的人工智能技术发展迅猛,各类神经网络模型以矩阵运算为基础算子,而矩阵运算通常依赖共享存储器来提升性能。尽管共享存储器为线程束间数据交换提供了便利途径,但在一些gpgpu架构中,共享存储器初始数据加载通路存在不便。编程人员使用共享存储器时,需借助寄存器rx作为媒介,先从全局存储器读取数据,数据历经多级缓存等多个存储层次后写入媒介寄存器;最后,再从寄存器读出数据写入共享存储器。并且,由于共享存储器依赖寄存器作为媒介,加之高速缓存多采用包含性设计,部分数据可能滞留在l1高速缓存中,造成宝贵的片上缓存资源浪费。


技术实现思路

1、本专利技术针对目前技术发展的需求和不足之处,提供一种线程间操作数收集策略及应用系统,解决gpgpu在数据共享场景下因同步操作导致的读写延迟以及缓存占用问题,提高并行性能。

2、本专利技术的一种线程间操作数收集策略及应用系统,解决上述技术问题采用的技术方案如下:

3、一种线程间操作数收集策略及应用系统,其实现架构包括:

4、译码单元,由自定义指令解码器和线程重映射模块组成,其中:解码器对自定义指令进行解码,提取控制信息;线程重映射模块根据提取的控制信息计算出真正的线程索引;

5、发射单元,包含指令队列、记分牌以及操作数收集器,其中:指令队列缓存解码后的指令;记分牌为每条线程束创建记分表,控制指令执行顺序,通过查询寄存器写回状态标志,避免数据相关性冒险,实现数据同步控制;操作数收集器将所有线程的寄存器统一管理,为每条发射通道创建收集表,根据指令控制信息初始化收集表,计算偏移地址,从统一存储空间读取寄存器,完成跨线程数据读取;发射单元完成数据读取后将指令和数据送往执行单元,执行单元的结果再传递给写回单元进行写回操作;

6、写回单元,从指令执行结果中提取目的操作数,根据目的线程索引和目的寄存器标号计算目的寄存器偏移地址,将数据写入存储空间,并通知记分牌修改对应寄存器的写回状态,完成跨线程数据写入,形成完整的跨线程数据读写通路。

7、可选的,扩展risc-v指令集,分别定义线程束间操作数访存指令、不同线程束的线程间操作数访存指令以及同线程束内线程间操作数的访存指令;

8、解码器对扩展risc-v指令集后的自定义指令进行解码,提取控制信息,包括线程索引和线程索引偏移;线程重映射模块加和指令的线程索引和线程索引偏移,计算得到真正的线程索引。

9、可选的,所涉及译码单元在对自定义指令进行解码时,需要对指令的合法性进行验证:若发现指令中包含不合法的控制信息或者不符合自定义指令集的格式要求,译码单元拒绝解码该指令,并将错误信息反馈给系统;

10、线程重映射模块在计算真正的线程索引时,会考虑线程束的边界情况:若计算得到的线程索引超出了线程束的有效范围,线程重映射模块会根据预设的规则对线程索引进行修正,确保线程索引的有效性和准确性。

11、可选的,所涉及指令队列缓存同一线程束对应的解码后的指令。

12、进一步可选的,所涉及记分牌具体通过如下操作控制每条线程束所对应指令的执行顺序:

13、首先,记分表为线程的每个寄存器分配1比特状态位,用于记录该寄存器的写回状态;

14、然后,当指令需要跨线程读取寄存器时,记分牌根据译码后的线程索引和寄存器标号,查询待访问寄存器对应的状态标志,判断该数据是否已经写回;

15、最后,记分牌遍历指令队列中指令,优先选择已完成数据写回的指令进行操作数收集,避免相关性冒险,实现数据同步控制。

16、优选的,所涉及记分牌在控制指令执行顺序时,会对指令的优先级进行评估:对具有较高实时性要求或者对整个计算流程至关重要的指令,记分牌会在满足数据写回状态判断的基础上,优先将其标记为可执行状态,即使此时队列中还有已完成数据写回的指令;

17、同时,记分牌会记录指令在队列中的等待时间,若某条指令的等待时间超过预设阈值、且其所需数据已写回,记分牌将采取预设的处理机制,调整指令的执行顺序或者发出警告信息,以避免指令长时间阻塞影响系统性能。

18、可选的,所涉及操作数收集器具体通过如下操作完成线程间的操作数读取:

19、首先,每个收集表包含n个收集条目,n由指令可能使用的最大寄存器数目决定,每个收集条目包括以下字段:有效位字段,表示该条目对应的操作数是否需要收集;源寄存器标号,表示操作数所在寄存器;偏移地址字段,表示寄存器在存储空间中的地址;数据字段,用于暂存读取到的操作数;就绪位字段,表示该条目对应的操作数是否完成收集;

20、然后,操作数收集器根据指令的控制信息初始化收集表,其中,偏移地址为待读取寄存器在存储空间中的绝对地址,需要根据译码后的线程索引和寄存器标号计算,计算系统如公式(1)所示:

21、公式(1),

22、式中,表示偏移地址;表示源寄存器相关的信息,表示取源寄存器srsx从第bit位到第0位的部分,这部分信息可能包含了寄存器地址的一部分或者与线程相关的索引信息;表示线程束的索引,用于标识不同的线程束,定位线程束在整个计算资源中的位置;

23、最后,操作数收集器根据偏移地址从统一的存储空间中读取寄存器,完成跨线程的数据读取。

24、优选的,所涉及操作数收集器在初始化收集表时,对于有效位字段的设置遵循以下规则:

25、a)当指令明确需要收集某操作数时,对应收集条目的有效位字段设置为有效状态;

26、b)当指令明确无需收集某操作数时,将对应有效位字段设置为无效状态;

27、同时,操作数收集器对收集表中的就绪位字段进行初始化为未就绪状本文档来自技高网...

【技术保护点】

1.一种线程间操作数收集策略及应用系统,其特征在于,其实现架构包括:

2.根据权利要求1所述的一种线程间操作数收集策略及应用系统,其特征在于,扩展RISC-V指令集,分别定义线程束间操作数访存指令、不同线程束的线程间操作数访存指令以及同线程束内线程间操作数的访存指令;

3.根据权利要求2所述的一种线程间操作数收集策略及应用系统,其特征在于,所述译码单元在对自定义指令进行解码时,需要对指令的合法性进行验证:若发现指令中包含不合法的控制信息或者不符合自定义指令集的格式要求,译码单元拒绝解码该指令,并将错误信息反馈给系统;

4.根据权利要求1所述的一种线程间操作数收集策略及应用系统,其特征在于,所述指令队列缓存同一线程束对应的解码后的指令。

5.根据权利要求4所述的一种线程间操作数收集策略及应用系统,其特征在于,所述记分牌具体通过如下操作控制每条线程束所对应指令的执行顺序:

6.根据权利要求5所述的一种线程间操作数收集策略及应用系统,其特征在于,所述记分牌在控制指令执行顺序时,会对指令的优先级进行评估:对具有较高实时性要求或者对整个计算流程至关重要的指令,记分牌会在满足数据写回状态判断的基础上,优先将其标记为可执行状态,即使此时队列中还有已完成数据写回的指令;

7.根据权利要求5所述的一种线程间操作数收集策略及应用系统,其特征在于,所述操作数收集器具体通过如下操作完成线程间的操作数读取:

8.根据权利要求7所述的一种线程间操作数收集策略及应用系统,其特征在于,所述操作数收集器在初始化收集表时,对于有效位字段的设置遵循以下规则:

9.根据权利要求7所述的一种线程间操作数收集策略及应用系统,其特征在于,所述发射单元中的操作数收集器在从统一存储空间读取寄存器数据时,采用了缓存机制;

...

【技术特征摘要】

1.一种线程间操作数收集策略及应用系统,其特征在于,其实现架构包括:

2.根据权利要求1所述的一种线程间操作数收集策略及应用系统,其特征在于,扩展risc-v指令集,分别定义线程束间操作数访存指令、不同线程束的线程间操作数访存指令以及同线程束内线程间操作数的访存指令;

3.根据权利要求2所述的一种线程间操作数收集策略及应用系统,其特征在于,所述译码单元在对自定义指令进行解码时,需要对指令的合法性进行验证:若发现指令中包含不合法的控制信息或者不符合自定义指令集的格式要求,译码单元拒绝解码该指令,并将错误信息反馈给系统;

4.根据权利要求1所述的一种线程间操作数收集策略及应用系统,其特征在于,所述指令队列缓存同一线程束对应的解码后的指令。

5.根据权利要求4所述的一种线程间操作数收集策略及应用系统,其特征在于,所述记分牌具体通过如下操作控制每...

【专利技术属性】
技术研发人员:孟凡琨秦刚赵鑫鑫姜凯
申请(专利权)人:山东浪潮科学研究院有限公司
类型:发明
国别省市:

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

1