MCPLive > 杂志文章 > 链接未来的总线 NVLINK深度分析

链接未来的总线 NVLINK深度分析

2014-07-02何斌颖《微型计算机》2014年6月上

NVIDIA发展中的隐忧

上文说了这么多NVLINK的优势,那么对NVIDIA来说,一个全新的总线有什么意义呢?为什么说NVLINK是NVIDIA未来发展的重要一环?为了深入了解这个问题,不妨来看看NVIDIA目前的产品态势和具体的市场情况分析。

目前NVIDIA的产品分为民用GPU、移动解决方案和高性能计算三个方面。这三个方面的主力产品分别是GeForce系列GPU、Tegra系列SOC和Tesla高性能计算卡。其余的一些产品诸如Quadro等产品,亦可以分类入民用GPU应用方面。在这三个方面的产品中,存在以下一些问题:

GPU隐忧已经显现

GPU方面NVIDIA在市场上一直保持着对AMD的领先优势。但是这并不意味着NVIDIA就没有任何隐患。AMD和英特尔目前都在市场上大力推广GPU和CPU的融合,尤其是编程模型的融合,这一点在AMD的APU上表现得极为激进。对这类融合型产品来说,它能带来的架构优势就是统一内存寻址技术。再深入一些,所谓的统一内存寻址技术,就是为了简化编程模型,避免目前CPU和GPU之间的通讯瓶颈而提出的一种“取巧”的技术。AMD已经基于Open CL组建HAS联盟积极推广有关统一内存寻址的技术内容。英特尔方面目前尚未看到太多的进展,但是考虑到英特尔基本上每代都在大幅度进步的GPU性能以及自家高性能计算卡PHI的虎视眈眈,NVIDIA在未来计算中的处境着实好不到哪里去。不仅如此,英特尔也在不停的加强自己的GPU性能和功能,Open CL无疑是未来PC发展的重要方向,谁都不想落下。NVIDIA的GPU已经足够强大,异构计算的环境也基本上借助于CUDA搭建完成,但是NVIDIA没有自己的CPU。

AMD在异构计算上的投入目前还没有看到太大的产出,英特尔虽然说得不多,但是做得不少。NVIDIA由于没有CPU,因此在异构计算上就像跛了一条腿,五年后的发展很难说。异构计算的核心问题是什么?就是CPU和GPU之间的通讯。早期的AGP、现在的PCI-E,都在不停地加强着GPU和CPU这两大系统内部计算性能核心的通讯速度,但是这还不够,远远不够。尤其是目前CUDA 6.0虽然在软件层面上支持了统一内存功能,但是受制于PCI-E总线的速度,因此NVLINK的诞生相当有价值。

移动SOC发展不顺

在移动SOC上,NVIDIA的Tegra系列发展其实并不太顺利。手机平台面对基带技术缺失和高通的“全系列制霸”,NVIDIA几乎已经玩不出太多花样。因此,NVIDIA积极拓展了平板、移动游戏设备甚至车载设备等应用场合。但是这些市场竞争也非常激烈并且利润和发展空间已经不那么大了。看来,NVIDIA的眼光显然不仅仅在移动平台上,否则N VIDIA只要用ARM的公版CPU方案就好了,为什么要像高通、苹果那样自己设计CPU架构呢?

不知道是否还有玩家记得,早在Tegra 3时代,NVIDIA就推出过一款小的开发平台——Kayla,这个在GTC 2013上发布的小玩意,用于早期在移动平台上进行有关CUDA的开发。从实际产品可以看出,这个小东西和目前的PC差别实际上并不大,一颗被屏蔽了GPU部分SOC芯片,PCI-E总线连接到支持CUDA的独立GPU。唯一的问题就是操作系统只能支持Android而
已,当然支持诸如Linux等操作系统也不是什么难事,Windows RT也顺理成章。

