或许您已经用上了8核手机,或许Ivy Bridge-E甚至双路12核心服务器已成为您的办公用机,或许您认为处理器的核心数目已经多得完全用不上。别担心,处理器的多核心革命只是刚刚开始。目前,一款核心数多达72核心的英特尔处理器已经初具雏形,在不远的将来就会投入使用。那么它为什么需要这么多核心?哪一款软件会用到如此多的核心?这种新的处理器又将主要用于哪些领域?本文将为读者朋友们一探究竟。
发展核心数如此之多的一款处理器,当然不是因为现今处理器已无法满足普通消费者的需求,而是在于英特尔感受到GPGPU架构与异构计算对自己在高性能运算领域造成了切实的威胁。从上世纪九十年代开始计算,GPU与CPU已在长达十余年的时间里一直各司其职,保持着井水不犯河水的状态,但快速发展的半导体行业不会甘于持久的平静。CPU单核性能的提高受到功耗、访存速度、设计复杂度等多重瓶颈的制约,逐渐显露颓势。据美国国防部高级研究计划局罗伯特·科威尔在Hotchips 2013大会上给出的新评估,此后的CPU每次换代只能提升多10%左右的性能,随着线宽逐渐缩减,就连维持这一进步幅度都会变得越来越困难。而追求吞吐量的GPU受到摩尔定律的护佑,在过去这些年中得以不断地在有限的芯片面积内塞入越来越多的简单核心。其暴力计算速度开始展现锋芒,加上科学计算、多媒体处理等等具备较好并行性的领域需求推动,GPU开始不甘于“寄人篱下”,尝试提高自身的可编程性,“接管”一部分适合自己进行运算的应用。
大力推广CUDAGPU的英伟达,如今已经成为GPGPU浪潮中的大赢家。
所谓提高可编程性,就好比令一把只能砍树的斧头,变身成为能够应对多种用途的瑞士军刀,这种“瑞士军刀”式的GPU被称为GPGPU。CPU单线程性能的增长潜力已经越来越难发掘,当工业界和学术界都开始寻找其他的性能增长点时,目光自然落到了GPGPU身上。自从英伟达开始发力推广GPGPU概念以来,GPU的专长便开始逐渐深入人心。越来越多的架构师开始重新审视GPU在整个计算机系统中的地位,在系统架构设计时对GPU的作用加以考虑。程序员们也开始尝试将合适的代码转移到GPU上执行。为了配合GPU的并行特征,从代码中抽取并行性,CUDA、Open CL等新的编程语言、框架、模型相继提出,这个过程成为了底层体系结构影响上层编程语言的典型范例。
GPGPU的成功,在高性能计算市场上得到了非常明显的体现。进入2010年以后,采用GPGPU的超级计算机数目迎来了堪称爆发的高速增长,超级计算机五百强榜单中逾十分之一的机器选择了这种CPU-GPU异构的模式。在近年的GPGPU浪潮中,英伟达无疑成为大赢家。依据2012年中期的统计,采用GPU加速的超级计算机总数在60台上下,其中有50台左右采用了英伟达GPU。英伟达显然把握住了GPGPU这一浪潮,成为GPGPU在高性能计算中的领跑者。GPGPU的进化是如此的耀眼,甚至连普通用户都开始关心自己平常使用的软件是否具备GPU加速特性。GPU加速在浏览器、高清转码回放中的使用体验在各大论坛都可以见到讨论。从学术界、工业界到普通用户都已接受GPU在部分应用上具备独到优势的观点。部分受此因素的推进,新一轮异构计算的浪潮开始了酝酿,而这一轮大潮的推手已经不仅仅是NVIDIA,还包括AMD、ARM等等诸多宿敌与新锐。异构计算强调在系统中引入多个面向专门应用、关键应用的特殊处理单元。这些特殊处理单元的性能、功耗都胜过传统CPU,必要时可以接管对应的计算任务——显然,GPGPU将是这一系列五花八门的异构处理单元中耀眼的一个。GPU加速已经从初追求对性能优势的认可,逐渐发展为对计算理念进行整体革新的倡导者。而所有的这些,对坐惯了行业霸主地位的英特尔来说,都是危险的进犯信号。英特尔在CPU领域已经是事实上的寡头,计算理念这个大天平每次往异构和GPU那一侧倾斜一点儿,就意味着CPU的地位减弱一分,这无异于釜底抽薪,英特尔不可能束手旁观。
英特尔测试得出的GPU VS 多核CPU加速幅度,纵轴是GPU的相对性能倍数。
让我们换一个视角,来看看英特尔在超级计算机市场上的CPU占有率:在表现低落的2006年里,超级计算机五百强中仍有52%的系统使用英特尔的CPU。而此后七年,英特尔的占有率逐渐提高,2013年11月的新统计中已达82%,表面上看来形势一片大好,但GPGPU的兴风作浪令英特尔如鲠在喉。因为在这些超级计算机中,绝大多数的性能来自于GPGPU的贡献,大量的CPU几乎沦为陪衬。超级计算机是庞大IT产业中的璀璨明珠之一,甚至被作为一个国家科研实力的标志,围绕超级计算机的产品很容易诞生光环效应。而英伟达也很懂得新闻宣传中的四两拨千斤之道,往往抓住时机大肆渲染自己的GPU在超级计算机中如何占据主导地位,CPU与GPU之间又存在着怎样的性能与功耗鸿沟。面对这种情况,英特尔当然不会坐以待毙。巧合的是,当英伟达在高性能计算市场上凭借CUDA语言和Fermi GPGPU开始攻城略地之时,一篇来自英特尔吞吐计算实验室和体系结构组的学术论文出现在国际计算机体系结构大会(ISCA)上,论文标题是颇为轰动的《揭穿GPU百倍加速比神话》。
这篇论文选取了十四个已实现GPU加速的应用进行评估,结果显示,在双方都经过充分优化的情况下,GPU平均仅比多核CPU快了2.5倍,推翻了其他人声称可以实现数十倍、上百倍乃至上千倍加速比的先前研究结论。由于国际计算机体系结构大会是本领域内的旗舰级学术会议,审稿颇为严苛,声誉崇高,许多来自工业界的架构师和学术界的计算机科学家们都在关注这个会议的动向。因此这篇论文的出现毫不意外地引发轩然大波,一时间议论纷纷。这一结论有多少是出于学术目的,有多少是出于对多核CPU的商业利益保护,不得而知,但显然英特尔绝不会认同英伟达所走的GPGPU道路是计算机体系结构发展的未来所在。英特尔的芯片一向以卓越的性能表现著称,高性能计算市场上英特尔也实在当惯了寡头,这块大蛋糕是不会允许英伟达抢走的。为了匹敌英伟达的GPGPU战略,打破CPU核心不能实现高吞吐的论断,英特尔也开始酝酿自己的众核计划,并于2010年以前开始了工程样品Knights Ferry的研发,这个Knights Ferry后来演化成我们今天在市场上看到的Xeon Phi家族。
2012年,英特尔正式将第一代Xeon Phi产品,代号为Knights Corner的协处理器推向市场。这一代产品使用P54C核心构建,片上集成61个CPU核心,实现了GPU级别的浮点运算速度。但是,Knights Corner还不能称为完全的众核“处理器”,因为Knights Corner没有自己的CPU插槽,而是以类似显卡的方式,与GDDR5存储器一起做成一块板卡,插在PCI-E插槽上运行。因此,在宣传中经常将之称为众核协处理器或是加速卡。在推出一年后,异构超级计算机中采用英伟达GPGPU与采用英特尔众核协处理器的比例从53∶1变成了39∶11。在高性能异构计算市场的总体容量基本没有改变的情况下,英伟达的份额明显缩小,而英特尔的份额大幅增加。可以说Knights Corner在起步阶段已经做得相当不错,高性能异构计算已经不再是英伟达一家独大,而是越来越多地听到来自英特尔的声音。