NVLink技术及影响解析
1繁华的背面
最新GPU架构Pascal,能自己开上舞台的Audi A7,超过700名与会专家学者及技术人员,近百场学术会议和科研分享,连续两晚的happy hour、酒会和GTC Party……在一片喧嚣和欢乐当中,2014年度的GTC大会降下了帷幕。对于GPU及并行运算相关领域的技术人员和科研工作者来说,GTC大会带给他们的也许是获得技术信息的满足感和充实的幸福,但对于普通的玩家和GPU爱好者而言,今年的GTC大会似乎有那么点……“不务正业”……
对于显卡爱好者而言,每年的GTC大会最期待的便是老黄那“饱含重料”的开幕式keynote,NVIDIA即将发布的各种新品,都将在keynote当中悉数登场。但除了多少有些遥远的Pascal架构之外,核弹元勋今年的keynote看上去都和桌面GPU关系不大。老黄花大力气铺陈的各种技术规范和标准,好像都是些超算啊工业啊科学研究啊之类的领域才会用到的东西,很难快速的引起GPU爱好者的共鸣。用我一位朋友的原话来形容,这届GTC“毫无新意,讲的都是些不着边际的事”。
难道是NVIDIA变了么?会不会是毫无压力的竞争态势让NVIDIA变得松懈和慵懒,进而失去了在GPU领域创新和开拓的动力呢?
看似不着边际的老黄Keynote——“CUDA EVERYWHERE”
我们曾经说过,相对于“NVIDIA正在做什么”,我们更应该关注“NVIDIA为什么要这样做”以及“NVIDIA即将做什么”。无论GTC的喧嚣还是“毫无新意”,甚至是老黄keynote的“不着边际”,背后所隐藏的真相才是需要被挖掘的。那么在今天的文字当中,就让我们一起来重新审视一下这届GTC大会的技术细节,看一看隐藏在“不着边际”背后的真相吧。
2西线无战事?
● 西线无战事?
平心而论,“毫无新意”这种描述似乎也不是完全有错,因为除了朦胧的Pascal架构之外,GTC2014技术大会乍看之下好像跟GPU没有任何直接的关联。莫名的不实感以及当前明显不对称的图形市场竞争环境,让大部分爱好者看待本届GTC大会的眼光中都带上了浓浓的“西线无战事”的意味——好一幅歌舞升平的景象啊,不仅没有新品,连新架构都是那么的云里雾里,难道是因为竞争对手的不给力,让NVIDIA放松了在图形领域和GPU架构层面的努力了么?
不如这样,让我们先回顾一下本届GTC大会上NVIDIA所公布的各项新技术和新的解决方案吧。
老黄现场展示的Pascal架构原型
GTC2014大会最重要组成部分便是开幕式的keynote,在这场主题为CUDA EVERYWHERE的Keynote分享当中,黄仁勋先生为与会者带来了包括NVLink、3D memory、Pascal架构、IRAY VCA、JETSON TK1、Erista GPU、基于Tegra的驾驶员辅助系统,还有新一代单卡双芯卡皇Titan Z。黄仁勋先生在现场展示了大量实物,其中就包括了Pascal架构产品的原型。
如果按照技术关联度划分,技术又可以被划分成三大部分,即GPU相关的NVLink、3D memory、Pascal架构和Titan Z,与运算及云渲染架构相关的集群解决方案IRAY VCA,以及与移动智能平台及SoC领域相关的JETSON TK1、Erista GPU和基于Tegra的驾驶员辅助系统。近2个小时的Keynote被几乎等分成了上述三个部分,彼此的比例是相当的。
如此一来,今年的GTC大会是不是“毫无新意”就应该算是一目了然了——NVIDIA仍旧在传统的GPU领域铺陈了不少于1/3的篇幅,用以介绍最新技术以及最新的图形/运算架构细节,这一比例与往届并未有明显不同,而且也完全可以说明NVIDIA的业务划分模式,那就是以桌面GPU架构技术为核心,向外分别辐射至大型化的HPC/工业高性能并行运算/大规模集群渲染平台以及小型化的移动智能/车载SoC平台。老黄并没有倦怠,NVIDIA也没有因为竞争环境的改变以及压力的松懈而停止对GPU技术及架构进步的推动。
那究竟是什么,让关注GTC大会的爱好者有了“毫无新意”的不实感呢?
一方面,老黄本次的Keynote内容衔接的确实不太理想,放在GPU架构后面的关于超级计算机集群逻辑能力训练的内容技术倾向过强而且名头太大,这部分内容用浓厚的技术和哲学色彩成功的达到了喧宾夺主的歪楼作用,与会者大多沉浸在人工智能及逻辑学相关的激烈思考当中,进而有意无意的忽略了之前关于GPU架构及技术的内容。另一方面,这届GTC大会上公布的最重要的新技术——NVLink以及3D memory,尤其是NVLink并没有得到进一步的深度解析,所有与会者都需要一番思考,才会发现这项技术背后的深意,以及它对未来GPU,乃至整个NVIDIA发展所带来的影响。
那么,究竟什么是NVLink?
3NVLink到底link了谁
● NVLink到底link了谁
在解析NVLink技术之前,简明的总览介绍是必须的。简单来说,这是一个能够在GPU-GPU以及GPU-CPU之间实现高速大带宽直连通讯的快速互联机制。
NVLink基于点对点传输形式,编程模式与PCIE总线相同,作为基本传输单元出现的“block”(区块)包含八条通道,每条通道20Gbps,每个block合计带宽20GB/s,这一带宽数值已经大大超出了PCIE 3.0的水平。不仅如此,多个block还可以组合在一起来达到提供更高带宽或者连接更多设备的目的。
NVLink技术
NVLink采用了中间接口(mezzanine connector)设计,这种接口多见于扩展子卡领域,著名的GeForce 7950 GX2以及GeForce GTX 295的两张PCB也是如此组装在一起的。这种接口能够提供更强的供电能力,但缺点是接口形式与PCIE不兼容,必须针对需求单独设计。这种不兼容还带来了一个麻烦,初期NVLink的部分指令和通讯过程仍旧要依赖PCIE,所以设计者必须在两者之间设计必要的联系机制。
NVLink的受众相当广泛,不仅可以依据不同需求完成GPU-GPU节点内部的高速互联,同时还能在GPU-CPU甚至CPU-CPU之间形成高速互联。它既可以像PCIE,也可以像QPI。所有多GPU并行工作的场合,无论是价值数亿美元的Tesla超级计算机集群还是桌面的SLI都将会从中获得更高的并行通讯带宽。与CPU直连的特性让其成为了未来沟通Denver和GPU架构,充当NV异构计算架构内部高速总线的备选互联方案。另外,它还能够在其他基于NVIDIA GPU+第三方CPU的异构并行计算架构当中充当互联方案。从作用上来看,它确实有取代PCIE总线的意味。
NVLink的出现其实颇为令人玩味,因为NVIDIA本身是PCI-SIG的成员之一,PCIE总线虽然近年来确实受人诟病,但其32G的双向带宽在满足现有硬件及常规应用的需求时似乎并不困难。究竟是什么因素促使NVIDIA在此时放下手中的工作,尽心尽力的去开发一款高速互联解决方案呢?
来自NVIDIA自身的现实需求是NVLink出现的原因之一。早在2011年,NVIDIA便在CUDA4.0当中加入了GPUDirect2.0、Unified Virtual Addressing(CUDA UVA)以及Unified Memory Pool的概念,CUDA UVA允许多个GPU节点之间在一定程度上合并并共享彼此的显存空间,同时允许GPU直接访问并利用系统内存空间,这一系列操作都是通过PCIE总线来完成的。当某个GPU节点在应用中出现本地显存空间不足时(题外话:实际上单节点本地内存不足的现象在GPU大规模并行计算中相当常见,而且已经成了困扰并行化进程的一大瓶颈,亦即“存储墙”,无论NVIDIA的Tesla还是Intel的PHI都未能“免俗”,而包括3D memory技术在内的一系列堆叠式显存应用的出现,也有相当的应对该问题的意味。存储墙问题相对复杂,在此不多赘述。),它可以利用GPUDirect2.0特性,透过PCIE总线来使用和操作其他节点的显存以及系统主存。显而易见的,根据短板原则,即便此时系统主存还有其他节点显存的带宽能够达到几百乃至数千GB,该节点能够获得的有效带宽也依旧只能是PCIE总线带宽。越来越频繁的跨节点操作所催生的通信带宽需求,让NVIDIA有了开发NVLink来应对跨节点内存操作以及存储墙问题的需求。
翻越存储墙并不是催生NVLink的全部理由,强大的外部压力和竞争态势同样是NVLink诞生的重要诱因。这一强大的外部压力,来自Intel。
4蓝色的阴影
● 蓝色的阴影
尽管老黄嘴上一直不肯承认,但对于目前的NVIDIA而言,眼前最大的对手已不再是昔日里硅谷斗士领导下的红色劲旅,而是一直高高在上的“另一位蓝色巨人”——Intel。两者的战场,也已经从单纯的HPC整体解决方案领域蔓延到了高性能并行计算节点层面。
Intel一直没有停止在逻辑结构层面的研发
随着大数据以及智慧城市概念的日趋火热,超大规模并行计算能力正日益受到各方的重视,甚至连五角大楼都跑来用EXA狠狠的刷了一把存在感。这是一个总量无法估算的庞大领域,其中所能够产生的资源和利润空间诱惑是任何一家半导体芯片供应商都无法抗拒的。当前HPC领域的需求大多集中在大规模并行计算层面,而Intel在该领域的竞争力,显然是毋庸置疑的。它不仅拥有完整的独立CPU以及CPU+GPU异构架构解决方案,其最新推出的PHI计算卡更是表现出了强悍的理论性能和实际效率。除此之外,Intel对HPC领域的投入也十分巨大,大量基于大规模并行计算的研究项目,背后都有Intel的身影。
无独有偶,Intel也在积极改进自己的高速逻辑互联机制,在最新的ISSCC以及IEEE2014上,Intel详细展示了新一代ringbus技术。新的Ringbus改变了vring在多核心之间的布置和互联形式,通过路径优化达到了用最少的ring覆盖最多核心,并让数据在ring之间快速跳转的目的。这种新的Ringbus改善了多核心数据共享的延迟情况,提升了多核心并行运算时的整体任务效率,如果被应用在新一代PHI计算卡当中,将会使其运算效率得到进一步提升。
与NVIDIA相比,尽管Intel也同样会面对来自存储墙的压力,但更为优秀的MC设计能力以及无图形负担等众多优势让其能够更为轻松的扩展PHI的本地内存容量,事实上Intel也确实正在做着这样的事,PHI多达8GB的本地显存在容量上是明显超过Tesla方案的。再加上Intel“天生”对PCIE总线的深入了解以及其所带来的优化可能,对于Intel而言,来自PCIE总线带宽的压力并没有NVIDIA那么紧迫和明显。它只需要做好运算效率的提升以及编程环境的改善,便可以让下一代计算卡解决方案保持良好的竞争力。
如适当应用新型Ringbus,新一代PHI的效率将进一步提升
显而易见,这样的竞争环境对于希望在HPC领域有一番作为的NVIDIA是不利并且压力巨大的。它不仅缺乏作为HPC基础的通用处理器节点解决方案,同时还受制于PCIE总线的困扰,如果不寻求一个突破口,无论EXA还是其他大规模高性能并行计算,NVIDIA的竞争力都将会受到影响。
要继续增强自身的竞争力,要在HPC领域承受来自Intel的,尤其是PHI的冲击,要解决包括存储墙在内的一系列问题,NVLink便是在这样的需求背景下诞生并于本届GTC大会上来到大家面前的。问题是这一技术要如何来增强NVIDIA的竞争力呢?我们已经解析过了,NVIDIA需要依赖其他通用CPU节点,而NVLink是一款能够沟通GPU以及CPU节点的互联机制,所以它背后所link的CPU节点,正是可以帮助NVIDIA填补处理器这一重要环节缺失的靠山。这位靠山,就是原教旨的蓝色巨人,IBM。
5合纵还是连横?
● 合纵还是连横
Intel,NVIDIA和IBM,这三位在HPC领域的态势以及彼此的关系其实是相当微妙的。它们不仅彼此竞争,同时也彼此依赖。
NVIDIA的新盟友——IBM
Intel曾经是传统意义上的CPU节点方案供应者,在并行计算兴起以及传统CPU节点的规模拓展遇到瓶颈之后,Intel凭借PHI完成了华丽的转身,眼下的Intel拥有完整的CPU节点、GPU节点异构解决方案。但由于缺乏生态环境的支持以及完全放弃了MMX/XMM/YMM等常规指令集,尽管拥有相对简便的软件平移和开发环境,可是PHI计算卡依旧缺乏业界的接纳。PHI计算卡出现之后一年时间里瞬间飙升但又马上归于沉寂的被关注度和装机总量,就是这种现状的最好说明。在这种情况下,Intel更多地还是要与NVIDIA的Tesla进行配合,共同打造满足客户需求的HPC解决方案。
IBM的处境更加尴尬,它曾经是HPC领域无可撼动的王者,基于Power架构的超级计算机集群代表了HPC领域运算效率的最高水平,同时也仍旧是Top500前列的常客,但IBM面前的瓶颈是非常明显的。尽管实际效率要明显高于异构方案,但纯CPU方案的痼疾,诸如难以释放规模、性能功耗比较低以及成本更高等缺点正在困扰着IBM,基于单纯CPU解决方案的超级计算机集群正变得稀少,在当前的HPC业界,能够更轻松的拓展规模,同时拥有良好性能功耗比的CPU+GPU异构解决方案是更受欢迎的,而暂时无法独立提供异构解决方案的IBM处境无疑是困难的。2014年第一季度利润同比下滑21%,应该已经或多或少的反映出了IBM当前的境遇。
NVIDIA一直都是异构并行计算的忠实支持者,同时也已经凭借经营多年的CUDA生态体系建立了属于自己的GPU异构并行计算生态圈,这一生态圈的稳固度相当高,已经达到了足以暂时屏退Intel攻势的程度。但是NVIDIA的问题同样明显,那就是它只能提供GPU解决方案。无论是赖以完成调度管理工作的CPU节点,还是沟通异构架构的高速数据总线,NVIDIA都是不具备的。所以在当前的HPC业界,NVIDIA必须与其他CPU及高速总线供应商达成合作才能生存。
很明显,以三足鼎立之势而言,NVIDIA处在可以联合Intel与IBM当中的某一方的位置上,摆在NVIDIA面前的是一道合纵还是连横的选择题。而且就目前看来,这道选择题似乎并不难做——如果选择Intel,NVIDIA虽然可以在短期内避免同Intel“翻脸”并维持现有的相对稳定安逸的竞争环境,但无论PHI的威胁还是PCIE总线的限制显然都将会在IBM日渐式微之后被Intel当作反攻的利器。所以对于当前的NVIDIA来说,联合IBM共同对抗Intel,利用一切机会跳脱出能够被Intel制衡的环境,并且在保持必要独立性的前提下维持三足鼎立的相对均势,是当前环境下最理想的选择。而NVLink,就是这个选择的结果。
所以,我们看到了能够连接其他CPU节点的NVLink,同时看到的还有背后蓝色巨人的身影——IBM全程参与了NVLink的开发过程,并在GTC大会的同时以官方声明的方式宣布下一代Power架构将加入NVLink的支持,这也是NVIDIA加入OpenPower联盟以来最重要的一次实际行动。与蓝色巨人的联合,其实才是本届GTC大会最重要的猛料。
现在,您还会觉得NV已经西线无战事,整个GTC大会只说了一些“毫无新意”的东西么?
6再看无战事的西线
● 再看无战事的西线
NVLink技术无论对NVIDIA还是对IBM而言,都将产生相当深远的影响。它不仅改变了HPC领域原本三家各自为战的局面,同时也深远的影响了NVIDIA和IBM。
对于IBM而言,NVLink的出现为其打开了一扇快速且相对便捷的通往异构计算架构的大门。NVLink带来的NVIDIA GPU架构不仅让IBM无需投入大规模的资源进行新的GPU并行架构研发,而且还拥有了提供异构计算架构解决方案的能力。打通异构架构的联系不仅为IBM提供了一片更为广阔的市场和利润空间,Power架构的进入也为异构并行方案带来了更为高效的管理机制,这无论对于受困于CPU单线作战的IBM,还是受困于有效运算效率难以提升的异构并行运算界而言而言,无疑都是相当有利的前景。
有了NVLink,Power架构也有了异构计算的条件
对于NVIDIA来说,与IBM的合作为自己带来了更多可能性。它既可以以更深入的形式获得Intel之外的更为高效的通用处理器节点支持,又可以收获一条PCIE之外的全新的GPU高速互联机制,这在很大程度上减轻了NVIDIA对Intel的依赖性,同时增加了它的竞争筹码。在此基础上,聪明的NVIDIA也并没有彻底摒弃对PCIE总线的支持,NVLink与PCIE总线想通的编程模式以及部分共用的指令,都显示了NVIDIA试图平衡竞争态势,并在其中保持更多自由和弹性的意图。
突破CUDA生态环境的“包围”是Intel亟待努力的方向之一
Intel的处境同样发生了相应的变化,当自己的两个最重要对手联合在一起之后,先前Intel对IBM所拥有的CPU+GPU异构计算架构的优势将不再明显,NVIDIA对它的依赖也进一步减轻,在自己所面临的软件及开发生态环境相对欠缺的问题没有得到改善之前,Intel所面临的来自正面的竞争压力无疑将会变得更大。一个对手的能力有了提升,另一个对自己还有依赖的潜在对手现在也不在那么依赖自己,Intel的压力是可想而知的。可以预见,Intel势必会在未来继续加大自己在HPC领域的投入,推出更强大的PHI后续产品的同时开发更多更新且更有竞争力的技术。
AMD的状态也许真的让西线处在无战事的状态下,但很明显的,NVLink为我们带来了另一条战线的火药味。
7关联性问题
● 关联性问题
看到这里,也许您会认为我们今天所进行的还是一次“不着边际”的思考过程。在铺着了数千字的篇幅之后,GTC大会上所呈现的我们认为最重要的技术,好像还是一团跟桌面GPU以及显卡没什么直观联系的“阳春白雪”。“老黄这不还是因为AMD不给力而变得懈怠,变得不重视GPU和显卡了么?”
其实不然,NVLink技术以及整个NVIDIA的发展核心,其实依旧是与GPU以及显卡息息相关的。
NVLink与PCIE总线对比
首先,NVLink技术并不是一个“HPC only”的高端技术,它完全可以被用来强化现有的图形应用场景,其所带来的更大的GPU之间与CPU的互联带宽可以让SLI场合,尤其是多卡SLI以及单卡多芯场合从中获益。NVIDIA未来的单卡双芯卡皇,将有可能优先以NVLink作为卡上双芯通讯机制,先通过NVLink完成双芯通讯,然后再汇总至PCIE总线,会是未来单卡双芯解决方案的一个理想选择。
单显卡游戏应用目前对总线带宽的敏感程度虽然不及多卡,但随着更大尺寸材质的应用以及运算量的攀升,为桌面GPU提供更大带宽总线的需求迟早会出现,NVLink显然是理想的选择。不过话分两头,如何在桌面推广NVLink技术,或者尽可能的将其同当前的PCIE总线结合在一起,是这一切实现的基础。
接下来,NVLink技术对NVIDIA接下来的GPU架构同样有着重要的价值。异构结构和Project Denver是NVIDIA GPU架构发展的两个重要节点,NVLink的出现为两者的结合带来了一种新的互联选择。如果NVIDIA能够提供高于现有Xbar方案的带宽/晶体管比例,那么NVLink在GPU内部充当ALU团簇同LOC之间的互联总线,将会是一个相当不错的选择。
最后,NVLink还为NVIDIA的Tegra以及移动GPU带来了更多可能性,无论是ARM还是Denver处理器,都将可以通过NVLink连接到新一代架构移动GPU上。NVIDIA对自有总线的优化,无疑将会进一步提升未来Tegra处理器的效率和竞争力。
随着完整版Maxwell架构的临近以及Pascal架构的公布,NVIDIA正式进入单GPU异构结构的步伐正在加快。NVLink技术的出现,无疑给NVIDIA未来的GPU架构及显卡产品带来了更多可能。
8绿色的未来
● 绿色的未来
至此,您还会觉得老黄在GTC2014上的表现是因为西线无战事而导致的不务正业么?NVIDIA并没有因为竞争环境的松懈而跟着松懈。也许AMD确实已经无法在对NVIDIA的GPU架构研发施加有效的压力,但技术的进步依旧在NVIDIA内部不断的出现着。
并未“不务正业”的GTC2014
诚然,也许催生这些进步的动力并非直接来自桌面及图形领域的需求,但来自HPC及大规模并行计算领域的推动同样可以有效的促进NVIDIA推进技术的前行。运算和图形本就是一家,DirectX 11出现之后,两者间原本无奈的界限已经变得模糊,而且还将在未来变得更加模糊。图形操作和运算将越来越多的建立在大规模并行化运算的基础之上,图形就是运算,运算就是图形。以并行运算为基础进行的技术进步,将会越来越直接且方便的为显卡进步带来好处。
其实不用提什么API和操作,只要我们以稍微宏观一些的眼光去看待现有的超级计算机集群,将其中的每一颗CPU及每一块计算卡都看做是一个点,就会很方便的发现它们与单颗GPU之间的相似性。大量计算节点的并行多任务处理过程,与大量ALU的并行多线程处理在数学模型上存在很多等价的部分,针对大规模并行计算架构进行的开发,是不可能对早已基于大规模并行架构进行设计的GPU产生不了影响的。
无论进步的动力源自何处,NVIDIA继续推动GPU架构及相关技术进步的努力应该都不会停止。不断提升GPU架构的性能功耗比以及绝对性能,在未来相当长一段时间内都将成为NVIDIA的核心任务。NVLink技术所带来的更大规模的带宽以及更高效的节点通讯能力显然有助于这一目标的实现,而且还能改变HPC及其他领域的一系列竞争格局的变化。这样富有积极意义的技术出现在GTC技术大会当中,我想应该可以被当做NVIDIA“诚意”的表现了。
NVLink等本届GTC大会上释出的技术,大多会在Maxwell之后的Pascal架构当中正式来到众人的面前。没有展示更多完整版Maxwell架构的细节是本届GTC大会的一大遗憾,但技术的进步以及未来业界格局的变化仍然给我们带来了许多新的希望。大家稍安勿躁,让我们一起期待这些进步和变化的到来吧。
作为视觉计算的龙头公司——NVIDIA,每年都会举办盛大的GTC盛会,但在盛会之后我们进入了深深的思考,这样的技术、那样的产品,有着怎样的意义?且听本文作者为你一一道来。
林光楠
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow