Performance GPGPU(通用GPU)开发的优缺点是什么?

Performance GPGPU(通用GPU)开发的优缺点是什么?,performance,optimization,hpc,Performance,Optimization,Hpc,我想知道在GPGPU开发中帮助您的关键是什么,当然,您认为不可接受的限制是什么 我想到: 关键优势:这些东西的原始力量 关键约束:内存模型 你的看法是什么?我发现这篇文章很有趣,它讲述了随着CPU和内核速度的不断提高,GPU将如何不再那么必要 过去,它们的并行体系结构和额外的硅非常有趣,这些硅大部分是空闲的,因此可以用于一般用途的编程任务- 见- 但这可能与卢的上述回答不太相关。你必须小心如何解读蒂姆·斯威尼在采访中的陈述。他说有两个独立的平台(CPU和GPU),一个适合单线程性能,另一个适

我想知道在GPGPU开发中帮助您的关键是什么,当然,您认为不可接受的限制是什么

我想到:

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

你的看法是什么?

我发现这篇文章很有趣,它讲述了随着CPU和内核速度的不断提高,GPU将如何不再那么必要


过去,它们的并行体系结构和额外的硅非常有趣,这些硅大部分是空闲的,因此可以用于一般用途的编程任务-

见-


但这可能与卢的上述回答不太相关。

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

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

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

  • 英特尔和AMD正朝着x86芯片上更多、更简单的内核方向发展,将硬件与GPU融合在一起,随着时间的推移,GPU中的单元变得更粗粒度和可编程性)
  • 这股力量和其他力量正在催生许多新的应用程序,它们可以利用数据或线程级并行(DLP/TLP),有效地利用这种基底
因此,Tim所说的是,这两个不同的平台将融合,融合程度甚至超过例如提供的范围。采访中的一段重要引语:

TS:不,我知道你在哪里 标题在下一个控制台中 一代人你可以有控制台 由单个非商品组成 炸薯条它可能是一个通用处理器, 它是否从过去的CPU演变而来 架构或GPU架构,以及 它可能会运行 所有的图形,人工智能, 声音,所有这些系统 完全同质的方式。那是个好主意 非常有趣的前景,因为它 可以大大简化 工具集及其创建过程 软件

现在,在运输过程中 虚幻3,我们必须使用多个 编程语言。我们用一个 像素写入程序设计语言 着色器,另一个用于编写游戏的着色器 代码,然后在PlayStation 3上使用 还有另一个要编写代码的编译器 在单元处理器上运行。所以 PlayStation 3最终成为一个 特别的挑战,因为有 你有三个完全不同的 来自不同供应商的处理器 不同的指令集和 不同的编译器和不同的 性能技术。所以,很多 复杂性是不必要的,而且 使负载平衡更加困难

例如,当你有三个 不同的芯片具有不同的功能 编程能力,你经常 有两个芯片闲置着 大部分时间,另一个 他已经筋疲力尽了。但是如果建筑 是完全一致的,那么你可以 在芯片的任何部分运行任何任务 在任何时候,都可以得到最好的 这样的性能权衡


主要的优势是千兆次-原始功率。缺点包括有限的、非正交的指令集和编程模型

这是一份调查报告:

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

Lou Franco提到了对Tim Sweeney的采访;以下是他演讲的幻灯片,内容更为详细:

可能还会四处窥探:

我非常同意蒂姆的观点。考虑到拉拉比的到来,情况就更糟了。