还是回到这个问题,NVIDIA为什么要设计自己的CPU架构?如果打算做移动平台,只需要买公版架构加工即可,因为自己设计CPU相当困难并且投入的资金也几乎是无底黑洞,至少在短期内是见不到效益的。从NVIDIA一直以来的产品以及目前推出的丹佛架构的CPU来看,NVIDIA的目标很明确,那就是顶级CPU。

移动设备的处理器英特尔也没有忽视,从Broadwell开始,英特尔就已经将设计重心从之前的以桌面为主彻底转移至以移动为主,甚至处理器都会首先推出移动产品随后再推出桌面产品。这不仅仅是英特尔为了顺应潮流,更是移动计算的发展使得NVIDIA、英特尔的相关产品都必须开始重视移动和性能功耗比。在这种情况下,NVIDIA从几年前就开始设计高性能CPU并以移动计算为目标,不得不说是颇有远见的。

当然,目前NVIDIA还没有公布类似的桌面处理器计划,但是如果随着NVIDIA一代代迭代开发CPU,性能越来越强,规模越来越大,是否NVIDIA也有机会推出自己的一套CPU、GPU、总线标准呢?这个时候,NVLINK是否连接的就是NVIDIA的GPU和NVIDIA的CPU呢?

AMD提出的HSA以及相关异构计算,虽然短期内看不到成效,但长期威胁依旧存在。
AMD提出的HSA以及相关异构计算,虽然短期内看不到成效,但长期威胁依旧存在。

NVIDIA的丹佛计划至少已经开始了五年,目标也是针对高性能移动处理器。NVIDIA在CPU之路上走得越远,就越需要一个统一的总线。
NVIDIA的丹佛计划至少已经开始了五年,目标也是针对高性能移动处理器。NVIDIA在CPU之路上走得越远,就越需要一个统一的总线。

HPC市场竞争暗流涌动

如果说移动市场NVLINK的引入还是比较遥远的事情,那么在HPC市场,由于目前激烈的竞争,NVIDIA的市场地位也受到严重威胁。

NVIDIA的CEO黄仁勋曾经表示“NVIDIA是一个软件公司”或者类似的含义。PC以及其它计算设备的发展,从来都以满足用户的需求为核心要素,软件和硬件是满足用户需求的根本方法。早期硬件性能不佳,因此硬件大发展时代人们更看重单纯硬件规格的提升。但今天更多的是软件环境的搭建,NVIDIA早期在软件方面的大量投资,现在终于到了开花结果的时候。

这就是CUDA。NVIDIA在CUDA上的发展开始于2006年,DirectX 10时代G80的统一渲染架构,经过长达8年的培育和发展,CUDA目前已经成为一个非常成熟的并行计算开发的工具,甚至是目前重要的并行计算开发工具。在这一点上,英特尔虽然在硬件上拥有不逊色于NVIDIA的XeonPhi,不过受制于软件环境,每一代XeonPhi的发布都只是雷声大、雨点小。当然,英特尔也在程序编译和开发方面做出了很多的工作,但从来都没有天生的并行化、也没有天生适合硬件的软件,因此目前活跃在HPC平台上的依旧只有NVIDIA的Tesla。

不过英特尔可不会善罢干休。这个市值超过1300亿美元、几乎十多倍于NVIDIA的、拥有目前世界上先进的CPU设计技术和制造工艺的巨无霸厂商,肯定不会放过HPC市场这样的高利润市场。在之前的发展历史中,英特尔在HPC市场几乎所向披靡,成功击败了HP、SUN、IBM的产品,使得Xeon系列处理器占据了高性能计算的绝大部分市场份额。唯独在进入HPC的异构计算时代后,英特尔受制于没有大规模并行计算芯片,被NVIDIA的Tesla抢尽了风头。XeonPhi的出现解决了一部分问题,目前的不成功也只能看作是英特尔发展中的一个小小的挫折,同时拥有诸如QPI总线、PCI-E总线、高性能CPU、高性能并行计算架构、全球先进制程的英特尔,仍然会对NVIDIA在并行计算和HPC上的发展造成直接而巨大的威胁。

