【问题标题】:Two GPU Cards, One Endabled Display, One Disabled Display: How to tell which GPU Card is OpenGL running on?两张 GPU 卡,一张 Endabled Display,一张 Disabled Display:如何判断 OpenGL 在哪个 GPU 卡上运行?
【发布时间】:2013-05-26 23:49:18
【问题描述】:

所以我有两张 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 卡?

【问题讨论】:

    标签: opengl nvidia multi-gpu


    【解决方案1】:

    您可以通过glGetString(GL_RENDERER); 判断 OpenGL 上下文正在使用哪个 GPU

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-30
      • 1970-01-01
      • 1970-01-01
      • 2021-02-28
      • 1970-01-01
      相关资源
      最近更新 更多