为什么Mike Pound用图形卡而不是处理器来测量计算机的计算能力?


17

我最近在观看一部精彩的Computerphile视频,上面有关于密码的视频,其中Mike Pound吹嘘自己公司的超级计算机具有4个图形卡(准确地说是Titan X)。

作为一个数值模拟爱好者,我梦想着建立一个仅用于模拟工作的桌面。为什么Mike Pound用图形卡而不是处理器来测量计算机的计算能力?如果要构建计算机,我应该进一步关注哪一项?


11
我认为这并不一定是大猩猩与鲨鱼的问题……有一个简单的问题:“为什么迈克庞德用图形卡而不是处理器来测量计算机的计算能力?” 可以回答,其答案对未来的读者具有建设性的价值。
Maybe_Factor

6
@gnat:甚至不近。当然,目前的问题不是软件工程。但是我想这可以解释为关于系统工程的问题,其中system =“硬件+软件的组合”。
布朗

10
具有4个图形卡的计算机不等于一台超级计算机(就此而言,由10个Raspberry Pi组成的集群也不属于超级计算机)。
Matti Virkkunen

10
那只是一个非常昂贵的PC设置,而不是一台超级计算机...
Bakuriu

3
因为上下文是密码破解,所以不是“为什么Mike Pound用其图形卡测量计算机的计算能力”的简单答案?如果问题空间是其他问题,那么您需要关心的可能完全是其他问题。
JimmyJames

Answers:


32

Mike Pound显然认为图形卡的计算能力要比CPU高。

为什么? 图形卡基本上由许多并行运行的简化处理器组成。对于某些仿真工作,可以轻松地并行处理并在图形卡上的数千个内核上并行处理大量计算,从而减少了总处理时间。

我应该更关心哪个项目? 这实际上取决于您关心的工作负载,以及如何/可以并行化工作负载以在图形卡上使用。如果您的工作量是一组令人尴尬的并行简单计算,并且编写该软件是为了利用可用的图形卡,则与更多的CPU(美元)相比,更多的图形卡对性能的影响要大得多。


5
加一些数字。假设您的主计算机是64核,128个具有超线程功能的AMD Epyc Server。我们还可以说图形卡的“核心”速度只有后者的10%。一个TitanX仍然具有3072个cuda内核,大约12000个。有主意吗?如果您可以在图形卡上运行问题,那不是“更快”-就像将马车的速度与一级方程式赛车进行了比较。
TomTom

3
+1为“令人尴尬的并行简单计算集”,写得很好。精炼到位。
Michael Viktor Starberg

11
@TomTom:实际上,我的首选比较是将一级方程式赛车(您的CPU)与高速火车进行比较。当然,火车和汽车的速度大致相同。但是,火车可以使1000人从A到B的移动速度比一级方程式赛车要快。
slebetman's

2
@slebetman关键是CPU的单核性能通常要快得多(速度几乎不相同)。也许我们可以妥协,然后将超音速喷气飞机与蒸汽机车进行比较。
达伦·林格

2
如果必须选择基于车辆的类比,我会说CPU就像一架战斗机(点对点运输要快得多,并且有很多其他车辆无法做到的花招,但只能而GPU就像是一艘货船(它可以并行承载更多的负载,但周转速度要慢得多)。
Lie Ryan

5

请查看https://developer.nvidia.com/cuda-zone(以及有关更多信息的google cuda nvidia)。cuda体系结构和高端图形卡已广泛用于台式超级计算机。通常,您可以使用现成的白盒组件以低于1万美元的价格组装一个数Tflop的盒子。

所以...

作为数值模拟爱好者,我梦想着建立一个仅用于模拟工作的桌面

... CUDA无疑是城里最好的游戏。也许尝试在/scicomp//或另一个与此类事情直接相关的stackexchange网站上再次询问。

(顺便说一句,我假设您对我们在这里谈论大规模并行编程的想法感到满意,因此您可能需要熟悉算法设计的范例。)


我们照常回到鄂尔多斯。
Michael Viktor Starberg

2
@MichaelViktorStarberg我是唯一不了解鄂尔多斯参考书的人吗?
MarnixKlooster恢复状态莫妮卡

恐怕您是...:/
Ismael Miguel

4
@MarnixKlooster:我不得不去Google“鄂尔多斯”。不确定中国的“鬼城”与超级计算机或万亿次软硬件有什么关系。
罗伯特·哈维

@MarnixKlooster您确实不是。
jpmc26 2015年

2

如果要构建计算机,我应该更关心哪个项目?

从实际的角度来看,考虑到与GPU相比升级相对困难,您可能应该特别注意主板和CPU。购买后,您发现没有足够的空间容纳四个GPU或足够快的处理器,无法让它们全部忙碌。

您还应该知道,GPU性能通常是在单精度FLOP中报告的,而对于双精度来说,性能会下降很多。如果您在仿真中需要更高的精度,则最终结果将大大低于广告中提到的速度。

进行软件工程竞赛

从软件的角度来看,实际上有两个主要问题,冯·诺依曼瓶颈和编程模型。CPU可以很好地访问主内存,GPU则拥有大量板载更快的内存。众所周知,将数据移入和移出GPU的时间完全抵消了任何速度上的胜利。通常,CPU是在大量数据上进行适度计算的赢家,而GPU在较小量的大量计算上表现出色。所有这些使我们进入了编程模型。

从高层看,问题是古老而受人尊敬的MIMD / SIMD辩论。多指令/多数据系统已成为通用和商业计算的大赢家。在包括SMP的该模型中,有多个处理器各自执行自己的单独指令流。它相当于法国厨房的计算机,您可以在其中指挥少量熟练的厨师来完成相对复杂的任务。

另一方面,单指令/多数据系统更像是一个巨大的房间,里面满是办事员,这些书房按照主控制器的指示拴在桌子上。“每个人都添加3和5行!” 它以纯净的形式用于ILLIAC和一些“微型-超级”系统,但在市场上被淘汰。当前的GPU是近亲,它们更灵活,但具有相同的基本原理。

总结一下:

  • 对于任何给定的操作,CPU都会更快,而GPU可以同时执行许多操作。对于64位浮点数,差异最为明显。
  • CPU内核可以在任何内存地址上运行,GPU的数据必须封装在较小的区域中。只有在进行足够的计算以抵消传输时间的情况下,您才能获胜。
  • 有条件的代码通常在CPU上会更快乐。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.