4

我已经开始使用DirectX 11 Compute Shader技术进行 GP-GPU 编程。我在 HLSL 上编写了一个相当复杂的程序,当我想调试它时,我意识到DX SDK 2009 年 8 月的PIX实用程序不支持计算着色器......我知道 Nvidia 将发布适用于 Visual Studio 的Nexus,它将支持直接计算调试,但仅限于尚未发布的下一代 NVidia GPU :( Compute Shader 技术对我来说非常有前途,因为设备独立性,但如果没有调试支持,它将很难使用。

您是否知道任何可用于 Compute Shader 调试的工具或方法,现在可用或计划在不久的将来发布?

4

4 回答 4

2

我正在等待NVIDIA Nexus广泛使用。也许微软可以想出一些与参考光栅化器一起使用的东西,但我想说重要的是与硬件紧密集成:在这种情况下,只有供应商才能提供必要的工具。

有人可能知道 AMD 是否计划在GPU PerfStudio中添加对计算着色器的支持。

于 2009-12-19T17:33:05.633 回答
2

开发和调试复杂的 HLSL Compute Shader 的一种有效方法是将其编译为 C++。一旦实现这一点,您就可以利用通常与 C++ 一起使用的 IDE 调试功能,例如内存和变量查找等。下面是一个概念验证演示项目,展示了如何调试示例 DirectX HLSL 计算着色器:

https://github.com/cezbloch/shader

一旦您的代码正常工作并更正,您就可以在 GPU 上执行它 - C++ 版本仅用于帮助开发。

于 2018-02-20T20:49:15.680 回答
0

抱歉,目前这个问题没有简单的答案。

也许尝试注册 NVIDIA Nexus 测试版计划: http: //supportcenteronline.com/ics/support/default.asp ?deptID=4639

您在哪里读到Nexus需要基于 Fermi 的 GPU?我认为具有 2 个最近的 NVIDIA GPU 或 2 个基于 NVIDIA 的工作站(然后远程调试目标)的 SLI 工作站的要求。

于 2009-12-19T18:50:29.283 回答
0

不幸的是,调试计算着色器与调试顶点和像素着色器非常相似……我发现最好的方法是执行小的更改并将测试值输出到临时纹理资源。然后,您可以将纹理资源渲染到应用程序的屏幕(甚至保存到文件中),并使用它来提取有关着色器中正在发生的事情的信息。

这确实是一个可怕的情况,但这就是现在的工具情况......

于 2013-01-11T01:13:37.950 回答