【问题标题】:Can GPU be used to run programs that run on CPU?GPU可以用来运行在CPU上运行的程序吗?
【发布时间】:2015-07-16 23:58:09
【问题描述】:

能否使用 Gpu 运行在 Cpu 上运行的程序,例如从键盘和鼠标获取输入或播放音乐或使用 Direct3D 和 OpenGL Api 读取文本文件的内容?

【问题讨论】:

  • 短:不。长:你会疯狂尝试。另一方面,如果你有几万亿次浮点运算要执行,GPU 会站在你这边。 Google for OpenCL 或 CUDA。

标签: gpu


【解决方案1】:

GPU 无法直接访问操作系统映射的要在客户端代码中访问的任何内存(即在 CPU 上执行指令时在用户模式下执行的代码)。 此外,GPU 不应该执行这样的事情,它旨在高速执行浮点运算。最后,您永远不会使用 Direct3D 或 OpenGL 来执行与图形无关的任何操作,除非您只会使用计算着色器。 通用计算是在 GPU 上使用 OpenCL 或 CUDA 执行的,例如图像处理或物理模拟。 但是,您可以在 CPU 上收集任何数据,将其发送到 GPU 进行进一步处理,最后再将其写回可从 CPU 访问的内存中。

【讨论】:

  • 不一定正确;如果你想将浮点运算从 CPU 委托给 GPU 并得到结果怎么办?从来没有比使用 CPU 更有效的情况吗?我知道有上传和下载费用,但是为了概念证明有没有办法做到这一点?可能通过将缓冲区作为纹理发送,然后执行复杂的着色器,然后在输出缓冲区中获取结果。如果我理解正确; GPU 具有对矩阵运算的原生支持,这可能会提高某些问题的性能。
猜你喜欢
  • 2021-05-04
  • 2011-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-17
  • 2019-12-11
  • 2018-01-21
  • 1970-01-01
相关资源
最近更新 更多