和NVIDIA有同样困扰的,还有IBM。NVIDIA是受制于没有CPU和整套平台方案所以显得比较被动,IBM则恰好相反。IBM有自己的CPU,Power 8发布时所展示出来的性能几乎令人难以置信,也有自己的平台。不过IBM缺少相应的并行计算芯片,因此仅仅依靠自己的CPU,很难在目前的异构计算中发挥出优秀的性能、规模和性能功耗比优势。从这一点来看,IBM和NVIDIA互补性就非常强了,这也是IBM为什么要和NVIDIA组建OpenPower超级计算联盟的原因了。

不过问题又回来了。IBM的CPU和NVIDIA的GPU用什么总线连接呢?大量的GPU之间的并行计算应该如何处理数据流动呢?NVLINK,该你登场了。

CUDA 6.0的出现,是NVIDIA在并行计算上大获成功的表现,也是NVIDIA软件环境完成的标志之一。
CUDA 6.0的出现,是NVIDIA在并行计算上大获成功的表现,也是NVIDIA软件环境完成的标志之一。

NVLINK是NVIDIA未来发展的脉络?

上文说了这么多,NVIDIA无论在民用市场、移动市场以及HPC等高性能计算市场,都有不多不少的问题。这些问题解决起来需要的不仅仅是时间和金钱,同样需要颇为巨大的决心和坚定的执行力。恰好,这所有的问题都会涉及到一个根本性的设备:总线。

“要想富,先修路”, NVIDIA肯定不是从今天才开始考虑到设计一款高性能的、属于自己的总线,这样的“陈仓道”想必在多年前就已经开始研发,只是在即将形成标准推向市场的时候再找了一个合适的时间公布。可能很多人都忽视了,在GTC 2014上,那个似乎匆匆而过、只有大约五六页幻灯片介绍的NVLINK,竟然会成为NVIDIA未来发展的重要核心技术。

那么,具体到每一个类型的产品层面,NVLIN K会带来哪些改变呢?由于目前所掌握的信息还是太少,本文只能简单的做出一些推测。

首先,还是来看民用GPU市场。这个市场的发展目前已经高度成熟了。英特尔掌控全局,把握着电脑中几乎所有总线的标准,作为PCI-SGI重要成员的NVIDIA,虽然在PCI-E的发展上有一定的投票权,但是肯定也很难撼动英特尔在PC市场上的绝对霸主地位。可以预见的是,在近期甚至下一代的新品种,NVIDIA的民用显卡肯定还是以PCI-E总线作为和CPU沟通的基础总线,NVLINK即使在Pascal架构上开始应用,在民用市场所起的作
用也将非常有限。

当然,NVLINK这样强大的带宽如果被浪费那才真正令人遗憾。NVLINK发布时重要的作用之一就是GPU之间的沟通。目前NVIDIA的GPU并行计算技术SLI依靠的是一种特殊设计的桥接电路来连接两块GPU。NVIDIA没有公布这个桥接器的带宽和工作方法,不过从SLI目前使用的交替帧渲染技术的原理来看,SLI的桥接器带宽应该不会太高,因为PCI-E总线的存在,桥接器的带宽压力不算太大,应该只是完成部分GPU信息同步的传输,多加上一些显存数据的同步即可。也正是由于受制于带宽问题,两颗GPU之间才会采用交替帧渲染技术,可能产生间歇卡顿、效率较低等问题。

当NVLINK应用在GPU上后,这些问题很可能都不复存在。NVLINK的惊人带宽和不受制于PCI-E控制器的特性,使得数据可以迅速在两颗GPU之间传输(别忘了NVLINK的带宽甚至逼近目前的顶级GPU显存带宽),这样一来GPU并行计算的效率会大幅度提升,甚至无限逼近理论效率。NVLINK的存在,使得双卡和多卡渲染的效率得到本质的提升,很可能彻底解决未来4K高清甚至8K超清晰显示器的图形计算问题。

