随着近几年天河2号和神威太湖之光相继在全球超级计算机公布的TOP500刷榜。在超级计算方面异构计算已经基本取代了同构计算,而且随着Intel着力发展CPU+FPGA,AMD大力研发CPU+GPU,异构计算也将越来越多的进入人们的视野。在国外公司积极布局异构计算的同时,国内公司也不甘落后。日前,中国华夏芯公司宣布,其异构计算处理器IP核已经在硅片上成功实现,并已通过HSA(异构系统架构)一致性测试。公司还宣布了新的机器学习和深层神经网络的开源项目,旨在进一步推动HSA异构计算的发展。
目前,在HSA协会的推动下,异构计算有向越来越多的领域侵蚀的趋势。那么,什么是异构计算?发展前景究竟如何?中国首个异构计算处理器又凭什么在业界处于领先地位呢?
同构计算是使用相同类型指令集和体系架构的计算单元组成系统的计算方式。而异构计算主要是指使用不同类型指令集和体系架构的计算单元组成系统的计算方式,常见的计算单元类别包括CPU、GPU、DSP、ASIC、FPGA等。异构计算用简单的公式可以表示为“CPU+XXX”。举例来说,AMD着力发展的APU就属于异构计算,用公式表示就是CPU+GPU。
由于术业有专攻,CPU、GPU、DSP、ASIC、FPGA各有所长,在一些场景下,引入特定计算单元,让计算系统变成混合结构,就能让CPU、GPU、DSP、FPGA执行自己最擅长的任务。如果能做到无缝地将运行于CPU之上的通用计算、运行于GPU之上的并行计算、运行于DSP之上或者ASIC/FPGA之上的优化计算整合在一起,就能获得更好的应用性能,更低的功耗等特性,相对于同构计算而言也可能有一定性能优势。
以天河2号的一个计算节点为例。Xeon E5的满载功耗达145W,双精浮点为0.21T Flops,而Xeon PHI功耗300W,双精浮点达1T Flops。
天河2号一个计算节点由2片Xeon E5和3片Xeon PHI,理论双精浮点性能为3.42T Flops,功耗为1190W,理论双精浮点性能与功耗的比值为2.87GFlops/W。相同功耗下使用8片Xeon E5只能获得1696Gflops的理论双精浮点性能,理论双精浮点性能与功耗的比值为1.42GFlops/W。从数据可以看出,在同等功耗下,在使用Xeon PHI加速后,理论双精浮点性能是只使用Xeon E5的2倍。
正是因为异构计算在理论上有着诸多的优势,一些媒体将“CPU+XXX”称为下一代处理器。
事实上,最近几年曾经在TOP500刷榜,或者排名靠前的超算都采用了异构计算——中国神威太湖之光、美国超算泰坦、中国天河1号和天河2号。
泰坦有18688个运算节点,每个运算节点由1个16核心AMD Opteron 6274处理器和1个NVIDIA Tesla K20加速器组成,共计299008个运算核心,属于CPU+GPU。
天河1号使用了14336片Intel Xeon X5670处理器和7168片NVIDIA Tesla M2050高性能计算卡,属于CPU+GPU。
天河2号有16000个计算节点,每个节点由2片Intel的E5 2692和3片Xeon PHI组成,共使用了32000片Intel的E5 2692和48000片Xeon PHI,属于CPU+众核芯片。正在升级的天河2号则将美国的Xeon PHI换成了自主研发的矩阵2000,属于CPU+DSP。
近年来,国家对集成电路产业发展高度重视,在龙芯、申威等老牌设计单位取得累累硕果的同时,又成立了拥有1200亿元人民币的集成电路大基金扶持产业发展,先后与IBM、VIA、高通、AMD合资/合作成立兆芯、宏芯、华芯通等公司,并大力扶持展讯、海思、联芯等ARM阵营IC设计公司茁壮成长。
不过,在上述公司中,除了龙芯和申威之外,大多都对境外技术有一定依赖,有的还成为境外公司的马甲,既不具备造血能力,又只能依赖政府经费生存。可以说,当今开发处理器的公司中鱼龙混杂,真正能做到自主研发、自主可控的少之又少。
就是在业界普遍购买国外技术授权,开发所谓“国产”处理器的大背景下,华夏芯选择了最为艰难的自主研发道路——其处理器的指令集和IP都属于自主研发。
也许很多人从来没有听说过华夏芯这样一家公司,但该公司确实是中国第一家从事异构计算处理器IP核设计的集成电路企业——华夏芯公司是一个定位于全球市场的中国公司,研发团队的来源也是全球化,但是从技术到人才都掌握在华夏芯手中,比如华夏芯的3合1“ Unity”体系架构是其独创技术,在同行业中也处于领先地位。
更难得的是,华夏芯并没有像一些商业公司那样购买ARM指令集,而是公司自主开发的指令集、微结构和工具链。因此,在自主创新能力上,和一些购买ARM 的IP授权开发所谓“国产”CPU的国内厂商有着本质上的区别。
华夏芯公司最近发布了一系列新的IP授权产品,在全球范围授权IP,为客户提供一流的处理器设计技术。所有华夏芯的处理器均支持HSA。对此,华夏芯的董事长李科奕表示,“我们很高兴地看到华夏芯的新IP核通过了PRM HSA一致性测试,面向工业、物联网、高级驾驶辅助系统(ADAS)和嵌入式系统,该IP核对功耗进行了优化并向全球提供许可”。
据了解,华夏芯还是中国唯二的可以对外授权IP的处理器公司(另一家是龙芯),在中国大多数CPU公司还处于购买国外IP做集成的时代,华夏芯能够自己开发IP并且能够对外授权就显得尤为难得。目前,华夏芯的CPU核可以通过IP授权的方式提供给客户,第一款CPU已经在台积电使用28nm HPC制成工艺流片,2016年第3季度提供给潜在客户作为评估或开发之用。
中国首个异构处理器相对于国外产品最大的特色就是3合1“ Unity”体系架构。本次在硅片上实现的IP核是华夏芯3合1“ Unity”体系架构的首次实现。Unity具有包括图像和视频处理在内的多维信号处理能力。华夏芯美国研发中心的CTO Mayan Moudgill博士表示,“矢量处理长度可依据矢量计算的需求动态设置,最大配置达到64KB,满足各种智能化应用和高性能计算对并行计算的要求,保证了指令架构的稳健性和软件代码的移植性。变长矢量处理单元(VPU)在进行大量数据处理的同时,结合了低功耗、乱序执行流水线等多项先进技术,从而使多个控制线程高效地执行”。
值得关注的是,在华夏芯面向全球发布上述消息2天之后,ARM也发布了与其类似的V8-A的矢量扩展架构(SVE),其技术特征与华夏芯推出的VPU单元极为相似。这说明,真正从事自主创新的国产处理器设计公司完全可以在核心技术上达到国际领先水平,其创新能力要远远优于那些通过IP授权设计CPU的公司,毕竟后者在自主创新的空间上受到授权许可方极其严苛的各种限制。
另外,市场上有很多SOC也集成了CPU、GPU、DSP等计算单元,比如像高通骁龙芯片、华为海思麒麟芯片都集成了CPU、GPU和DSP。那么,华夏芯3合1“ Unity”体系架构和市面上普遍存在的SOC有哪些优势呢?
之前提到的SOC的CPU、GPU、DSP的指令架构不同,微架构不同,工具链不同,是基于多核集成做出来的异构多核芯片,它们往往采用操作系统完成多核、多任务之间的同步与协调,因而会影响效率。在这里特别强调一下,传统的SOC多核编程非常难,虽然在物理上实现了单芯片多核集成,但是在开发习惯和流程上与传统的板上集成系统没有太大的不同,即性能不高、功耗不小、多套工具、多个团队、开发困难、优化更难。
相比之下,基于华夏芯Unity架构的芯片单核已经具备CPU、IVP(image and video processor)、DSP的处理能力,而且是一套指令架构,一套微架构,一套工具链。在做多核扩展、硬件加速器和FPGA的整合工作时,华夏芯的Utility体系架构将完全遵循HSA的规范,可以重用HSA的软件生态系统。因此,华夏芯的3合1做法在功耗、成本、性能、软件开发门槛、团队规模等方面都有巨大的优势。
异构计算在理论上相对于同构计算拥有很多优势——HSA能够简化芯片结构设计、降低应用编程门槛、缩短项目研发周期、显著提升芯片性能、广泛共享软件生态。有厂家甚至宣传异构计算可以实现任何程序都不必费心考虑不同处理器内核之间的存储差异。但在现阶段,异构计算除了在超算上取得了明显成绩,在其他领域优势并不大。
即便异构计算目前还存在这样或那样的一些问题,但却是非常具有发展潜力的技术。随着技术的进步,电子消费品市场对于高性能并行计算的需求正在爆发性增长,特别是在机器视觉、人工智能、云计算、AR/VR、软件定义无线电以及其他新兴领域,都对异构计算系统有着非常大的需求。而HSA在系统编程方式上的迈进使得一个复杂片上系统能够协调在并行计算上比CPU更高效、更低功耗的GPU、DSP以及硬件加速器等计算单元承担大部分繁重的计算工作任务,在上述新兴领域能发挥较理想的作用。
也正是因此,Parmance公司计划与华夏芯在ML-HSA项目上进行合作——该项目面向机器学习和深层神经网络,并针对华夏芯此前发起的开源gccbrig项目进行优化,gccbrig项目为任何支持GCC的平台提供编译(终结转换)功能。
国外巨头也一直着力发展异构计算系统——Intel在去年以167亿美元收购阿尔特拉,发展CPU+FPGA,AMD着力发展的APU也属于异构计算,像Imagination、MTK等一些厂商也在异构计算领域积极布局。可以说,异构计算的市场前景还是值得期待的。
虽然在CPU、GPU、DSP等传统芯片上,中国与西方还有这比较大的差距,但在异构计算处理器上,中国与国际先进水平差距小,局部甚至还处于领先地位,可以说,本次华夏芯成功研发的异构计算处理器则是中国在该领域的有益尝试。