5

我想知道在 GPGPU 开发中帮助您的关键是什么,当然还有哪些限制是您无法接受的。

我想到了:

  • 关键优势:这些东西的原始力量
  • 关键约束:内存模型

你有什么看法?

4

4 回答 4

4

你必须小心你如何解释蒂姆·斯威尼在 Ars 采访中的陈述。他说拥有两个独立的平台(CPU 和 GPU),一个适合单线程性能,一个适合面向吞吐量的计算,随着我们的应用程序和硬件相互发展,很快就会成为过去。

GPU 摆脱了 CPU 的技术限制,这使得可以说更自然的算法(如光线追踪和光子映射)在合理的分辨率和帧速率下几乎不可撤销。GPU 出现了,它具有完全不同和限制性的编程模型,但对于煞费苦心地编码到该模型的应用程序,吞吐量可能提高 2 或 3 个数量级。这两种机器模型具有(并且仍然具有)本质上不同的编码风格、语言(OpenGL、DirectX、着色器语言与传统桌面语言)和工作流程。这使得代码重用,甚至算法/编程技能重用变得极其困难,并且将任何想要使用密集并行计算基础的开发人员束缚在这种限制性编程模型中。

最后,我们将达到这样一个点,即这种密集的计算基板同样可以对 CPU 进行编程。尽管这些大规模并行加速器中的一个“核心”(尽管执行线程,例如 G80 上的 SM,并不完全是传统意义上的核心)和现代 x86 桌面之间仍然存在相当大的性能差异核心,两个因素推动这两个平台的融合:

  • 英特尔和 AMD 正朝着 x86 芯片上更多、更简单的内核发展,将硬件与 GPU 融合在一起,随着时间的推移,这些单元变得更加粗粒度和可编程)。
  • 这种力量和其他力量正在催生许多新的应用程序,这些应用程序可以利用数据或线程级并行 (DLP/TLP),有效地利用这种基板。

因此,蒂姆所说的是,这两个不同的平台将在更大程度上融合,例如,OpenCl 所能提供的。采访中的重要引述:

TS:不,我清楚地知道你要去哪里。在下一代控制台中,您可以拥有由单个非商品芯片组成的控制台。它可能是一个通用处理器,无论它是从过去的 CPU 架构还是 GPU 架构演变而来,它可能以完全同质的方式运行一切——图形、人工智能、声音和所有这些系统。这是一个非常有趣的前景,因为它可以极大地简化工具集和创建软件的过程。

现在,在发布 Unreal 3 的过程中,我们必须使用多种编程语言。我们使用一种编程语言编写像素着色器,另一种编写游戏代码,然后在 PlayStation 3 上,我们使用另一种编译器编写代码以在 Cell 处理器上运行。所以 PlayStation 3 最终成为一个特殊的挑战,因为你拥有来自不同供应商的三种完全不同的处理器,它们具有不同的指令集、不同的编译器和不同的性能技术。因此,很多复杂性是不必要的,并且使负载平衡更加困难。

例如,当您拥有三个具有不同编程能力的不同芯片时,您通常会让其中两个芯片大部分时间处于闲置状态,而另一个则被用尽。但是如果架构是完全统一的,那么你可以随时在芯片的任何部分运行任何任务,并通过这种方式获得最佳的性能折衷。

于 2008-09-24T06:00:16.037 回答
2

我发现这篇文章很有趣,因为随着 CPU 的速度和内核数量的不断增加,GPU 将不再是必要的。

http://arstechnica.com/articles/paedia/gpu-sweeney-interview.ars

于 2008-09-23T22:12:56.770 回答
0

曾经因为他们的并行架构和额外的芯片很有趣,这些芯片大多是空闲的,因此可以用于一般用途的编程任务 -

见 - http://en.wikipedia.org/wiki/CUDA

但面对楼上的回答,它可能不太相关。

于 2008-09-24T05:45:46.010 回答
0

关键优势是 gigaflops - 原始功率。缺点包括有限的、非正交的指令集和编程模型。

这是一份调查报告: http ://graphics.idav.ucdavis.edu/publications/print_pub?pub_id=907

维基百科文章是一个很好的开始。

Lou Franco 提到了对 Tim Sweeney 的采访;这是他演讲的幻灯片,其中包含更多详细信息: http ://www.scribd.com/doc/5687/The-Next-Mainstream-Programming-Language-A-Game-Developers-Perspective-by-Tim-斯威尼

也可能会四处寻找:http: //gpgpu.org

于 2008-12-05T11:20:31.253 回答