计世网

GPU:不仅能让你过瘾“吃鸡”,还是HPC与AI的新宠!
作者:Andy Patrizio | 来源:计算机世界
2018-10-24
为什么原本用于电脑游戏的图形处理芯片在企业计算中变得越来越重要了呢? 答案可能在芯片之外。

 

很少有处理器能在其所设计应用的领域之外获得巨大成功,而图像处理器(GPU)却做到了。一款最初旨在加速游戏图形的芯片,现在它的应用几乎包罗万象——从Adobe Prime和数据库到高性能计算(HPC)和人工智能(AI),等等。

几乎所有OEM大厂和外包供应商的服务器上现在都有GPU,但它们并非用于图形加速。这是因为GPU本质上是一个巨大的数学协处理器,现在被用来执行从3D仿真到医疗成像,直至金融建模等计算量非常大的工作。

GPU与CPU

由于GPU设计用途单一,所以GPU的内核要比CPU的内核小得多,因此,GPU有数千个内核,而CPU最多只有32个。对于一项任务而言,有5000个内核可用,因此,这种设计非常适合于大规模并行处理

Jon Peddie研究公司的主要业务针对图形市场,其总裁Jon Peddie指出,对于任何需要并行处理的应用程序,都是GPU计算的用武之地。

他说:“过去,并行处理是由x86这样大量的处理器来完成的,因此成本非常高,而且很难编程。GPU作为一种专用的单用途处理器,其计算密度更高,已经被用于很多数学加速任务中。”

支持GPU的应用程序

GPU在数据中心中的应用开始于本地开发的应用程序,这得益于Nvidia开发的一种名为CUDA的语言。CUDA使用类似C语言的语法来调用GPU,而不是CPU,它不是一次调用,而是能够并行执行数千次。

随着GPU性能的提高,以及处理器能够应用于非游戏任务,越来越多的打包应用程序都开始支持GPU。这包括Adobe Permieri等桌面应用程序,还有服务器端的应用程序,包括SQL数据库。GPU非常适合用于加速SQL查询处理,因为SQL在指令集中的每一行都执行相同的操作(通常是搜索)。GPU可以通过把一行数据分配给一个内核来并行处理这一过程。

Brytlyt、SQream Technologies、MapD、Kinetica、PG-Strom和Blazegraph都在他们的数据库中提供了GPU加速分析功能。甲骨文公司曾披露正在与Nvidia合作,但迄今为止似乎还没有任何进展。微软在SQL服务器上不支持GPU加速。

GPU与高性能计算(HPC)

GPU在HPC上也得到了应用,仿真、金融建模和3D渲染等很多任务在并行环境中运行得非常好。据市场研究公司Intersect 360对HPC市场的调查数据,50个最受欢迎的HPC应用软件包中有34个提供GPU支持,包括所有排在前面的15个HPC应用程序。

这包括化学应用程序GROMACS、Gaussian和VASP,用于流体动力学的ANSYS和OpenFOAM,用于结构分析的Simulia Abaqus和用于天气/环境建模的WRF等等。

分析师们在报告中说:“我们相信GPU计算在HPC市场上已经开始从量变到质变,这将鼓励开发者们不断优化应用程序。”

GPU计算实例

GPU快速兴起的市场是人工智能和机器学习,两者都是大规模并行问题。硬件供应商Supermicro的GPU服务器部门的产品管理主任Sarosh Irani说:“很多企业和首席信息官都在研究怎样利用深度学习来解决自己的问题。有些人只是涉猎;而有的人则深入其中。而深度学习的应用是非常全面的,人们认识到深度学习能够帮助他们,他们需要一台GPU服务器。”

如果你想在某项工作上变得聪明起来,只要有足够多的样本,人工智能就能让你心想事成。人工智能系统学习识别某些东西,例如,癌细胞看起来是什么样的,但是要做到这一点需要大量的数据,处理好这些数据,才能区分好坏。当发现相关性时,可以建立算法,进行分析。

例如,意大利能源公司Eni和美国的Stone Ridge科技能够在不到一天的时间内处理完油矿模型,而不是10天。使用3200个NVIDIA Tesla GPU和Stone Ridge的ECHELON软件进行基于GPU的油矿仿真,在大约15.5个小时内就能处理了10万个油矿模型,每一个模型平均在28分钟内就能仿真了油矿15年的生产量。如果使用传统的硬件和软件,完成这项任务需要10天的时间。

