GPU指令处理前端模拟装置、系统、方法以及存储介质与流程

allin2025-11-17  9


本公开涉及计算机,尤其涉及一种gpu指令处理前端模拟装置、系统、方法以及存储介质。


背景技术:

1、在图形处理器(graphics processing unit,gpu)设计的早期阶段,软件建模对于验证gpu的功能和性能至关重要。这一过程不仅允许对gpu的潜在性能进行预先评估,同时也通过模拟环境提供给软件开发人员一个早期的开发平台。这种方法促进了多部门的并行开发,加速了整个项目的进度。在gpu建模过程中,提供一个完整、符合设计标准的gpu模型至关重要。这样能够在虚拟机中解析通过pcie接口传递的合规数据。这个流程中,对gpu整体流水线(包括指令处理前端)的准确建模显得尤为关键。流水线算法架构(pipelinearchitecture)的模拟速度直接影响软件开发的进度,这个过程通常被称为“电子系统级(electronic system level,esl)建模”。

2、gpu的指令处理前端指的是gpu核心与固件之间交换数据的模块。它主要负责从显存中提取驱动程序下发的指令,并进行解码、统计图元信息,以及触发流水线处理等操作。但相关技术中,基于esl建模模拟gpu的指令处理前端的方式,存在模型复杂度高、开发设计、运行效率低下等问题。


技术实现思路

1、有鉴于此,本公开提出了一种gpu指令处理前端模拟装置、系统、方法以及存储介质。

2、根据本公开的一方面,提供了一种gpu指令处理前端模拟装置,所述装置包括:

3、启动处理模块,用于在检测到启动信号的情况下,从寄存器模拟模块获得第一信息,并根据所述第一信息重置渲染状态表,以及将根据所述第一信息生成的具有预设结构的第二信息发送至指令处理模块;

4、指令处理模块,用于根据所述第二信息从gpu虚拟显存中获取需要执行的各目标指令,并将各目标指令解码后依次发送至gpu流水线模拟模块,以使所述gpu流水线模拟模块依次执行接收到的各指令;

5、其中,所述第一信息包括与所述目标指令的执行相关的信息,所述第二信息包括按照所述预设结构排布的、与所述目标指令的执行相关的存储信息,所述启动信号用于指示所述寄存器模拟模块已经完成配置。

6、在一种可能的实现方式中,所述寄存器模拟模块包括多个虚拟寄存器,

7、所述启动处理模块,用于对所述多个虚拟寄存器中的第一虚拟寄存器进行监控,在确定所述第一虚拟寄存器被写入目标值的情况下,确定检测到所述启动信号。

8、在一种可能的实现方式中,所述启动处理模块,用于从所述寄存器模拟模块的各所述虚拟寄存器中获取到第一信息;

9、其中,所述第一信息包括用于重置所述渲染状态表的至少一个状态信息、gpu虚拟显存中存储目标指令的指令缓存空间的第一地址信息、所述指令缓存空间的第一长度、gpu虚拟显存中存储图元信息的图元缓存空间的第二地址信息、所述图元缓存空间的第二长度;所述第二信息包括所述第一地址信息、所述第一长度、所述第二地址信息、所述第二长度和所述渲染状态表的第三地址信息。

10、在一种可能的实现方式中,所述第一地址信息和所述第二地址信息包括首地址,所述第三地址信息包括指向所述渲染状态表的指针。

11、在一种可能的实现方式中,所述指令处理模块包括:指令解码单元、指令池和序列化输出单元,

12、所述指令解码单元,用于基于所述预设结构对接收到的所述第二信息进行解析,基于解析结果从所述gpu虚拟显存的指令缓存空间中获取到目标指令并存储至所述指令池中,而后依次从所述指令池中获取并解码各所述目标指令,并将解码后指令发送至所述序列化输出单元和所述日志单元、以及将解析结果中的所述第三地址信息发送至所述序列化输出单元;

13、所述序列化输出单元,用于将所述第三地址信息发送至所述gpu流水线模拟模块,以及将接收到的解码后指令顺序存储至序列化队列,并将所述序列化队列中解码后指令在所述gpu流水线模拟模块空闲状态下顺序发送至所述gpu流水线模拟模块,以使所述gpu流水线模拟模块基于所述第三地址信息获取到所述渲染状态表以及基于所述渲染状态表执行接收到的解码后指令。

