加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

英伟达测试Tesla K20 GPU协处理器

发布时间:2016-11-23 15:43:29 所属栏目:PHP教程 来源:站长网
导读:早在今年5月英伟达透露其高端GK110图形芯片的一部分新功能时,这家公司声称,这款GPU即图形处理器的两项新功能:Hyper-Q和动态并行处理(Dynamic Parallelism)有望帮助GPU更高效地运行,而CPU即处理器不会一直干预。如今英伟达在逐步透露用于服务器的特斯拉

早在今年5月英伟达透露其高端GK110图形芯片的一部分新功能时,这家公司声称,这款GPU即图形处理器的两项新功能:Hyper-Q和动态并行处理(Dynamic Parallelism)有望帮助GPU更高效地运行,而CPU即处理器不会一直干预。如今英伟达在逐步透露用于服务器的特斯拉(Tesla)K20 GPU协处理器的一些基准测试结果,GK110预计会在今年晚些时候交付。

GK110 GPU芯片有时称为Kepler2,绝对是功能超强的怪兽:芯片代工厂台积电公司(TSMC)采用了非常热门的28纳米工艺,在一块晶片上蚀刻了超过71亿个晶体管。它采用了15个极致流式多处理器(SMX)处理单元,每个单元又有192个单精度CUDA(计算统一设备架构)核心,为每三个一组的CUDA核心添加了64个双精度浮点单元。这为你在GK110芯片上的最多2880个CUDA核心上提供了960个双精度浮点单元。

英伟达对绝对性能一直没有给出明确的态度,但是我们预计,GK110在处理器核心上,以1GHz的时钟频率,有望提供每秒近2万亿次浮点运算的原始双精度浮点性能,而在单精度下可能达到每秒3.5万亿次浮点运算。这性能大概是特斯拉M20系列GPU协处理器所用的现有Fermi GF110 GPU的三倍,也就是说相当于每瓦散热性能高出三倍。

仅仅拥有更多的处理器核心提升不了性能。你还得更高效地利用这些核心;这时候,Hyper-Q和动态并行处理这两项功能正好可以派得上用场。

值得关注的是,这两项功能并未出现在GK104 GPU芯片上,这款芯片用在了英伟达已经交付给需要单精度浮点运算处理的客户的特斯拉K10协处理器上。特斯拉K10 GPU协处理器把两块GK104芯片放到一块PCI-Express卡上,在225瓦散热范围内提供了每秒4.58万亿次浮点的单精度运算能力——这个性能是Fermi M2090协处理器的整整3.5倍。

许多超级计算机应用程序运行消息传递接口(MPI)协议,将工作调度分派到并行机器上,而Hyper-Q让GPU得以在处理MPI工作分配时,以一种更合作的方式与CPU协同运行。如果使用Fermi卡,GPU每次只有一个MPI任务由CPU调度分配,然后卸载给GPU。这显然是个瓶颈。

英伟达测试Tesla K20 GPU协处理器

英伟达为Kepler GPU增添的Hyper-Q功能

借助Hyper-Q,英伟达为GPU本身添加了一个队列,现在处理器可以同时把最多32个不同的MPI任务调度分派给GPU。没必要改动一行MPI代码,就可以充分利用Hyper-Q;CPU与GPU进行联系时,这项功能完全是自动发挥作用。

为了表明Hyper-Q的效果有多好(以及那些数千个CUDA核心不会无所事事),英伟达的高级开发工程师Peter Messmer拿来了名为CP2K的一些分子模拟代码。他在博客中表示,这种代码“对GPU来说向来一向很难处理的代码”,测试了在Hyper-Q功能先关闭,后开启的特斯拉K20协处理器上运行起来有多好。

正如Messmer解释的那样,当MPI进程被CPU限制于少量的工作时,MPI应用程序“出现了打折扣的性能提升”。CPU频繁接到任务,而GPU在许多时候处于闲置状态。而混合系统中的GPU提速幅度也不是很明显,你从这个基准测试中可以看出。这项测试把特斯拉K20协处理器放到配备16核心皓龙6200处理器的未来版克雷XK7超级计算机节点里面。

英伟达测试Tesla K20 GPU协处理器

Hyper-Q为运行CP2K分子模拟的节点将性能提升了2.5倍。

就这个模拟864个水分子的特定数据集而言,增添CPU和GPU节点组合其实提升性能的幅度不是很大。如果是Hyper-Q功能没有开启的16个节点,你能获得12倍的性能(由于某种原因,英伟达的Y轴代表较之两个CPU+GPU节点的相对提速)。但在拥有16个CPU+GPU节点、Hyper-Q功能开启的同一系统上,性能高达2.5倍。你要知道,英伟达并没有承诺:启用Hyper-Q功能后,所有代码都会类似的提速效果。

我们询问英伟达特斯拉事业部的高级主管Sumit Gupta,为什么CP2K测试不对Fermi GPU和Kepler GPU进行横向比较。他开玩笑说,英伟达总得为今年11月在盐湖城召开的SC12超级计算大会保留压箱之作。

借助GK110 GPU的另一项功能:动态并行处理,GPU就能够根据需要在GPU里面调度分派工作,受制于由CPU分派给它的运算任务。如果是Fermi GPU,系统中的CPU把工作分派给一个或多个CUDA核心,工作的处理结果会被送回到CPU。如果进一步的运算必不可少,CPU就把这部分数据和算法分派到GPU,然后GPU把处理结果发回给CPU,依次往返,直至运算计算完毕。

英伟达测试Tesla K20 GPU协处理器

动态并行处理:让GPU调度处理自己的工作

如果使用现有的Fermi GPU,会有大量的往返操作。动态并行处理功能让GPU可以处理自己的工作。但是更重要的是,它还可以让模拟的精细度实现动态变化:处理值得关注的任务时,获得更精细的粒度,而在什么都没进行的模拟方面,基本上什么都不做。

通过调整模拟的精细度和数据的精细度,你就能获得更好的结果,(在更短的时间内)处理更少的工作,不然在所有区域和时间片处理细粒度的模拟时效果差强人意。

英伟达测试Tesla K20 GPU协处理器

GK110 GPU来自动态并行处理的性能提升

动态并行处理方面最重要的一点是,GPU会针对运算的粗粒度自动作出决策;根据需要,对数据作出响应、启动新的线程。

为了展示动态并行处理的早期测试结果,英伟达没有进行流体力学模拟或者诸如此类的模拟,而是在另一篇博文中,英伟达工程师Steven Jones对动态并行处理功能先开启、后关闭的K20 GPU协处理器进行了Quicksort基准测试。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读