将渲染设备从 Sandy Bridge GPU 更改为主 GPU
Change render device from Sandy Bridge GPU to main GPU
我试图强制我的应用程序使用主 gpu。现在它会自动占用 CPU 上的那个。我已经在DirectX9和OpenGL上尝试过。
当我调用 GetAdapterCount() 函数时,DirectX 只返回 1 个适配器。OpenGL 在调用 glGetString( GL_RENDERER 时也只返回 1 个适配器。
有没有办法确保它使用正确的 GPU?
我在Nvidia Optimus + SandyBridge CPU笔记本电脑上遇到了这个问题。EVerybody(DX,GL)只返回了一个适配器,它给了我英特尔GPU。
我通过更新 Nvidia 驱动程序来解决此问题。安装最新版本后,DirectX 正确报告了两个适配器,并根据供应商 ID(英特尔与英伟达),我可以选择要在我的应用程序中使用哪个 GPU。
或者,您可以转到Nvidia控制面板,并为您的可执行文件创建配置文件 - 并设置为始终使用Nvidia GPU。当然,如果您将可执行文件交给其他人在具有错误驱动程序的系统上运行,这不会解决同样的问题。
另一种选择是将可执行文件重命名为流行的游戏可执行文件名称。比如愤怒.exe或bf3.exe。这是有效的,因为 Nvidia 控制面板有很多预定义的配置文件,其中包含流行的游戏 exe 名称,并且它们都设置为使用 Nvidia GPU 而不是英特尔 GPU。
这很复杂,并且取决于硬件。 您是否使用的是具有混合图形的笔记本电脑? 如果是这样,通常驱动程序设置为为您提供OpenGL上下文的"主"GPU(回退到桌面渲染的集成图形)。 如果是台式机,通常两个 GPU 驱动物理上不同的显示器输出。 您是否将显示器插入独立显卡。
- 在使用GPU支持编译Tensorflow时,会遇到CUDA_TOOLKIT_PATH未绑定变量
- 有没有办法简单地从 GPU 调用多个 cpp 输出文件?
- 在 DirectX 11 中从 GPU 读回顶点缓冲区(并获取顶点)
- 跨平台 GPU 计算
- C++:从GPU内存(cudaMemcpy2D)获取BGR图像(cv::Mat)
- 请求最简单的 OpenMP 目标 GPU 示例
- DirectX 11 如何处理来自 GPU 上的 sharedHandle 的图像
- 编译 GPU 的张量流示例自定义操作
- 多 GPU 批处理 1D FFT:似乎只有一个 GPU 可以工作
- 如何在GPU支持下编译tflite?
- OpenCL 在 NVIDIA 和 Intel GPU 上启动内核时CL_INVALID_COMMAND_QUEUE
- OpenGL glGetUniformBlockIndex 在 nvidea GPU 上返回INVALID_INDEX
- SDL GPU 为什么将两个图像分成两个单独的循环更快?
- 使 C++ Pi 近似在 GPU Nvidia 970M CUDA 上的 Paralell 中运行
- 具有 GPU 时间表的卤化物产生黑色图像
- TensorFlow c++ SetDefaultDevice 在多 GPU 模式下
- 在C++应用程序中使用 Tensorflow:如何释放 GPU 内存
- 利用 GPU 的最佳方式
- Cuda 中的多个 GPU - 以前可以使用代码,但现在不再使用
- 将渲染设备从 Sandy Bridge GPU 更改为主 GPU