14、在一种可能的实现方式中,日志单元,用于根据指令类型的不同为各所述解码后指令设置对应的运算符后接入日志系统,以便于所述日志系统响应于用户请求基于各所述解码后指令的运算符所指示的运算符重载函数进行该解码后指令的相关信息的打印展示,不同指令类型的解码后指令对应的运算符不同。

15、在一种可能的实现方式中,所述指令处理模块还包括图元池,

16、所述指令解码单元,还用于在确定解码后指令需要图元信息的情况下,基于所述解码后指令指示的所需要的图元信息的偏移地址信息和所述第二地址信息从所述gpu虚拟显存的图元缓存空间中获取到对应的目标图元信息,并利用需要所述目标图元信息的解码后指令的标识对该目标图元信息进行标记,以及将标记后的目标图元信息存储至所述图元池;

17、所述序列化输出单元,还用于在确定解码后指令需要图元信息的情况下,根据该解码后指令的标识从所述图元池中获取到对应的目标图元信息,以在向所述gpu流水线模拟模块发送解码后指令时将对应的目标图元信息同步下发。

18、在一种可能的实现方式中,所述装置还包括:所述gpu虚拟显存、所述寄存器模拟模块和所述gpu流水线模拟模块中的至少一个模块。

19、根据本公开的另一方面,提供了一种gpu指令处理前端模拟系统,所述系统包括:固件模拟模块、gpu虚拟显存、寄存器模拟模块、gpu流水线模拟模块和gpu指令处理前端模拟装置,所述gpu指令处理前端模拟装置包括启动处理模块和指令处理模块;

20、所述固件模拟模块,用于在接收到目标指令的情况下,将所述目标指令存储到所述gpu虚拟显存中,以及配置所述寄存器模拟模块;

21、所述启动处理模块,用于对所述寄存器模拟模块进行监测并在检测到启动信号的情况下,从所述寄存器模拟模块获得第一信息,并根据所述第一信息重置渲染状态表,以及将根据所述第一信息生成的具有预设结构的第二信息发送至所述指令处理模块;

22、指所述令处理模块,用于根据所述第二信息从所述gpu虚拟显存中获取需要执行的各目标指令,并将各目标指令解码后依次发送至所述gpu流水线模拟模块;

23、所述gpu流水线模拟模块,用于依次执行接收到的各指令;

24、其中,所述第一信息包括与所述目标指令的执行相关的信息,所述第二信息包括按照所述预设结构排布的、与所述目标指令的执行相关的存储信息,所述启动信号用于指示所述寄存器模拟模块已经完成配置。

25、在一种可能的实现方式中,所述寄存器模拟模块包括多个虚拟寄存器,

26、所述固件模拟模块,还用于在确定完成所述寄存器模拟模块的配置之后,向所述多个虚拟寄存器中的第一虚拟寄存器写入目标值;

27、所述启动处理模块,用于对所述多个虚拟寄存器中的第一虚拟寄存器进行监控,在确定所述第一虚拟寄存器被写入目标值的情况下,确定检测到所述启动信号。

28、在一种可能的实现方式中,所述启动处理模块,用于从所述寄存器模拟模块的各所述虚拟寄存器中获取到第一信息;

29、其中,所述第一信息包括用于重置所述渲染状态表的至少一个状态信息、gpu虚拟显存中存储目标指令的指令缓存空间的第一地址信息、所述指令缓存空间的第一长度、gpu虚拟显存中存储图元信息的图元缓存空间的第二地址信息、所述图元缓存空间的第二长度;所述第二信息包括所述第一地址信息、所述第一长度、所述第二地址信息、所述第二长度和所述渲染状态表的第三地址信息。

30、在一种可能的实现方式中,所述第一地址信息和所述第二地址信息包括首地址,所述第三地址信息包括指向所述渲染状态表的指针。

31、在一种可能的实现方式中,所述指令处理模块包括:指令解码单元、指令池和序列化输出单元,

32、所述指令解码单元,用于基于所述预设结构对接收到的所述第二信息进行解析,基于解析结果从所述gpu虚拟显存的指令缓存空间中获取到目标指令并存储至所述指令池中,而后依次从所述指令池中获取并解码各所述目标指令,并将解码后指令发送至所述序列化输出单元和所述日志单元、以及将解析结果中的所述第三地址信息发送至所述序列化输出单元;

