【问题标题】:How can I stress the GPU如何给 GPU 施加压力
【发布时间】:2011-05-06 12:41:20
【问题描述】:

我想向我们的应用程序添加一些诊断代码,这些代码会同时对 CPU 和 GPU 施加压力,然后测量热量。第三方工具不是一种选择。据我所知,CUDA 也不是一个选项,因为它需要 Nvidia 的编译器——对吗?据我所知,我最好的选择是 DirectX。在 GPU 上任何简单且非可视化的东西都可以。

平台:Windows XP Embedded DirectX 9.0C

【问题讨论】:

  • CUDA 只需要 Nvidia 的 CUDA SDK 来编译您的源代码 - 获得您的可执行文件的用户不需要 CUDA SDK 来运行它。当然,他们需要支持 CUDA 的 Nvidia 视频卡和驱动程序。
  • 我认为 NVidia 的要求本身就让我无法接受,但如果不是,Cude 是否需要使用 nvcc 命令进行编译?或者我可以用 MS VS 2005 编译吗?
  • 是的,您使用来自 Nvidia CUDA SDK 的nvcc 编译您的 CUDA 代码。我想你可以设置 Visual Studio,让它为你调用nvcc,但我不知道怎么做。 CUDA 仅适用于 Nvidia,它是 Nvidia 专有技术。作为替代方案,还有 OpenCL,它不依赖于一个供应商。
  • 我无法切换编译器。我会检查 OpenCL。

标签: c++ directx gpu


【解决方案1】:

只需在 HLSL 中创建一个包含无限循环的着色器。

【讨论】:

  • 您手边有简单的样品吗?此外,我们仍在使用 DX 9.0c。你的答案仍然适用吗?
  • 是的,DX 9 中也提供着色器
【解决方案2】:

关闭所有剔除和实例化并将三角形数据的色调上传到 gpu 进行处理和绘制,这将给 CPU(现在不是太多)和 GPU 带来过度绘制的负担。

应该可以使用任何介绍教程的代码(使用DrawPrimitiveUP 的代码会对 CPU 造成更大的压力,但不需要创建 GPU 缓冲区)。您可能还希望禁用 vsync,以便 GPU 尽可能快地工作(也就是它不会等待太多/根本不会等待其他事件)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-15
    • 2011-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多