GPU通用计算解密

来源 :电脑爱好者 | 被引量 : 0次 | 上传用户:sketchupbim
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  很多朋友都知道CPU是一台计算机的运算核心和控制核心,在早期的计算机中,所有的运算几乎都是通过CPU完成的。不过随着显卡GPU的发展,越来越多只需要简单、大数据量的计算,这时便主要依靠GPU了。比如我们之前介绍的比特币挖矿机,它的计算就主要通过GPU来完成。即使是现在的超级计算机也离不开GPU,比如中国的天河一号A,它就拥有7168颗Tesla M2050 GPU(图1)。下面就让我们了解一下GPU的神秘幕后。
  从配角到主角——GPU是怎样成为通用计算主力
  GPU设计主要是为显卡的图形渲染服务的,它能够从硬件上支持T&L(Transformand Lighting,多边形转换与光源处理)的显示芯片。T&L是3D渲染中的一个重要部分,其作用是计算多边形的3D位置和处理动态光线效果,一个好的T&L单元,可以提供细致的3D物体和高级的光线特效。
  早期的计算机,T&L的大部分运算是通过CPU完成的(也称之为软T&L),但是随着游戏画面要求越来越精美,游戏渲染计算量越来越大,即使是性能再强劲的CPU其运算速度也远跟不上今天复杂三维游戏的要求,这就导致显卡经常需要等待CPU返回计算数据。因此显卡厂商决定在显卡上集成可以独立渲染计算的GPU(也称之为硬T&L),通过它来接管原来交给CPU的计算。随着显卡工艺的提高,现在GPU在浮点运算、并行计算等方面,可以提供数十倍乃至于上百倍于CPU的性能,也使得GPU逐渐成为通用计算的主角(图2)。
  因为专业,所以高效——认识GPU的优越算法
  如果仅从数据处理角度来说,GPU和CPU计算原理是一样的。不过相对CPU来说,GPU的计算能力要专业得多。因为一方面,GPU只是显卡专门处理数据的处理器,它的任务就是专业做好计算工作,而不像CPU那样,既需要接管其他程序递交过来的计算,同时还要做内存管理、输入响应、数据协调等诸多的工作。
  另一方面,GPU拥有比CPU更多的计算内核,目前个人CPU八核都没有普及,但是GPU已经拥有数以百计的内核,在高密度并行计算方面拥有得天独厚的优势。这也使得GPU在通用计算能力方面可以比CPU做得更好。比如,美国国家癌症研究所通过GPU计算将模拟速度提升了12倍,等待结果的时间从原来的2个小时缩短到了10分钟。美国国家大气研究中心的气象研究和预报模型(WRF)尽管仅仅将1%通过CUDA来实现,但其总体速度却提升了20%,节省了一个星期的分析时间!
  GPU通用计算能力出色则主要归功于其并行计算技术的使用。并行计算简单地说就是可以让GPU的多个内核同时计算一组数据,以提高计算效率。举个简单的例子,比如我们要计算从1一直加到100,假设GPU有十个计算核心,那么并行计算可以将1~10的计算交给核心1完成,11~20则交给核心2完成,依此类推,这样在进行这组计算的时候,10个核心就可以同时计算,计算的效率自然很高了(图3)。
  联合作战——GPU与CPU、操作系统的紧密结合
  虽然GPU并行计算很优越,但是GPU毕竟只是计算机中的一个组件,它的计算结果、计算协调还需要CPU的协助,而CPU、GPU是运行在操作系统上,它们同样还要做好和操作系统的协调工作。
  一方面,GPU要和CPU紧密结合,现在科技人员通过异构计算来协调两者之间的关系。异构计算可以使用不同类型的指令集和体系架构的计算单元组成系统的计算方式。这样在显卡进行计算的同时,处理器也不会处于闲置状态,它同时也可以参与进行计算,从而提高计算机的运算能力(图4)。
  另一方面,微软也看到GPU的通用计算能力,因此在操作系统层面针对GPU和CPU进行了优化。比如微软在Windows 7中内置DirectX Compute,它将GPU作为操作系统的核心组成部分之一,让开发人员能够利用GPU的大规模并行计算能力,同时可以很好地和CPU进行协调,在系统底层方面为GPU和CPU联合计算做了很好的铺垫(图5)。
  GPU高效计算
  离你我并不遥远
  通过上述介绍,我们知道了GPU强大的计算能力。其实GPU技术的发展已经和我们的生活息息相关。比如我们每天接触的天气预报、平时使用的各种新药、电视台舞台上光怪陆离的背景,这些都离不开背后超级计算机里GPU的计算。
  此外,通过GPU自行组建具备强大计算能力的个人计算机为我们的学习生活服务,这也不是一件遥不可及的事。比如文章前面提到的比特币挖矿机,很多DIY动手能力的用户就是通过多块显卡自行组建的,随着技术的不断发展,相信不久的将来,大家也可以自行搭建一台具有多个GPU核心的个人超级计算机,为日常的视频处理、PS图片处理、CAD图形渲染带来更多的便利(图6)。
其他文献
作为一项足以改变世界的新兴技术,3D打印凭借独有优势开始在文化创意、生物医疗以及工业制造等领域扮演重要角色。它与传统产业如何融合?是否能颠覆传统制造业?日前在山东青岛举行的“2014世界3D打印技术产业大会暨博览会”上,一场别具一格的3D打印面具秀给出了上述问题最完美的答案。  传统产业走向数字化时代  无论是优雅性感的内衣展示、庄重典雅的套装演绎,亦或是光鲜靓丽的头饰,都是由一台台大型洗衣机大小