IBM的Power 8堪称史上强CPU,可惜在异构计算大潮下,Power 8很难说服厂商采用纯粹的CPU搭建HPC,IBM和NVIDIA的境遇恰好相反,两家合作也是顺理成章的。
IBM的Power 8堪称史上强CPU,可惜在异构计算大潮下,Power 8很难说服厂商采用纯粹的CPU搭建HPC,IBM和NVIDIA的境遇恰好相反,两家合作也是顺理成章的。

那么,民用市场上的异构计算应该怎么办呢?还是那句话,受制于PCI-E总线和CPU厂商的控制,短期内很可能没有办法看到使用NVLINK产品出现,因此希望借助NVLINK的充裕带宽来解决异构计算中统一内存寻址的希望变得不太可能。实际上,统一内存寻址技术产生的原因就是CPU和GPU之间的带宽不足,NVLINK恰好解决了这个问题。虽然目前的情况不容乐观,但是总比没有希望要好,在自己不掌握标准和话语权当情况下,只能走一步看一步。

接下来要说的是移动SOC。对移动芯片来说,NVLINK的作用目前尚不明朗。由于NVLINK的功耗和晶体管耗费等情况都不明确,因此移动芯片上是否应该引入NVLINK依旧是个谜。但是考虑到前文所说的,目前情况显示NVIDIA是有兴趣在高性能CPU上开拓市场的,而且NVIDIA之前也做过类似主板芯片等产品的开发,因此一旦时机成熟,借助于目前的安卓、Windows RT等系统的发展,出现一套NVIDIA的PC也不是不可能。当然,它兼容x86的可能性并不太大。但是,用户关注度是应用本身,只要能做到一样优秀,没有人考虑底层代码是x86的还是ARM。

后也是NVLINK应用广泛的HPC市场。IBM已经宣布自家的CPU将对NVLINK提供完美支持。目前HPC市场的CPU+GPU异构计算产品使用的还是速度较慢的PCI-E总线,NVLINK的出现尤其是和IBM的高性能CPU捆绑后,其异构计算的性能将得到非常明显的提升,存在于异构计算中的存储瓶颈问题也会得到很大程度上的缓解。

关键问题并非性能,而是NVLINK的出现使得NVIDIA和IBM紧紧捆绑在一起。对NVIDIA来说,这项技术使得NVIDIA对英特尔的CPU依赖度大幅度降低,并增加了Tesla和英特尔的Phi竞争中的筹码。对IBM来说,有这样一个能提供目前强悍并行计算芯片的盟友,IBM的Power系列的竞争力将显著增强。I BM在和英特尔的竞争中逐渐败退,这次和NVIDIA的联盟应该能挽回不少颓势,甚至反戈一击也有可能。

NVLINK在IBM和NVIDIA的系统中将以强悍的完全态出现它超高的带宽极大地减少了CPU和
GPU、GPU和GPU、CPU和CPU之间通讯的束缚,使得数据能够在不同的设备中尽可能快地传输,这将对未来的云计算、大数据的计算有着极为明显的加强作用。试想一下,当以TB级别衡量的数据在其他系统中只能以数十GB/s的速度传输时,IBM和NVIDIA的设备上已经十倍于竞争对手,这将带来多大的效率提升!

当然,所有的消息并非都是乐观的。NVIDIA和IBM的NVLINK至少还得等待一年时间才有产品面世。在这一年时间中,英特尔很可能已经设计了全新的XeonPhi计算卡,使用更为先进的总线解决内部带宽问题。NVIDIA可以设计出高速总线,英特尔自然也可以,并且在产品推广和平台铺设上会做得更好、更为优秀。NVLINK的出现,使得人们看到NVIDIA似乎野心比表面上所展示出来的更大,它在谋划的内容,甚至已经不是未来五年能看到的。未来是否会留下NVLINK的印记,我们拭目以待。

分享到:

用户评论

用户名:

密码: