【问题标题】:Is it possible to use gpu card for gpgpu while playing game?玩游戏时是否可以将gpu卡用于gpgpu?
【发布时间】:2015-03-21 05:33:12
【问题描述】:

我已经开始学习使用 CUDA 的异构并行编程(将使用桌面,如果重要的话),并且有一个我找不到答案的问题。玩3D游戏的时候gpu卡可以用gpgpu吗?如果是,性能成本会有多大?以及如何测量它们?在后台运行有和没有游戏的应用似乎不是一个值得信赖的解决方案。

AFAIK,gpu 卡忙于渲染场景和其他东西,但我不知道它是如何工作的。在用户退出游戏之前,游戏应用程序是否会锁定设备用于 gpgpu?或者它只是接收异步调用来执行如下任务:

  • 设备免费;
  • 游戏应用要求设备渲染场景;
  • 设备被游戏锁定,执行任务,之后它又是免费的;
  • 我的应用程序要求设备执行一些 gpgpu;
  • 设备被我的应用程序锁定,执行此操作,之后它又是免费的,
  • 等等……

作为另一种解决方案:是否可以仅为此目的使用单独的 gpu 卡(也许我需要防止它被游戏应用程序使用)?

【问题讨论】:

  • 这是一个有趣的问题,但由于它不是关于 特定 编程问题(即您当前正在编写的代码),它是 off-topic 用于 Stack Overflow -也许您应该尝试在GameDev 上提问?
  • 如果在渲染 OpenGL 应用程序时 GPU 被锁定,那么您将无法同时运行两个 OpenGL 应用程序,这绝对不是这种情况。您还可以同时运行 OpenGL 和 OpenCL; CL 有与 GL 通信的方式。最新版本的 GL 也有计算着色器。
  • 您可以在输入这个问题的时间里尝试过。在显示器连接的 GPU 上运行 GPGPU 内核通常会使桌面有些迟缓。缓慢程度取决于内核执行时间。在游戏中效果可能会相当激烈。您可以使用单独的 GPU。确保启用 SLI/Crossfire。

标签: opengl cuda parallel-processing gpgpu


【解决方案1】:

gpu卡可以在玩3D游戏的时候用gpgpu吗?

是的。 (试试看。)

如果是,性能成本会有多大?

如果没有很多细节,就无法真正回答这个问题,例如 cuda 应用程序的内存和计算密集型、GPU 类型、游戏等。

以及如何测量它们?

衡量任何一般影响应该不难。可以使用 GPU-Z 或 nvidia-smi 等工具监控内存大小。您可以监控游戏中的帧速率,或许可以评估那里的性能影响。您可以在运行和不运行游戏的情况下对计算应用进行基准测试。

在用户退出游戏之前,游戏应用程序是否将设备锁定为不能用于 gpgpu?

不,但 GPU 必须在游戏任务和计算任务之间进行上下文切换。因此,例如,在执行 CUDA 内核时,您的游戏将停止运行。因此,如果您想与计算应用程序同时运行游戏,您应该确保计算内核的持续时间非常短。在内核调用之间,游戏引擎将“赶上”。

【讨论】:

    猜你喜欢
    • 2016-05-21
    • 2011-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-21
    • 2011-04-23
    • 2017-04-28
    • 1970-01-01
    相关资源
    最近更新 更多