调试 GPU 代码

您可以调试在处理单元 (GPU) 的图像运行的 C++ 代码。 GPU 在 Visual Studio 中调试支持包括种族检测,生成过程并附加到其和集成到调试窗口。

支持的平台

调试在 Windows 7、Windows 8、Windows Server 2008 R2和 Windows Server 2012支持。 对于调试在软件模拟器,需要 Windows 8或 Windows Server 2012。 对于调试在硬件,则必须安装您的图形卡的驱动程序。 并非所有的硬件供应商提供实现所有调试器功能。 用于限制参见供应商文档。

备注

若要支持在 Visual Studio 的 GPU 调试的独立硬件提供供应商必须创建实现 VSD3DDebug 接口并针对这些驱动程序的 DLL。

配置的 GPU 调试

调试器在 CPU 代码和 GPU 代码不会破坏在同一 app 执行。 默认情况下,调试器在 CPU 代码中断。 若要调试 GPU 代码,请使用下面两个步骤之一:

  • 调试类型 列表中 标准 工具栏,选择 仅 GPU

  • 解决方案资源管理器,项目中的快捷菜单上,选择 属性。 在 属性页 对话框中,选择" 调试,然后在 调试器类型仅 GPU 列表。

生成并附加到应用程序

您可以使用 Visual Studio 调试命令启动和停止 GPU 调试。 有关更多信息,请参见启动、中断、导航和停止 Visual Studio 调试器。 还可以附加 GPU 调试器附加到正在运行的进程,但是,只有 + 当,此过程执行 GPU 代码。 有关更多信息,请参见如何:附加到运行进程

运行当前平铺到光标并运行到光标

在 GPU 调试时,您有两个用于运行测试的选项对于鼠标位置。 两个选项的命令可在代码编辑器快捷菜单。

  1. 运行到光标处 命令运行您的应用程序,直到其达到鼠标位置然后中断。 这并不表示当前线程上运行到光标;相反,这意味着到达光标点触发器该中断的第一个线程。 有关更多信息,请参见[NIB] 12/13 如何:运行到光标位置

  2. 将当前 Tile 运行到光标处 命令运行您的应用程序,直到所有在当前线程平铺达到光标然后中断。

调试窗口

借助某些调试窗口,您可以检查,标记和冻结 GPU 线程。 有关更多信息,请参见:

数据同步异常

调试器可以在执行时提供了几个数据同步的情况。 在检测时条件,调试器进入中断状态。 您有两个选项中断继续。 使用 异常 对话框,可以配置它将中断的调试器是否立即检测这些情况和条件。 有关更多信息,请参见异常处理(调试)。 还可以使用 选项 对话框指定调试器应忽略异常,则中的数据不更改数据的值。 有关更多信息,请参见“选项”对话框 ->“调试”->“常规”

疑难解答

Hh873126.collapse_all(zh-cn,VS.110).gif指定快捷键

在 GPU 代码中设置断点只被命中,如果代码在 accelerator::direct3d_ref (REF) 快捷键运行。 如果您的代码不指定快捷键,REF 快捷键自动选择作为在项目属性中 调试加速器类型。 如果您的代码显式选择快捷键,则 REF 快捷键不使用在调试期间,并不会命中断点,除非您的 GPU 硬件具有调试支持。 您可以通过编写代码更正此在调试过程中,以便使用 REF 快捷键。 有关更多信息,请参见项目属性和 使用 accelerator 和 accelerator_view 对象C++ 调试配置的项目设置

Hh873126.collapse_all(zh-cn,VS.110).gif条件断点

在 GPU 代码的条件断点支持,但是,并非每个表达式在计算机上进行评估。 在表达式在计算机上无法计算,它在调试器中计算。 调试器比设备的速度会运行。

Hh873126.collapse_all(zh-cn,VS.110).gif错误:具有配置问题与选定的调试快捷键类型。 

发生此错误,当在项目设置以及 PC 的配置之间的不一致您调试。 有关更多信息,请参见C++ 调试配置的项目设置

Hh873126.collapse_all(zh-cn,VS.110).gif错误:选定的调试快捷键类型的调试驱动程序在目标计算机上未安装。

如果您在远程 PC,调试发生此错误。 调试器无法确定直到运行时驱动程序是否在远程 PC 上安装。 驱动程序从图形卡的生成供应商获得。

Hh873126.collapse_all(zh-cn,VS.110).gif错误:超时检测和还原 (TDR) 必须禁用在远程站点。

C++ AMP 计算可能会超过由 windows 超时检测设置,然后恢复进程的默认时间间隔 (TDR)。 在这种情况下,计算已取消,并且数据丢失。 有关更多信息,请参见 处理在 C++ AMP 的 TDRs

请参见

任务

演练:调试 C++ AMP 应用程序

参考

C++ 调试配置的项目设置

其他资源

开始 Visual Studio 的 GPU 调试