33、所述序列化输出单元,用于将所述第三地址信息发送至所述gpu流水线模拟模块,以及将接收到的解码后指令顺序存储至序列化队列,并将所述序列化队列中解码后指令在所述gpu流水线模拟模块空闲状态下顺序发送至所述gpu流水线模拟模块,以使所述gpu流水线模拟模块基于所述第三地址信息获取到所述渲染状态表以及基于所述渲染状态表执行接收到的解码后指令。

34、在一种可能的实现方式中,所述指令处理模块还包括:

35、日志单元,用于根据指令类型的不同为各所述解码后指令设置对应的运算符后接入日志系统,以便于所述日志系统响应于用户请求基于各所述解码后指令的运算符所指示的运算符重载函数进行该解码后指令的相关信息的打印展示,不同指令类型的解码后指令对应的运算符不同。

36、在一种可能的实现方式中,所述指令处理模块还包括图元池,

37、所述指令解码单元,还用于在确定解码后指令需要图元信息的情况下,基于所述解码后指令指示的所需要的图元信息的偏移地址信息和所述第二地址信息从所述gpu虚拟显存的图元缓存空间中获取到对应的目标图元信息,并利用需要所述目标图元信息的解码后指令的标识对该目标图元信息进行标记,以及将标记后的目标图元信息存储至所述图元池;

38、所述序列化输出单元,还用于在确定解码后指令需要图元信息的情况下,根据该解码后指令的标识从所述图元池中获取到对应的目标图元信息,以在向所述gpu流水线模拟模块发送解码后指令时将对应的目标图元信息同步下发。

39、根据本公开的另一方面,提供了一种gpu指令处理前端模拟装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述方法。

40、根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述方法。

41、根据本公开的另一方面,提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。

42、通过本公开实施例提供的gpu指令处理前端模拟装置、系统、方法以及存储介质。能够实现对gpu指令处理前端的模拟,且运行效率高、模块间耦合度小、便于扩展和更新。

43、根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。


技术特征:

1.一种gpu指令处理前端模拟装置,其特征在于,所述装置包括:

2.根据权利要求1所述的装置,其特征在于,所述寄存器模拟模块包括多个虚拟寄存器,

3.根据权利要求2所述的装置,其特征在于,

4.根据权利要求3所述的装置,其特征在于,所述第一地址信息和所述第二地址信息包括首地址,所述第三地址信息包括指向所述渲染状态表的指针。

5.根据权利要求3所述的装置,其特征在于,所述指令处理模块包括:指令解码单元、指令池和序列化输出单元,

6.根据权利要求5所述的装置,其特征在于,所述指令处理模块还包括:

7.根据权利要求5所述的装置,其特征在于,所述指令处理模块还包括图元池,

8.根据权利要求1所述的装置,其特征在于,所述装置还包括:所述gpu虚拟显存、所述寄存器模拟模块和所述gpu流水线模拟模块中的至少一个模块。

9.一种gpu指令处理前端模拟系统,其特征在于,所述系统包括:固件模拟模块、gpu虚拟显存、寄存器模拟模块、gpu流水线模拟模块和gpu指令处理前端模拟装置,所述gpu指令处理前端模拟装置包括启动处理模块和指令处理模块;

10.一种gpu指令处理前端模拟方法,其特征在于,应用于gpu指令处理前端模拟装置,所述gpu指令处理前端模拟装置包括启动处理模块和指令处理模块,所述方法包括:

11.一种gpu指令处理前端模拟装置,其特征在于,包括:

12.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求10所述的方法。


技术总结
本公开涉及一种GPU指令处理前端模拟装置、系统、方法以及存储介质。该装置包括:启动处理模块在检测到启动信号的情况下,从寄存器模拟模块获得第一信息,并根据第一信息重置渲染状态表,以及将根据第一信息生成的具有预设结构的第二信息发至指令处理模块;指令处理模块根据第二信息从GPU虚拟显存中获取各目标指令并解码后依次发送至GPU流水线模拟模块,以使GPU流水线模拟模块依次执行接收到的各指令;启动信号用于指示寄存器模拟模块已经完成配置,第一信息包括与目标指令的执行相关的信息,第二信息包括按照预设结构排布的、与目标指令的执行相关的存储信息。装置的运行效率高、模块间耦合度小、便于扩展和更新。

技术研发人员:请求不公布姓名,请求不公布姓名,请求不公布姓名
受保护的技术使用者:摩尔线程智能科技(北京)有限责任公司
技术研发日:
技术公布日:2024/10/31
转载请注明原文地址: https://www.8miu.com/read-24800.html

最新回复(0)