我最近在观看一部精彩的Computerphile视频,上面有关于密码的视频,其中Mike Pound吹嘘自己公司的超级计算机具有4个图形卡(准确地说是Titan X)。
作为一个数值模拟爱好者,我梦想着建立一个仅用于模拟工作的桌面。为什么Mike Pound用图形卡而不是处理器来测量计算机的计算能力?如果要构建计算机,我应该进一步关注哪一项?
我最近在观看一部精彩的Computerphile视频,上面有关于密码的视频,其中Mike Pound吹嘘自己公司的超级计算机具有4个图形卡(准确地说是Titan X)。
作为一个数值模拟爱好者,我梦想着建立一个仅用于模拟工作的桌面。为什么Mike Pound用图形卡而不是处理器来测量计算机的计算能力?如果要构建计算机,我应该进一步关注哪一项?
Answers:
Mike Pound显然认为图形卡的计算能力要比CPU高。
为什么? 图形卡基本上由许多并行运行的简化处理器组成。对于某些仿真工作,可以轻松地并行处理并在图形卡上的数千个内核上并行处理大量计算,从而减少了总处理时间。
我应该更关心哪个项目? 这实际上取决于您关心的工作负载,以及如何/可以并行化工作负载以在图形卡上使用。如果您的工作量是一组令人尴尬的并行简单计算,并且编写该软件是为了利用可用的图形卡,则与更多的CPU(美元)相比,更多的图形卡对性能的影响要大得多。
请查看https://developer.nvidia.com/cuda-zone(以及有关更多信息的google cuda nvidia)。cuda体系结构和高端图形卡已广泛用于台式超级计算机。通常,您可以使用现成的白盒组件以低于1万美元的价格组装一个数Tflop的盒子。
所以...
作为数值模拟爱好者,我梦想着建立一个仅用于模拟工作的桌面
... CUDA无疑是城里最好的游戏。也许尝试在/scicomp//或另一个与此类事情直接相关的stackexchange网站上再次询问。
(顺便说一句,我假设您对我们在这里谈论大规模并行编程的想法感到满意,因此您可能需要熟悉算法设计的范例。)
如果要构建计算机,我应该更关心哪个项目?
从实际的角度来看,考虑到与GPU相比升级相对困难,您可能应该特别注意主板和CPU。购买后,您发现没有足够的空间容纳四个GPU或足够快的处理器,无法让它们全部忙碌。
您还应该知道,GPU性能通常是在单精度FLOP中报告的,而对于双精度来说,性能会下降很多。如果您在仿真中需要更高的精度,则最终结果将大大低于广告中提到的速度。
进行软件工程竞赛
从软件的角度来看,实际上有两个主要问题,冯·诺依曼瓶颈和编程模型。CPU可以很好地访问主内存,GPU则拥有大量板载更快的内存。众所周知,将数据移入和移出GPU的时间完全抵消了任何速度上的胜利。通常,CPU是在大量数据上进行适度计算的赢家,而GPU在较小量的大量计算上表现出色。所有这些使我们进入了编程模型。
从高层看,问题是古老而受人尊敬的MIMD / SIMD辩论。多指令/多数据系统已成为通用和商业计算的大赢家。在包括SMP的该模型中,有多个处理器各自执行自己的单独指令流。它相当于法国厨房的计算机,您可以在其中指挥少量熟练的厨师来完成相对复杂的任务。
另一方面,单指令/多数据系统更像是一个巨大的房间,里面满是办事员,这些书房按照主控制器的指示拴在桌子上。“每个人都添加3和5行!” 它以纯净的形式用于ILLIAC和一些“微型-超级”系统,但在市场上被淘汰。当前的GPU是近亲,它们更灵活,但具有相同的基本原理。
总结一下: