在传统CPU以外,现在业界又兴起了可重构计算的风潮。近期Intel便与清华签订了合作协议,号称将结合Intel在处理器上的优势与清华在可重构计算 上的前沿成果研发下一代芯片,并共享知识产权。而前阵子又有号称全球首款完全支持异构系统架构的“华夏芯”横空出世,一时间异构计算和可重构计算的概念让 人眼花缭乱。在国产芯加速前进的背景下,异构计算和可重构计算会是国产芯的机会吗?
| 通用计算与可重构/异构计算的联系和区别
要想看清楚新概念,就要先明了老概念。可重构/异构计算到底新颖在哪里,要首先看看它们的同伴“通用计算”。
所谓通用计算,就是追求普适性的覆盖面。在这个理念下诞生的芯片从功能上来讲拥有最广阔的适用范围,最典型的例子就是今天的中央处理器(CPU)芯片,绝大多数应用程序的绝大部分功能依赖于它。
一般来说,CPU的设计是面向所有应用,评估CPU的性能指标时通常需要选取门类庞杂的各种测试程序,同时只为极少的重点应用加上一定程度的专门优化,例如时下热门的加密解密,视音频编解码等等。
与通用计算相对的就是专用计算,专门针对一些场合进行专门优化,性能/功耗等指标通常比通用CPU有数量级的提高,但是适用面很窄,在规定的适用面以外就远远落后于CPU。
通用和专用的关系就如同什么都懂一些但是基本上什么都不精的“通才”,和在个别领域钻研极深但是其他领域几乎一无所知的“偏才”。
在CPU的技术指标增长逐步放缓的今天,若要提供更好的表现,一个直观的点子就是物尽其用,让“偏才”处理它最擅长的事情,并招来多种专长不同的“偏才”来照顾多种重点事务,其他事情则交给“通才”去完成。一个系统里面存在一个“通才”和多种“偏才”,这就是异构计算,是通用计算和专用计算的“合体进化“。
那么可重构计算是什么?让芯片拥有重构自身的能力,从而能像干细胞一样一身才艺,能够适应各种不同场合的需要,这就是可重构计算。
这一概念的历史至少可以追溯到上世纪80年代,xilinx设计出第一块基于SRAM的可重构芯片的时候。这种芯片里面的基本器件和线路上都配置了大量的开关,这些开关的关断由与之相连的SRAM单元来控制,只要往这些SRAM单元里面写入0和1就能控制这些组件的开关和连通,从而像搭积木一样在原来不存在计算部件的地方拼出大量按需定制的计算部件,使得计算性能产生爆发性的变化。这种芯片被称为FPGA,被广泛用于CPU流片前的验证工作。
那么可重构计算和通用计算/专用计算又是什么关系呢?看上去可重构计算可以替代通用计算,实则不然。由于FPGA芯片底层实现方式的限制,这种由SRAM控制组织结构的做法在性能上远远落后基于ASIC的CPU,只有在一些特定场合下,FPGA才能够实现反超,因此,可重构计算便落入了专用计算的范畴,与异构计算同列。它和异构计算虽然起源不同,但是二者眼下的目标在很大程度上是重叠的,也就是,从传统通用计算的霸主——CPU嘴里抢食。
| 群雄割据的乱局:通用碰撞专用,CPU碰撞加速器/FPGA
众所周知,Intel在CPU上的优势已经形成事实上的垄断,x86指令集授权和Intel的技术优势让其他公司已经很难染指CPU市场。而大家瞄准的突破口,就在专用计算上。
作为被Intel常年压制的公司,AMD对异构计算的推动尤其热心,不仅早早地将自己旗下的CPU产品重命名成APU(有直译作加速处理器,也有意译作融合处理器),而且还成立了一个HSA(异构系统架构)基金会,拉了ARM、Imagination、联发科、德州仪器、三星、联发科等众多一线大厂一同上阵,主推一个叫做OpenCL的异构编程框架。
光从这一局部态势来看,应该称赞AMD下了一步好棋,但是AMD还有另外一个竞争对手NVIDIA。NVIDIA的主营业务GPU,是异构计算这杆大旗下呼声最高的异构处理部件。也是对CPU地位威胁最大的,以至于在异构计算这个大概念下还催生了些个附属的小概念如“GPU计算”、“GPU编程”,早几年GPU计算还比较新奇的时候,还发生过Intel恼怒于NVIDIA肆意鼓吹GPU的并行优势,公开发文撕逼的事情。尽管Intel一直在提高CPU的SIMD能力、从而压缩GPU的性能优势,但是迄今为止顶尖GPU在实践中对付顶尖CPU仍然能取得2-3倍或者更高的性能。NVIDIA为自家的GPU打造了另一个异构编程框架CUDA,专门与OpenCL唱对台戏,而且呼声更高,至少在高性能计算领域已经形成了对OpenCL的压制态势。
这么一看,是AMD螳螂捕蝉,NVIDIA黄雀在后,然而,还有弹丸在其下。前面提到,FPGA也被证明在一些专门领域具备对CPU的性能优势,而FPGA取得性能优势的领域也多是并行性比较好的,这也刚好是GPU的长处,这就与GPU打架了。例如微软等公司就已经为自己的数据中心加上了FPGA,使用OpenCL进行编程,这样一来GPU又面临着被挖墙脚的窘境。
| 瞄准可重构/异构领域的国产芯能杀得进去吗?
可以肯定的是,异构计算/可重构计算是当前的一个技术热点,无论在学术研究上还是在工业实践上都是如此,其市场空间是有的。但是国产芯能从中收获多少,笔者抱持比较悲观的态度。
从格局上来讲,专用计算主要弱点是应用场合有限,且GPU和FPGA存在互相竞争。Intel现有的处理器可以在除了低功耗以外几乎任意场合下提供不错的性能,而可重构/异构计算的介入只是在一部分特定业务上再提供大幅加速 —— 这个应用范围就决定了可重构/异构计算不可能替代中央处理器现有的角色,而只是一些特定场合下的附庸,Intel的地位仍然无人能动摇。因此,对于芯片自给率从30%提升至70%的国家战略目标来讲,可重构/异构计算可以是其中漂亮的一块拼图,但是绝对无法担主梁。
从商业上来讲,可重构/异构计算的市场空间正在进一步被Intel压缩。Intel已经于去年年底完成了对FPGA双巨头之一Altera的167亿美元收购,据报道内建FPGA模块的新型xeon志强服务器处理器会在今年一季度面世,以Intel + Altera双强联合的体量来说,可重构市场的市场份额绝大部分肯定不容旁落,除非Intel在定价或者出货时间等问题上出现重大纰漏,国内新兴的这些尚处在襁褓期的可重构计算公司将被迫在夹缝中求生存,这些公司的前景如何,很大程度上是受到Intel间接控制的,笔者对此较难看好。