【发布时间】:2015-03-21 05:33:12
【问题描述】:
我已经开始学习使用 CUDA 的异构并行编程(将使用桌面,如果重要的话),并且有一个我找不到答案的问题。玩3D游戏的时候gpu卡可以用gpgpu吗?如果是,性能成本会有多大?以及如何测量它们?在后台运行有和没有游戏的应用似乎不是一个值得信赖的解决方案。
AFAIK,gpu 卡忙于渲染场景和其他东西,但我不知道它是如何工作的。在用户退出游戏之前,游戏应用程序是否会锁定设备用于 gpgpu?或者它只是接收异步调用来执行如下任务:
- 设备免费;
- 游戏应用要求设备渲染场景;
- 设备被游戏锁定,执行任务,之后它又是免费的;
- 我的应用程序要求设备执行一些 gpgpu;
- 设备被我的应用程序锁定,执行此操作,之后它又是免费的,
- 等等……
作为另一种解决方案:是否可以仅为此目的使用单独的 gpu 卡(也许我需要防止它被游戏应用程序使用)?
【问题讨论】:
-
如果在渲染 OpenGL 应用程序时 GPU 被锁定,那么您将无法同时运行两个 OpenGL 应用程序,这绝对不是这种情况。您还可以同时运行 OpenGL 和 OpenCL; CL 有与 GL 通信的方式。最新版本的 GL 也有计算着色器。
-
您可以在输入这个问题的时间里尝试过。在显示器连接的 GPU 上运行 GPGPU 内核通常会使桌面有些迟缓。缓慢程度取决于内核执行时间。在游戏中效果可能会相当激烈。您可以使用单独的 GPU。确保不启用 SLI/Crossfire。
标签: opengl cuda parallel-processing gpgpu