我最近开始研究一个项目,以确定如何最好地利用现代图形卡中可用的处理能力进行一般编程。看来,现场通用GPU编程(GPGPU)对科学应用有很大的偏见,并且有很多繁重的数学,因为这与GPU计算模型非常吻合。这一切都很好,但是大多数人并没有把所有时间花在运行模拟软件之类的东西上,所以我们认为可以为大众轻松构建支持GPU的软件创建一个共同的基础。
这导致了我想提出的问题;程序执行的最常见工作类型是什么?并不是要求工作能够很好地转换为GPU编程,因为我们愿意接受适度的性能改进(更好的不是什么,对吧?)。
我们已经考虑过几个主题:
其他哪些编码任务很常见?我怀疑正在编写的许多代码属于库存管理类别,而是跟踪真实的“对象”。
由于我没有行业经验,我认为可能存在许多基本类型的代码,这些代码比我意识到的更频繁,但实际上并没有实现为外部产品。
高级编程任务以及特定的低级操作都将受到赞赏。
答案 0 :(得分:3)
通用编程非常容易转换为GPU。 GPU专用于以大规模速率对数据流执行相当简单的任务,具有大规模并行性。它们不能很好地处理一般编程的丰富数据和控制结构,并且没有必要试图将它们插入其中。
答案 1 :(得分:3)
通用编程非常容易转换为GPU。 GPU专用于以大规模速率对数据流执行相当简单的任务,具有大规模并行性。它们不能很好地处理一般编程的丰富数据和控制结构,并且没有必要试图将它们插入其中。
这与我对这种情况的印象并不太远,但在这一点上,我们并不太关心自己。我们首先要了解我们必须关注哪些选项。在完成之后,我们将更深入地分析它们,并找出哪些是合理的选择。如果我们最终确定在该领域内无法做任何事情,而且我们只是增加了每个人的电费,那么这也是一个有效的结果。
答案 2 :(得分:2)
现代计算机做了很多事情,一点点好处可能会有很长的路要走?我们看看......
答案 3 :(得分:1)
您可能需要查看ACM的March/April issue杂志的Queue,其中有几篇关于GPU的文章以及如何最好地使用它们(当然除了做图形)。
答案 4 :(得分:0)
我做了很多简化配置。那就是我在UI中包装配置值的生成/管理。主要好处是我可以控制工作流程和演示文稿,使非技术用户更容易配置应用程序/站点/服务。
答案 5 :(得分:0)
使用GPU时要考虑的另一件事是总线速度,大多数图形卡设计为在将数据从CPU传输到GPU时具有更高的带宽,因为这是他们大多数时间所做的事情。从GPU返回到CPU的带宽(返回结果等所需的)并不那么快。因此它们在流水线模式下工作得最好。