[发明专利]用于在非可抢占式图形处理单元上交互调试的方法和装置有效
申请号: | 201310075815.1 | 申请日: | 2013-03-11 |
公开(公告)号: | CN103309786A | 公开(公告)日: | 2013-09-18 |
发明(设计)人: | 安维纳什·班特沃尔·巴利加;格雷戈里·保罗·史密斯 | 申请(专利权)人: | 辉达公司 |
主分类号: | G06F11/26 | 分类号: | G06F11/26 |
代理公司: | 北京市磐华律师事务所 11336 | 代理人: | 徐丁峰;魏宁 |
地址: | 美国加利*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 抢占 图形 处理 单元 交互 调试 方法 装置 | ||
技术领域
本公开总地涉及调试,并且更具体地,涉及用于在非可抢占式(non-preemptible)图形处理单元(GPU)上交互调试的方法和装置。
背景技术
常规调试工具提供使用某种类型的用户界面在程序中的给定点暂停(halt)程序的执行以及在程序中的该点评估处理器上下文(即存储器、寄存器等)的能力,所述某种类型的用户界面一般是在耦连到调试平台的显示器上所显示的图形用户界面。一般地,调试工具分类为软件实现方案或硬件实现方案。
软件调试包括许多用于检测程序中的错误的技术。一种用于调试程序的技术是对程序进行修改使得在程序的执行期间将各个变量值写入到候补位置或代替正常程序输出。随后重新执行程序以收集期望输出。虽然这种技术可能有益于检测一些类型的错误,但是这些技术有许多缺点。要求用户执行经修改的程序可能不允许用户实时分析程序。如果程序不是确定性的,那么重新执行程序可能对于变量显示不一致的值。另外,只有对程序资源代码具有访问权限的受信任方才可以实施调试操作。进一步地,为了重置状态变量,重新执行程序可能要求大量存储器转移,这可能引入附加的延迟或不一致。对程序进行修改还可能隐藏一些由系统所执行的指令的具体时序所造成的错误或改变由编译器所生成的指令流的顺序,由此导致完全不同的结果。进一步地,用户可能不能分析未经修改程序的效率以确定何处正在发生一些类型的处理瓶颈。另一种基于软件调试实现方案的技术可利用软件仿真器来仿真在目标平台上的程序的执行。软件仿真器允许用户单步调试指令以及理解在目标平台的处理器上下文上的那些指令的效果。然而,因为软件仿真器仅仅仿真目标平台,所以可能难以使用软件仿真器来调试某些由指令的异步执行所造成的瞬时错误。此外,由于软件仿真器中的固有漏洞或由于仿真性能和精确度之间的权衡,软件仿真器可能表现不同于目标硬件平台,从而使调试问题混淆。
除软件调试工具之外,许多硬件平台实现各种可用来代替或补充软件调试技术的硬件调试工具。例如,一些处理器使能硬件断点以由当执行具体指令时暂停处理器上的程序的执行以及等待恢复命令的发出的调试器来实现。其他处理器实现某一类型的调试端口,诸如使能对目标平台的集成电路上所实现的内部调试模块的访问权限的JTAG(联合测试行动组)端口。
常规地,可经由软件仿真器或经由要求连接到正在执行调试器的计算机的目标平台的远程调试来实现调试。在与开发平台分开的目标平台上实现调试的一个原因是,暂停正执行在调试器的同一平台上的源程序的执行也可能暂停运行调试器所需的关键硬件。例如,利用在正执行源程序的CPU上的断点可防止CPU运行操作系统,从而防止程序员使用软件调试工具查看CPU状态或对存储器做出改变。
因此,本领域所需要的是考虑到目标GPU的交互调试,同时还允许目标GPU继续进行从操作系统所接收的正常的屏幕绘制操作的系统和方法。
发明内容
本公开的一个示范性实施例阐述了用于在非可抢占式图形处理单元上实施交互调试的方法。方法包括以下步骤:使着色器程序载入到并行处理单元上,其中并行处理单元配置为渲染用于交互调试环境的图形用户界面以在耦连到并行处理单元的显示设备上显示,以及发出工作负载到并行处理单元用于在第一周期(pass)期间处理,其中工作负载由对包括在工作负载中的分开的输入数据加以并行执行的多个线程所处理,以及其中并行处理单元配置为当由多个线程中的任意线程触发硬件陷阱时暂停工作负载的处理。方法进一步包括以下步骤:检测在工作负载的处理中的第一点期间已发生硬件陷阱,以及进入重新启动(re-launch)循环,所述重新启动循环包括禁用工作负载的处理以允许由并行处理单元更新图形用户界面以及重新发出工作负载到并行处理单元用于在一个或多个随后的周期期间处理。
本公开的另一个示范性实施例阐述了包括配置为实施上文所阐述的方法步骤的调试器的计算机可读存储介质。本公开的又一个示范性实施例阐述了配置为在非可抢占式图形处理单元上实施交互调试的系统。
所公开的方法的一个优点是用于调试目的的计算机可使用单个GPU既用于硬件调试又用于屏幕更新。其他优点包括调试非确定性应用的能力以及调试没有源代码可用的程序的能力。
附图说明
因此,可以详细地理解本公开的上述特征,并且可以参考示范性实施例得到对如上面所简要概括的本公开更具体的描述,其中一些实施例在附图中示出。然而,应当注意的是,附图仅示出了本公开的典型实施例,因此不应被认为是对其范围的限制,本公开可以具有其他等效的实施例。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于辉达公司,未经辉达公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310075815.1/2.html,转载请声明来源钻瓜专利网。