0

所以我有两张 NVidia GPU 卡

卡 A:GeForce GTX 560 Ti - 有线连接到显示器 A (Dell P2210)

卡 B:GeForce 9800 GTX+ - 有线连接到显示器 B (ViewSonic VP20)

设置:带有支持 SLI 的 Intel Core i7 的华硕主板

在 NVidia 控制面板中,我禁用了监视器 A,因此我只有监视器 B 用于所有显示目的。

在此处输入图像描述

我运行了我的程序,它

  • 在 OpenGL 中模拟 10000 个粒子并渲染它们(在监视器 B 中正确显示)

  • 使用 cudaSetDevice() 在卡 A 上“定位”以运行计算密集型 CUDA 内核。

这个想法很简单——使用卡 B 进行所有 OpenGL 渲染工作,使用卡 A 进行所有 CUDA 内核计算工作。

我的问题是这样的:

使用 GPU-Z 监控两张卡后,我可以看到:

  • 卡 A 的 GPU 负载按预期立即增加到 60% 以上。

  • 然而,卡 B 的 GPU 负载仅增加了 2%。对于在 opengl 中以 3D 渲染的 10000 个粒子,我不确定这是否是我应该预料到的。

那么我如何才能确定 OpenGL 渲染是否确实使用了卡 B(其连接的监视器 B 是唯一启用的监视器),并且与卡 A 无关?

问题的扩展是:

  • 有没有办法“强制”OpenGL 渲染逻辑使用特定的 GPU 卡?
4

1 回答 1

2

您可以判断 OpenGL 上下文正在使用哪个 GPUglGetString(GL_RENDERER);

  • 有没有办法“强制”OpenGL 渲染逻辑使用特定的 GPU 卡?

鉴于目前可用的上下文创建 API 的功能:否。

于 2013-05-31T09:50:10.673 回答