我有一台混合图形笔记本电脑,我使用的是Windows 7,我打算运行一个包含 cuda 的C ++代码,当时它是GPU&#39 ;转而启动,我的nvidia GPU需要几秒钟才能启动,而且我想再花一些时间来预热,有没有办法在运行代码后启动GPU(例如在第一行 main()功能)?
先谢谢。
答案 0 :(得分:3)
我提出了一个更好的选择。由于您使用的是Windows,您是否考虑过强制程序从NVIDIA GPU开始?如果您使用的是NVIDIA Optimus(没有物理开关的笔记本电脑用于切换图形卡),请尝试以下操作:
右键单击使用CUDA的程序,在上下文菜单中,有一个名为"Run with graphics processor"
的选项,然后选择"High-performance NVIDIA processor"
。
请注意,如果您使用的是Visual Studio,则可以使用此方法启动Visual Studio。这样,程序将无法看到您的非CUDA卡: - )
根据我的经验,如果您尝试进行CUDA / OpenGL互操作,如果没有这种方法,您将遇到问题。有时为您的非NVIDIA卡创建OpenGL上下文,并在NVIDIA卡上创建CUDA上下文,从而导致奇怪的错误。
答案 1 :(得分:1)
尝试输入:
cudaSetDevice(0);
作为main
函数的第一行。或者您也可以尝试使用:
cudaFree(0);