为何GPU受到服务器厂商的热捧?

原创
服务器
经过多年的尝试,图形处理单元(GPU)开始受到主流服务器厂商的重视,戴尔和IBM是第一批在高性能计算机(HPC)上采用GPU的一线服务器厂商,那为何GPU受到服务器厂商的热捧呢?

经过多年的尝试,图形处理单元(GPU)开始受到主流服务器厂商的重视,戴尔和IBM是***批在高性能计算机(HPC)上采用GPU的一线服务器厂商。GPU通常用在桌面PC上,主要作为电子游戏的高速图形加速器,但服务器厂商很快发现它除了在游戏渲染方面有出色的表现外,在数学计算方面也有先天性优势。

今年5月,IBM宣布计划为iDataPlex dx360 M3可横向扩展服务器提供一对Tesla M2050 GPU,戴尔也不甘落后,于6月宣布PowerEdge M610x刀片服务器将会装配一对Tesla M2050 GPU,M610x装配了英特尔至强5500或5600处理器,***可以提供400亿次/s的计算能力。

在这些服务器厂商竞相重视GPU计算的背后,Nvidia(英伟达)是***的赢家,都说早起的鸟儿有食吃,Nvidia在推动GPU作为数数学密集型计算任务处理单元方面已经持续了很长时间,但直到戴尔和IBM宣布集成Tesla M2050 GPU之前,Nvidia一直未获得一线服务器厂商的支持。

GPU历史

如果你对PC的发展历史比较了解,你一定还记得8086,80286和80386处理器中就具有数学协处理器了,分别是8087,80287和80387,如果你在20世纪80年代后期购买过PC做数学或科学计算,PC销售人员应该给你讲过数学协处理器,这些附加的芯片是专为快速,准确的计算而设计的,主要买家是电子表格用户,因为那时Lotus 1-2-3是x86上的杀手级应用,安装数学协处理器后计算速度会更快。

到80486时,数学协处理器就集成到CPU了,随后的处理器架构不断增加指令加快数学计算速度,到了今天,CPU设计文档称之为“浮点单元”,因为数学计算主要就是浮点运算。

计算机只会将数字看作是整数或浮点数,整数没有小数位(如13人),而浮点数有小数位(如3.14159),细粒度计算都是浮点单元的工作。

这对于图形来说特别重要,因为计算构成一个平滑三维图像的三角形位置需要非常精确的分数,多或少一点三角形就会开裂,破坏图像的整体效果,图形处理软件需要计算30位小数获得精确的拟合,颜色和亮度。#p#

多核数学处理器

多年来,Nvidia和它的竞争对手ATI(2006年AMD收购了ATI)已经生产过大量的多核数学处理器,有意思的英特尔和AMD制造的CPU大多还是4-6核,而Nvidia***的Fermi架构具有483个流处理器(当然也会消耗更多的电力,产生更多的热量),而ATI Radeon 5000系列更是达到了1600个流处理器。

流处理主要用于并行处理计算单元,靠软件管理内存分配,数据同步和通信等,这些核心通过高速连接通道连接。

GPU线程比CPU线程更小,因为它们只包含了一堆数学指令,通常,数学指令会被简单地视为加法,GPU可以更快地切换线程,因为核心可以在一个时钟周期内从一个线程转到另一个线程,而某些CPU是办不到的,CPU线程是一系列复杂的指令组成的,如系统进程或操作系统调用。

最近,需要高性能计算的人们已经意识到那些483到1600个数学核心除了渲染游戏外,可能还可以做点别的什么,Nvidia和AMD当然举双手赞成,最近它们也增强了GPU中的数学协处理器。

***要提到的是双精度浮点运算,它是复杂科学计算所必需的,Nvidia和ATI也都已经将双精度浮点运算加入到它们的芯片中去了,单精度浮点数是32位长度(2^32),而双精度浮点数是64位长度(2^64),这个与游戏毫不相干,但科学研究却离不开它,如全球气候模拟科学实验。#p#

GPU编程

如果你数据中心的服务器有GPU,那么在编写服务器应用程序时就应该将其考虑进去,但利用GPU不是一个简单的任务,需要在CPU和GPU之间做好协调,不是引用几个现成的库,写几行代码就可以搞定的。

电子游戏是大量使用浮点运算的很好示例,但游戏并非浮点运算的唯一用途,凡是与可视化相关的领域几乎都会牵扯到浮点运算,如医学成像,三维成像,科学成像,石油和天然气勘探可视化,娱乐,广告和金融建模等。

这个过程被称为GPGPU计算,或通用GPU计算,需要通过编程将本该由CPU处理的计算任任务交由GPU处理,很多时候,这意味着要重写代码,Nvidia使用CUDA开发语言来处理。

CUDA是一种类似于C的编程语言,用它可以开发在Nvidia GPU上并行运行的应用程序,与x86处理器不一样,应用程序不只并行运行2,4或8个线程,而是数百个线程。