油矿建模并非易事。通过从地球表面反射的声波,寻找表明储油量的回波来发现油矿。然后,反射波数据被转换成图像,地球科学家利用这些图像来确定油矿是否含有碳氢化合物,以及碳氢化合物在图像中的位置。这就决定了是否值得开采这一油矿。所有这些都需要繁重的数学处理,而这是GPU所擅长的。

GPU制造商:Nvidia和AMD

与CPU一样,GPU市场也有两家参与者——Nvidia和AMD。据Jon Peddie研究公司称,在消费类游戏领域,竞争相当激烈,两家公司的市场份额分别为60%和40%,Nvidia处于领先地位。

然而,在数据中心,两家的差距非常大。Peddie报道说,Nvidia占有90%的市场份额,而AMD只占10%。这是因为Nvidia在这一领域深耕了20多年,支持GPU在数据中心以及其他非游戏类的应用。

GPU与CUDA编程

在21世纪初,一些斯坦福大学的研究人员开始深入研究GPU的可编程和并行特性。Nvidia公司聘请这些研究人员开发了CUDA编程语言,支持开发人员采用C++编写应用程序,通过GPU进行加速。

Peddie评论说:“我非常信任Nvidia。他们资助了全世界的数百所大学来教授CUDA。因此,当一名学生毕业时,他们成为经过预培训的CUDA开发人员,为CUDA进入我们目前所熟知的行业奠定了基础。”

CUDA团队有一名斯坦福教授Ian Buck,现在成为Nvidia加速计算业务部的副总裁。他表示,CUDA的目的是便于学习和使用。他说:“任何知道C语言或者Fortran语言的人,我都能在一天内教会他CUDA。我们早就意识到,我们不应创造一种要求人们去学习新东西的全新的编程语言。”

因此,已经在CPU上运行的应用程序能够相对快速地进行并行化处理。CUDA的主要变化在于不再像排序例程那样只调用一次函数,而是调用数千次,每个内核执行一次。但是CUDA只适用于Nvidia GPU。要对AMD GPU编程,必须使用一个称为OpenCL的库,CUDA完全不支持它。

GPU与能耗

GPU在基本性能上是CPU强有力的替代者,但是性能和功耗之间有直接关系,所以两者还保持着联系。GPU的最大功率为300瓦。虽然Xeons的新一代版本Skylake功耗达到了200瓦,但CPU功耗平均低于100瓦。

最终,GPU因其规模而弥补了它的不足。因为它们可以完成几十个CPU的工作,所以需要更少的GPU来进行同样工作量的工作。Nvidia公司表示,进行同样的工作,新的DGX-2 GPU服务器系统的功耗只是传统CPU HPC集群的1/8。

对于Supermicro来说,这意味着它必须从头开始设计一款使用GPU的产品。Irani说:“如果我把一个300瓦的GPU放在系统中,那么可能没有足够的功率容量或者散热能力来支持它。8个GPU,绝对不可能。所以我需要一个定制的机架。”

如果数据中心的功率有限,那这就是个问题。并不是每个人都能够奢侈地建造足球场那么大的数据中心,而且旁边必须有一条河,用于水力发电和冷却。David Rosenberg是彭博(Bloomberg)首席技术官办公室的数据科学家,他非常喜欢使用GPU来减轻计算工作,CPU需要一年的时间,而GPU一个周末就完成了。

但他也经常有这样的情况,整个机柜只有一两个GPU机架,因为它们消耗了机柜所能提供的全部功率。

他说:“我们一直在关注功耗问题。如果我们把500个GPU放到一个数据中心里,那就不能再放其他计算机了。与CPU相比,GPU所提供的计算能力更强。只是它们做的计算比CPU多得多,所以才占用了大量的功率。”

 


 

作者:Andy Patrizio 是南加州的一名自由撰稿人,20多年来一直从事计算机行业,他所拥有的每一台x86个人计算机都是他自己组装的,不包括笔记本计算机。

原文网址:

https://www.networkworld.com/article/3271077/servers/gpus-designed-for-gaming-now-crucial-to-hpc-and-ai.html

编译:Charles

审稿编辑:刘沙

排版编辑:周星如

责任编辑:周星如