详细配置文件GPU内存使用情况

3

我的应用程序在某些情况下存在GPU内存泄漏问题,但我不知道是否有像CPU内存分析器那样详细的GPU内存分析器。是否有此类工具可供使用?我正在使用D3D(由于其为WPF,因此有d3d9、d3d10、d3d11组件...)

谢谢!


如果您正在使用VS2013,则可以在使用D3D的应用程序上运行图形调试。不过我不确定它是否适用于WPF应用程序。 - rashmatash
但我相信那只适用于D3D11(ReportLiveObjects或类似的东西)。由于我正在使用需要d3d9的WPF,如果可能的话,我需要一个更通用的解决方案(或组合)。 - user1181950
2个回答

0
您是否在 Dx 控制面板中使用调试设置?这将帮助您转储泄漏分配的 ID。然后,您可以继续设置 HKLM 注册表值并在泄漏分配上中断,如此处所述:

http://legalizeadulthood.wordpress.com/2009/06/28/direct3d-programming-tip-5-use-the-debug-runtime/

http://www.gamedev.net/topic/313718-tracking-down-a-directx-leak/

你也可以尝试使用NSight,它可以从NVidia免费下载。对于Maximus卡,还有一个特定的GPU调试器,否则你可以使用图形调试器并尝试在那里隔离内存问题。在性能调试器中,你可以检测到OpenGl和DirectX事件,虽然这更加注重性能。


我尝试了Nsight,但不幸的是它与WPF不兼容 :( 我会查看HKLM注册表进程。谢谢。 - user1181950

0
根据您的GPU供应商(由于您未提供信息),以下是可能的解决方案:
Intel:使用英特尔媒体SDK的GPU利用率实用程序。这包含在英特尔INDE(集成开发环境)中。
AMD:CodeXL提供即时调试器和广泛的内存分析工具,现在作为其GPUOpen计划的一部分提供。
NVIDIA:使用Nvidia Visual Profiler(NVVP)结合来自Nvidia Nsight的跟踪,这些实用程序随标准的Nvidia CUDA安装程序提供。
注意:
1.对于Nvidia,您还必须安装提供的GPU驱动程序(从CUDA SDK中获取),以启用任何形式的基于GPU的驱动程序分析和调试。请注意上述限制,如果您将开发工具用于其他用途,如游戏,因为捆绑的驱动程序通常比库存的游戏准备驱动程序旧得多。
谢谢和问候,
Brainiarc7。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接