您认为GPU作为CUDA等CPU计划的未来是什么?你认为它们会成为主流并成为业界的下一个流行趋势吗? Apple正在构建一个使用GPU执行CPU任务的新框架,并且Nvidias CUDA项目在科学方面取得了很多成功。你会建议学生在这个领域投入时间吗?
答案 0 :(得分:18)
如果您对科学和并行计算感兴趣,请提交时间。不要想到CUDA并将GPU看作CPU。它只允许比旧的GPGPU编程技术更直接的GPU编程方法。
通用CPU可以从各种工作中获得良好的工作能力,这些工作包括分支预测,流水线操作,超级管理器等。这使得他们可以在各种各样的工作中实现良好的性能。工作负载,同时使它们厌倦了高吞吐量内存密集型浮点运算。
GPU最初设计用于做一件事,而且非常非常好。图形操作本质上是并行的。您可以同时计算屏幕上所有像素的颜色,因为结果之间没有数据依赖关系。此外,所需的算法不必处理分支,因为几乎所有需要的分支都可以通过将系数设置为零或一来实现。因此硬件可以非常简单。没有必要担心分支预测,而不是制作处理器超级分类器,您可以简单地添加尽可能多的ALU,因为您可以在芯片上填充。
通过可编程纹理和顶点着色器,GPU获得了通用可编程性的途径,但它们仍然受到硬件的限制,硬件仍然是为高吞吐量浮点运算而设计的。可能会添加一些额外的电路以实现更多通用计算,但只能达到一定程度。任何损害GPU执行图形处理能力的东西都无法实现。毕竟,GPU公司仍处于图形业务领域,目标市场仍然是游戏玩家和需要高端可视化的人。
GPGPU市场仍处于下滑之中,并且在一定程度上仍将如此。毕竟,“它看起来很漂亮”是一个要低得多的标准,而不是“每次100%保证和可重复的结果”。
简而言之,GPU永远不可能像CPU那样可行。它们仅适用于不同类型的工作负载。我希望GPU能够获得能够快速解决各种各样问题的功能,但它们始终是图形处理单元。
始终将您遇到的问题与您必须解决的最合适的工具相匹配始终是非常重要的。
答案 1 :(得分:6)
长期以来我认为GPU将不复存在,因为通用处理器将逐渐接管这些功能。 Intel's Larrabee是第一步。历史证明,投注x86是一个坏主意。
大规模并行架构和矢量处理的研究仍然有用。
答案 2 :(得分:5)
首先,我不认为这些问题确实属于SO。
在我看来,只要你进行基于矢量的浮点数学,GPU就是一个非常有趣的选择。然而,这意味着:它不会成为主流。大多数主流(桌面)应用程序只进行很少的浮点计算。
它已经在游戏(物理引擎)和科学计算中获得了关注。如果你认为这两者中的任何一个都是“主流”,那么GPU将成为主流。
我不认为这两者是主流,因此我认为,GPU将成为主流行业的下一个时尚潮流。
如果你作为一名学生对基于物理学的大量科学计算感兴趣,你绝对应该花一些时间(GPU无论如何都是非常有趣的硬件)。
答案 3 :(得分:5)
您很快就会看到来自英特尔和AMD的新处理器,包括GPU式浮点矢量计算以及标准CPU计算。
答案 4 :(得分:2)
我认为这是正确的方法。
考虑到GPUs have been tapped to create cheap supercomputers,它似乎是事物的自然演变。凭借如此多的计算能力和R& D已经为您完成,为什么不利用现有的技术呢?
所以继续做吧。它将进行一些很酷的研究,以及购买高端显卡的合理理由,这样你就可以在完整的图形细节上玩“孤岛危机”和“刺客信条”;)
答案 5 :(得分:2)
它是你看到1或2个应用程序的其中一个,但很快就会有人想出一个'杀手级应用程序',它能够以超快的速度找出更常用的东西。
像素着色器将例程应用于大型浮点值数组,也许我们会看到一些GIS覆盖应用程序或者好,我不知道。如果你没有比我更多的时间,那么你将拥有与我相同的洞察力 - 即很少!
我觉得这可能是一件非常重要的事情,英特尔和S3也是如此,也许它只需要一点点调整就可以添加到硬件上,或者是一个头顶上有灯泡的人。
答案 6 :(得分:1)
有这么多未开发的力量,我看不出它会如何长时间未使用。但问题是如何将GPU用于此目的。 CUDA似乎是一个很好的猜测现在,但其他技术正在出现,这可能使普通开发人员更容易接近。
苹果最近宣布OpenCL,他们声称这不仅仅是CUDA,而是非常简单。我不确定究竟要做什么,但khronos小组(那些致力于OpenGL标准的人)正在研究OpenCL标准,并试图使其与OpenGL高度互操作。这可能会导致一种更适合正常软件开发的技术。这是一个有趣的主题,顺便说一下,我即将开始我的硕士论文,主题是如何以CUDA为主要焦点,为普通开发人员提供最佳GPU功能(如果可能的话)。
答案 7 :(得分:1)
很久以前,进行浮点计算真的很难(每条指令仿真数千次/数百万次执行(如今的标准)CPU,如80386)。需要浮点性能的人可以获得一个FPU(例如,80387.旧的FPU非常紧密地集成到CPU的操作中,但它们是外部的。后来它们被集成,80486内置了FPU。
旧时FPU与GPU计算类似。我们已经可以通过AMD的APU获得它。 APU是内置GPU的CPU。
所以,我认为你的问题的实际答案是,GPU不会成为CPU,而是CPU将内置GPU。