Nvidia的付出也得到了回报,现在全世界有超过350所大学已经开设了CUDA开发课程,但如果只有Nvidia一家公司有这个干劲,最终也可能是徒劳的。

OpenCL项目是OpenGL的一个分支,它为3D显卡提供了一个图形库(在很大程度上可以取代微软的DirectX),苹果公司是OpenCL框架的创立者,OpenCL框架用于编写跨CPU、GPU和其它处理器执行的程序,OpenCL包括一个编写内核和API的语言,它们可用于基于任务和基于数据的并行编程。

OpenCL与CUDA相比有优势也有弱点,首先,它支持多处理器计算,而CUDA只支持Nvidia GPU;OpenCL可以让任何应用程序访问GPU,且不用重写代码,而CUDA必须用C为Nvidia GPU重写代码;OpenCL支持任何输入/输出处理器,因此它也支持安腾、Sun UltraSparc和ARM嵌入式处理器。

OpenCL框架比CUDA技术更新,因此缺少很多CUDA具有的特性,也没有CUDA成熟,最值得注意的是,CUDA拥有快速傅里叶变换内核(FFT),但OpenCL没有,FFT算法是一个复杂的算法,在高级科学计算和图像处理领域有着广泛的应用。

这两个框架都有各自的优缺点,CUDA凭借Nvidia的强力支撑已经占领了绝大多数市场,而OpenCL也不弱,它由标准化组织管理,但从目前来看还是一事无成,我们是将自己绑定到Nvidia还是等待标准更新?有点举棋不定。

除了CUDA和OpenCL外,还有第三个竞争对手,那就是微软的DirectCompute,DirectCompute是DirectX 11 API库中的一个组件,我们在Windows 7中可以找到它,和OpenCL一样,它可以让应用程序使用GPU的计算能力。由于它仅在DirectX 11中,因此使用DirectCompute有些限制,首先,它只能运行在Windows 7计算机上,因为微软没有为其它系统准备DirectX,市场上也没有那么多DirectX 11显卡,ATI现在处于领先地位,但Nvidia也正努力追赶,目前,DirectCompute还未被服务器厂商正式利用。#p#

应用模式

那么谁最适合GPU计算?正如前文所述,高级数学运算是一种情况,还有医学研究中的疾病逆向工程,医学成像中的超声图像渲染,以及视频和图像处理领域,如电影特效制作。

Nvidia最近可谓风光极了,在2010奥斯卡奖项中,三部***特效电影(星际旅行,阿凡达和第9区)都离不开Nvidia的功劳,因为它们都使用了Nvidia GPU进行渲染。在商业领域,Nvidia GPU也被广泛用于能源研究,石油和天然气储量探测计算,以及股市趋势分析。

但你的数据中心并不一定需要GPU,因此不要认为下一次购买服务器就一定要买集成GPU的,对于基本的服务器任务,如文件服务,网页服务或数据库服务,GPU是帮不上忙的,对于I/O密集型应用,如应用程序服务器或数据库服务器,也是不需要GPU的,它们需要的是大内存,高速连接,或是固态存储,但都与GPU无关。

使用GPU涉及到编程,这也是目前新兴的一种编程类型,想进入这一行的开发人员应该接受专业的培训和教育,但不一定要参加硬件公司的培训,但诸如Nvidia和AMD提供的培训可能更扎实,但不一定适合企业级开发。

原文名:Why “Gaming” Chips Are Moving Into the Server Room 作者:Jason Lane

本文是51CTO原创,如要转载请标明出处。

【编辑推荐】

  1. 超级计算机的未来:CPU还是GPU?
  2. GPU+CPU称雄Green500强 中国进前十
  3. 超微、NVIDIA磨刀霍霍 GPU杀入数据中心(图)

 

责任编辑:景琦 来源: 51CTO
相关推荐

2016-08-16 09:05:37

区块链互联网金融

2010-09-29 15:55:24

刀片服务器GPU

2010-06-25 09:44:30

GPU+CPU混合计算

2010-03-17 09:27:34

英特尔服务器芯片

2019-05-08 14:46:15

QQ90后00后

2012-10-24 11:08:38

刀片服务器刀片服务器厂商魔力象限

2009-09-04 13:19:03

服务器

2009-12-27 14:11:02

服务器

2011-08-10 09:56:31

2009-04-01 13:11:01

Nehalem四核Intel

2012-02-28 09:42:58

微型服务器数据中心

2009-12-04 10:27:45

公共DNS服务器

2009-02-01 16:11:00

IDC服务器厂商

2017-03-07 09:52:16

2009-02-01 13:39:31

磁盘阵列数据中心SATA

2009-06-30 14:51:21

虚拟化云计算

2009-06-30 19:19:44

虚拟化云计算WAN

2010-01-06 18:13:49

浪潮服务器亚运会

2010-05-19 14:53:07

GPU服务器Nvidia

2011-08-11 09:28:48

点赞
收藏

51CTO技术栈公众号