有啥方法可以在 NVIDIA 显卡上的 Visual Studio 中运行程序调试?

Posted

技术标签:

【中文标题】有啥方法可以在 NVIDIA 显卡上的 Visual Studio 中运行程序调试?【英文标题】:Any ways to run program debugging in Visual Studio on NVIDIA graphics card?有什么方法可以在 NVIDIA 显卡上的 Visual Studio 中运行程序调试? 【发布时间】:2015-07-13 11:57:44 【问题描述】:

我有集成 Intel 和 NVIDIA 显卡的笔记本,我想在 NVIDIA 卡上的 Visual Studio 2013 社区版中运行我的程序(用 .NET 编写的 C#)调试,因为我的程序广泛适用于 OpenGL 和 Intel 卡而不是支持最新的 OpenGL 功能。但默认设置程序在 Intel 卡上运行。

我曾尝试在 NVIDIA 设置中为我的程序更改默认显卡,但它看起来像是在重置程序重新编译设置后。

那么,还有其他简单的方法可以在 NVIDIA 显卡上运行程序吗?也许有特殊的命令行参数或类似的东西?

【问题讨论】:

【参考方案1】:

最简单的方法是在程序的某处添加这段代码:

extern "C" 
    _declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001;

更多信息,请看这里:http://developer.download.nvidia.com/devzone/devcenter/gamegraphics/files/OptimusRenderingPolicies.pdf

【讨论】:

但是我的程序是用.NET写的,所以不能导出变量。至少不会对已编译的程序集进行一些黑客攻击。 另一种解决方案可能是在 nvidia 控制面板中将默认显卡设置为 nvidia。但是在.Net中导出这个变量可能有一个技巧。【参考方案2】:

我目前使用 Visual Studio 2017 专业版,还需要使用 OpenGL。就像@Omich 所说,在 NVIDIA 设置中更改 VS2017 的默认显卡不起作用。最后,我尝试右键单击“Visual Studio 2017”快捷方式(或 devenv.exe,结果相同)并选择选项“使用图形处理器运行->高性能 NVIDIA 处理器”,它就可以工作。这种方式很简单,但似乎有点琐碎,因为每次启动时都必须右键单击 VS 图标。

【讨论】:

【参考方案3】:

最简单的方法可能是将您的程序编译为 .NET DLL 并从用 C++/CLI 编写的可执行文件调用您的 Main 函数,该可执行文件导出 NvOptimusEnablement 变量,正如 Jerem 在另一个答案中提到的那样。

【讨论】:

如何链接一个用 c++ 编写的导出这个变量的 DLL。这行得通吗? @Jerem:我想过这个,但我不确定它是否可行。【参考方案4】:

您可以使用 NVidia 控制面板应用程序。我相信它是在安装 NVidia 驱动程序时安装的,但我不太确定。启动它并:

选择管理 3D 设置 -> 程序设置选项卡

    选择要自定义的程序:单击添加按钮 找到您的可执行文件并点击添加所选程序 选择首选图形处理器... 选择您的 NVidia 处理器

当您运行 exe 时,即使使用 Visual Studio 调试器,它也会使用选定的图形处理器。

【讨论】:

你测试了吗?我知道你的意思,但我知道有时父启动器 EXE 会让子 EXE 继承它,然后你要么一直在离散 GPU 上运行主机/父级,要么子级将在集成的所有时间 是的,我测试过了。使用 Visual Studio 2019,我构建了一个 .exe。然后打开 NVidia 控制面板应用程序并按照上面的说明浏览到 exe。回到 Visual Studio 并通过调试器运行 .exe。我的 Windows 任务栏有一个 NVidia 图标,每当它被使用时它就会亮起,并且还会列出使用该卡的程序。此新 .exe 的图标亮起。即使在我修改和重建 .exe 后它仍然亮起。【参考方案5】:

经过几个小时的搜索,我在http://drivenbynostalgia.com/files/SOP.cs找到了解决方案

我想这比将整个项目移动到 dll 并使用 C++/CLI 启动器要好。

【讨论】:

以上是关于有啥方法可以在 NVIDIA 显卡上的 Visual Studio 中运行程序调试?的主要内容,如果未能解决你的问题,请参考以下文章

在交流适配器上使用 NVidia optimus 有啥好处吗?

Nvidia显卡上的阴影粉刺

nvidia控制面板打不开,提示程序出现问题

NVIDIA显卡设置

nvidia 怎样用命令看gpu

NVIDIA系列显卡驱动程序的下载、安装方法