NVLINK深度解析
- 来源:微型计算机 smarty:if $article.tag?>
- 关键字:NVLINK,GTC smarty:/if?>
- 发布时间:2014-06-17 12:50
在之前的GTC 2014上,NVIDIA在惯常的产品发展路线图展示上似乎并没有给出太多具有震撼性的内容。和之前人们预计NVIDIA将带来全新的Maxwell系列产品大相径庭的是,NVIDIA在GTC 2014上仅对新的Pascal架构做出了简单介绍,在诸如移动计算、云计算方面倒是有很多的内容,可惜距离我们普通消费者还是太远。不过技术的进步和市场的爆发并不是一蹴而就的,NVIDIA在GTC 2014上带来了一个新东西-NVLINK,这个很多用户都忽略、没有关注的全新技术,很有可能成为NVIDIA未来发展、扩大份额甚至争夺大数据、移动计算时代霸主地位的核心技术。
GTC 20-14上,NVIDIA带来了很多新技术和新产品的介绍,对普通消费者来说,这一届的GTC似乎没有太多的亮点,也没有什么革命性的产品发布。这次GTC上,黄仁勋展示了旗舰级的GeForceTitan Z,NVIDIA-F-代GPU-Pascal也亮相了。但是Maxwell的其他产品仍不见踪影,云计算之类的产品更是与己无关,还是有很多用户认为GTC 2014是乏味而无聊的一届。那么情况真的如此吗?答案显然是否定的。NVIDIA并非是一个没育目的性、缺少执行力的公司,多做少说,往往酝酿着背后的巨变。在GTC 2014上,和Pascal-同亮相的NVLINK,似乎就是NVIDIA推开下一个五年甚至十年发展的大门的钥匙,唯有通过它,人们才能管中窥豹般猜测NVIDIA的下一步棋。那么,NVIDIA应该如何走?NVLINK是什么?它的诞生有什么意义呢?
IV LIIYIK是IYIVIDIA在GTC2014上展示的一种全新总线。这种总线的优势在于速度快、带宽高。根据NVIDIA公布的数据,lIVLINK的速度可以达到目前PCI-E总线速度的5--12倍。
不过NVIDIA没有公布这样的带宽对比是在什么情况下达成的。惯例上,应该用NVLINK的基础单位“block”对比PCI-E总线的通道——每一个NVLINK的block(块)拥有八个通道,每个通道的速度为20G b/s,八个通道合起来就是NVLINK-个block的速度:20GB/s。相比之下,目前PCI-E 3.0的单个通道速度最快也不过只有2GB/s,在NVLINK和PCI-E的比拼中,NVLINK在单位速度上轻松取胜。
和PCI-E的通道可以合并获取更高速度相同的是,NVLINK也可以通过多个块的组合,在设备间达到令人惊讶的速度。以目前最常见的PCI-E 3.0×1 6作为对比, PCI-E 3.0 x-16总线的双向带宽可以达到32G B/s,堪称PC系统中第二快的设备间总线(排名第一的是内存总线)。但是在16个块的NVLIKIK高达320G B/s的巨大带宽面前,这样的速度差了整整十倍。320G B/s足一个什么概念呢?目前Core i7 4960X在DDR31 866四通道内存的辅助下,其内存带宽为大约为60G B/s;顶级的显卡GeForce GTX Titan Black的内存位宽为384b㈦带宽大约为340G B/s。换句话来说,1 6个区块的NVLINK能够带来相当于目前顶级显卡显存带宽的超高传输速度,这是非常令人震惊的。从另一个角度来看,显卡核心和显存之间的数据交换通道是非常快速的,达到了340G B/s,但是显卡和CPU之间的数据交换受到PCI-E总线的影响,成为了瓶颈。NVLINK的出现,则是NVIDIA想打破这个瓶颈的宣言。从NVIDIA的介绍来看,NVLINK不但可以实现GPU和CPU之间的互联,还可以实现GPU和GPU之间的互联,未来CPU之间也很有可能使用NVLINK。从这一点来看,NVLINK的野心着实不小。
除了极高的速度外,NVIDIA在GTC大会上并没有披露太多有关r\IVLIN K技术实现方面的内容。仅仅从官方幻灯片上的消息来看,NVLINK能够获得如此高的传输速度主要原因可能是频率发生器方面的改进。在功能方面,NVLINK目前支持PCI-E的编程模式,支持统一内存槊构,在第二代NVLINK中,还将提供对缓存一致性技术的支持。此外,在供电模式方面,NVLINK能够提供更高的供电效率,接口本身就基本上可以满足显卡供电需求。
当然,由于基础架构的改进,NVLINK的物理结构和软件结构上和PCI-E会有比较大的差别。目前的早期版本NVLINK将使用类似中间接口的方式,部分数据通讯和指令还需要PCI-E来进行操作。从技术底层来讲,NVLII\JK和PCI-E应该有很多的相同之处,比如都是点对点的串行数据,但两者的信号体系又完全不同,因此造就了差异如此巨大的传输性能。
在产品方面,目前的GPU自然是不能支持NVLINK的,NVIDIA宣称,下一代Pascal架构的GPU可以开始提供对NVLINK的支持。不过初代的NVLINK肯定不会达到太高的速度,应该在同期PCI-E接口的5-8倍左右比较正常。即使如此,NVLINK也会有将近150G B/s -200G B/s的带宽,依1日非常惊人。除了NVIDIA自家的产品外,NVIDIA和IBM组成的OpenPower联盟,也将使用NVLINK总线作为主要的数据传输通道。
上文说了这么多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已经基于OpenCL组建HAS联盟积极推广有关统一内存寻址的披术内容。英特尔方面目前尚未看到太多的进展,但是考虑到英特尔基本上每代都在大幅度进步的GPU性能以及自家高性能计算卡PHI的虎视眈眈,NVIDIA在未来计算中的处境着实好不到哪里去。不仅如此,英特尔也在不停的加强自己的G PU性能和功能,OpenCL无疑是未来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的眼光显然不仅仅在移动平台上,否则NVIDIA只要用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呢?
HPC市场竞争暗流涌动
如果说移动市场NVLINK的引入还是比较遥远的事情,那么在HPC市场,由于目前激烈的竞争,NVIDIA的市场地位也受到严重威胁。
NVIDIA的CEO黄仁勋曾经表示“NVIDIA是一个软件公司”或者类似的含义。PC以及其它计算设备的发展,从来都以满足用户的需求为核心要素,软件和硬件是满足用户需求的根本方法。早期硬件性能不佳,因此硬件大发展时代人们更看重单纯硬件规格的提升。但今天更多的是软件环境的搭建,NVIDIA早期在软件方面的大量投资,现在终于到了开花结果的时候。
这就是CUDA。NVIDIA在CUDA上的发展开始于2006年,DirectX -10时代G80的统一渲染架构,经过长达8年的培育和发展,CUDA目前已经成为一个非常成熟的并行计算开发的工具,甚至是目前最重要的并行计算开发工具。茌这一点上,英特尔虽然在硬件上拥有不逊色于lIVIDIA的XeonPhi,不过受制于软件环境,每一代XeonPhi的发布都只是雷声大、雨点小。当然,英特尔也在程序编译和开发方面做出了很多的工作,但从来都没有天生的并行化、也没有天生适合硬件的软件,因此目前活跃在HPC平台上的依1日只有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发布时所展示出来的性能几乎令人难以置信,也有自己的平台。不过l BM缺少相应的并行计算芯片,因此仅仅依靠自己的CPU,很难在目前的异构计算中发挥出优秀的性能、规模和性能功耗比优势。从这一点来看,IBM和NVIDIA互补性就非常强了,这也是IBM为什么要和NVIDIA组建OpenPower超级计算联盟的原因了。
不过问题又回来了。IBM的CPU和NVIDIA的GPU用什么总线连接呢?大量的GPU之间的并行计算应该如何处理数据流动呢?NVLINK,该你登场了。
上文说了这么多,NVIDIA无论在民用市场、移动市场以及HPC等高性能计算市场,都有不多不少的问题。这些问题解决起来需要的不仅仅是时间和金钱,同样需要颇为巨大的决心和坚定的执行力。恰好,这所有的问题都会涉及到一个根本性的设备:总线。
“要想富,先修路”,NVIDIA肯定不是从今天才开始考虑到设计一款高性能的、属于自己的总线,这样的“陈仓道”想必在多年前就已经开始研发,只是在即将形成栎准推向市场的时候再找了一个合适的时间公布。可能很多人都忽视了,在GTC 2014上,那个似乎匆匆而过、只有大约五六页幻灯片介绍的NVLINK,竟然会成为NVIDIA未来发展的重要核心技术。
那么,具体到每一个类型的产品层面,NVLINK会带来哪些改变呢?由于目前所掌握的信息还是太少,本文只能简单的做出一些推测。 首先,还是来看民用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上后,这些问题很可能都不复存在。NVLIN K的惊人带宽和不受制于PCI-E控制器的特性,使得数据可以迅速在两颗GPU之间传输(别忘了NVLINK的带宽甚至逼近目前的顶级GPU显存带宽),这样一来GPU并行计算的效率会大幅度提升,甚至无限逼近理论效率。NVLINK的存在,使得双卡和多卡渲染的效率得到本质的提升,很可能彻底解决未来4K高清甚至8K超清晰显示器的图形计算问题。
民用市场上的异构计算应该怎么办呢?还是那句话,受制于PCI-E总线和CPU厂商的控制,短期内很可能没有办法看到使用NVLINK产品出现,因此希望借助NVLINK的充裕带宽来解决异构计算中统一内存寻址的希望变得不太可能。实际上,统一内存寻址技术产生的原因就是CPU和GPU之间的带宽不足,NVLIN K恰好解决了这个问题。虽然目前的情况不容乐观,但是总比没有希望要好,在自己不掌握标准和话语权当情况下,只能走一步看一步。
接下来要说的是移动SOC。对移动芯片来说,NVLINK的作用目前尚不明朗。由于NVLINK的功耗和晶体管耗费等情况都不明确,因此移动芯片上是否应该引入NVLINK依1日是个谜。但是考虑到前文所说的,目前情况显示NVIDIA是有兴趣在高性能CPU上开拓市场的,而且NVIDIA之前也做过类似主板芯片等产品的开发,因此一旦时机成熟,借助于目前的安卓、VVindows RT等系统的发展,出现一套NVIDIA的PC也不是不可能。当然,它兼容x86的可能性并不太大。但是,用户关注度是应用本身,只要能做到一样优秀,没有人考虑底层代码是x86的还是ARM。
最后也是NVLINK应用最广泛的HPC币场。lBM已经宣布自家的CPU将对NVLINK提供完美支持。目前HPC市场的CPU+GPU异构计算产品使用的还是速度较慢的PCI-E总线,NVLINK的出现尤其是和IBM的高性能CPU捆绑后,其异构计算的性能将得到非常明显的提升,存在于异构计算中的存储瓶颈问题也会得到很大程度上的缓解。
关键问题并非性能,而是NVLINK的出现使得NVIDIA和IBM紧紧捆绑在一起。对NVIDIA来说,这项技术使得NVIDIA对英特尔的CPU依赖度大幅度降低,并增加了Tesla和英特尔的Phi竞争中的筹码。对IBM来说,有这样一个能提供目前最强悍并行计算芯片的盟友,IBM的Power系列的竞争力将显著增强。I B M在和英特尔的竞争中逐渐败退,这次和NVIDIA的联盟应该能挽回不少颓势,甚至反戈一击也有可能。
NVLIlIK在IBM和NVIDIA的系统中将以最强悍的完全态出现,它超高的带宽极大地减少了CPU和GPU、GPU和GPU、CPU和CPU之间通讯的束缚,使得数据能够在不同的设备中尽可能快地传输,这将对未来的云计算、大数据的计算有着极为明显的加强作用。试想一下,当以TB级别衡量的数据在其他系统中只钱以数十G B/s的速度传输时,IBM和NVIDIA的设备上已经十倍于竞争对手,这将带来多大的效率提升!
当然,所有的消息并非都是乐观的。NVIDIA和IBM的NVLINK至少还得等待一年时间才有产品面世。在这一年时间中,英特尔很可能已经设计了全新的Xeon Phi计算卡,使用更为先进的总线解决内部带宽问题。NVIDIA可以设计出高速总线,英特尔自然也可以,并且在产品推广和平台铺设上会做得更好、更为优秀。NVLINK的出现,使得人们看到NVIDIA似乎野心比表面上所展示出来的更大,它在谋划的内容,甚至已经不是未来五年能看到的。未来是否会留下NVLINK的印记,我们拭目以待。