所以我有两张NVidia GPU卡
卡A:GeForce GTX 560 Ti - 有线监听A(戴尔P2210)
B卡:GeForce 9800 GTX + - 有线监视器B(ViewSonic VP20)
设置:采用支持SLI的Intel Core i7的华硕主板
在NVidia控制面板中,我禁用了监视器A,因此我只有监视器B用于所有显示目的。
我运行了我的程序,
在OpenGL中模拟10000个粒子并渲染它们(在监视器B中正确显示)
使用cudaSetDevice()在Card A'目标'运行计算密集型CUDA内核。
这个想法很简单 - 使用Card B进行所有OpenGL渲染工作,并使用Card A进行所有CUDA内核计算工作。
我的问题是:
使用GPU-Z监控两张卡后,我可以看到:
卡A的GPU负载立即增加到预期的60%以上。
但是,Card B的GPU负载仅增加到2%。对于在opengl中以3D渲染的10000个粒子,我不确定这是否是我应该预期的。
那么如何判断OpenGL渲染是否确实使用了Card B(其连接的Monitor B是唯一启用的),并且与Card A无关?
并且问题的扩展是:
答案 0 :(得分:2)
您可以通过glGetString(GL_RENDERER);
- 有没有办法'强制'OpenGL渲染逻辑使用特定的GPU卡?
鉴于目前可用的上下文创建API的功能:否。