云计算、万物互联、大数据分析,以及不断涌现的人工智能等,对应用负载提出了越来越高的期待,企业对于系统性能的要求自然也是水涨船高。
在传统轨迹上,挤牙膏式地对处理器进行加强是多年来的不二法门。然而时过境迁,支撑处理器的摩尔定律已经接近边缘尽头,在多元化且近几何级的计算需求面前,应用负载更需要进入全新的、系统级别的提升。
对异构计算的探索跋涉就是一种对于计算性能瓶颈的突破。异构计算是一种特殊形式的并行和分布式的计算,它通过引入GPU、ASIC、FPGA或其它加速器,配合CPU去执行各自最擅长的任务,从而实现计算性能和成本的最优化。
以异构计算为基础的计算系统能够打破 CPU 和外围设备间数据传输的瓶颈,让更多的硬件设备参与计算,如用专用硬件完成密集计算或者外设管理等,从而显著提高系统性能。
作为异构计算领域的开拓者,IBM这些年来也一直在探索更高带宽、更低延迟的异构计算接口,减少CPU和异构核心之间的接口的传输能力对异构计算性能优势的限制。
2013年,IBM推出第一代CAPI 1.0接口(Coherent Acceleration Processor Interface 1.0),同时,为了加速OpenCAPI的应用,IBM与几家顶级的国际化公司(包括AMD、Google、IBM、Mellanox、Micron、Xilinx)建立了独立的标准化组织OpenCAPI,在异构计算的潮流中致力于推动高速硬件接口设计全面进入内存一致性时代。如今第三代CAPI接口开放给更多的异构计算开发者使用,名为OpenCAPI接口。
需要强调的是,虽然OpenCAPI首发于POWER9,但是它的设计特性并没有绑定在POWER架构上,完全可以嵌入到其他种类的处理器架构之上。
OpenCAPI接口能够有效地分担CPU的负荷,为客户提供一种可订制、高效易用的硬件加速解决方案——这一原始定义非常朴素,但方寸之间,深不见底,它是新一代异构计算的基础设施。
从2018年开始,通过在中国举办OpenCAPI异构计算大赛,IBM希望来自高校的理工学子能够通过了解OpenPOWER和OpenCAPI进一步实践异构计算,在未来逐渐成长为科技创新的储备军和中坚力量。
2019年鸣锣的OpenPOWER + OpenCAPI异构计算设计大赛则是吸引了来自14所高校的21支队伍。显然,OpenPOWER + OpenCAPI的组合正在吸引更多的关注,新的生态逐渐孵育成熟,正在蓄势待发。
OpenPOWER+OpenCAPI
李孝聪,西安交通大学在读硕士。本次大赛中,他和他的队友们顺利闯过初赛,与其他9支队伍共同杀入到复赛当中。
作为一枚经常参加各种校外比赛的“研究僧”,李孝聪表示,在大学里接触异构计算的场合并不是很多,此前基本上是通过阅读论文、搜索资料这样远距离的学习来获取理解,而大赛提供了多次与OpenPOWER+OpenCAPI“亲密接触”的机会,李孝聪和他的队友们也得以与许多共同学习OpenCAPI技术的参赛团队进行深入交流。
远超李孝聪预期的是,主办方为参赛队伍提供了一对一的企业导师,导师们传播知识、理解应用场景,能为参赛方案提出优化建议和点睛式的改进点拨,这是同类赛事其它主办方难以提供的优势资源。
此外,主办方还提供了服务器与板卡,参赛者不仅可以在理论上讨论加速效果,更可以在服务器上实现加速效果,亲自感受OpenCAPI异构计算的巨大威力。在接下来的时间里,李孝聪希望进一步改进方案,完成最终的设计。
李孝聪团队的方案主要是围绕密码学的算法。由于计算量非常大,算法也比较复杂、串行度大,因此团队的设计初衷就是利用FPGA(Field-Programmable Gate Array,现场可编程门阵列),更灵活地设计逻辑电路,赋予它更强大的加速能力。
相较而言,他的感受是,OpenCAPI有着非常领先的前瞻性和技术水准。譬如AES、SM3等算法,它们在计算速度上没有什么问题,但是对带宽要求非常高,一般的系统上是很难实现的。而OpenCAPI则是优势明显,第三代协议的OpenCAPI已经能够提供25GB/s的接口速度。
李孝聪表示,在不占用资源的情况下,团队会尽可能使用OpenCAPI的接口带宽,并根据FPGA的资源情况适当地调整一下它的流水线级数,保证更好的工作效率。
在高带宽之外,OpenCAPI还具有低延时的特性,能够为数据从FPGA端传送到CPU端或是反向传输,提供极好的支撑。
以SM2椭圆曲线公钥密码算法为例,如我们所知,这是个运算量比较大的算法,同时也对数据传输有着很高的要求。由于具备低延时的特点,OpenCAPI不仅能够加速SM2算法的运算,还可以让数据的传输更快,整个系统也由此更具安全优势。
生态的“移山”之旅
大赛规模的扩充,一方面令IBM中国OpenPOWER总经理吴伟明欣喜不已,另一方面也令他深陷“烦恼”:与上届比赛相比,主办方需要做出更多“痛苦”的决定,比如将21支初赛队伍最终缩减为10支挺进复赛的队伍。
从2013年一路走来,OpenCAPI已经迭代到第三代,日趋成熟,并且拥有上佳的技术水准。然而现实是以GPU为主的开发,仍未被充分利用,IBM提供开源工具套件的初衷,是希望帮助开发者更加快捷、容易地开发应用,加速创新。
IBM一贯重视与大学和科研机构的合作,他们客观、包容,可以接受新的东西,也乐于实现科技的快速落地。吴伟明表示,大赛的目的是把创新技术展示出来,让客户们看到在单纯的CPU加持之外,实际上还有一条更为可靠的、CPU+加速器的硬件加速解决方案。
他注意到,与上届相比,本届大赛的参赛方案出现了一些极具意义的变化:此前的应用基本是面向超算中心或是互联网公司,而本次则涌现出一批与工业控制相关的方案。与此同时,很多方案也瞄准了企业应用的实际方向,这是一个非常好的迹象。
针对本次大赛,主办方的OpenPOWER 基金会和OpenCAPI 联盟,承办方的IBM,协办方的浪潮商用机器等伙伴,均投入了大量的资源,就是希望为新做开发的年轻人,或是正在做加速应用的开发者,开启不同的计算视角、提供更为务实和高效的计算途径。
吴伟明指出,大赛的目的是改变整个以CPU为大脑的现有计算模式,改变人才的能力,这是革命性的创新之举,也是一次对原有计算生态的“移山”之旅,难度可想而知。
采用全新的异构计算架构,要求开发者具有更好的软硬件协同开发意识,能够清楚了解不同核心之间的性能优势,通过CPU协调各个异构核心的计算算力,从而实现最优的异构计算方案。对于开发者而言,从原先单一挖掘CPU的计算能力,提升到能够合理调度各个计算核心的算力,其转变充满挑战。
这可能是一个漫长的过程,或许还需要两到三年才能看到初步成效,但是一旦起步就会进入到加速期,并感染和鼓舞更多的人群,实现滚雪球式的发展。千里之行始于足下,新计算世界的开疆拓土势在必行,主办方与IBM愿意为此一尽绵薄之力。
“在现阶段,我们希望通过大赛对CPU+加速器的模式做出回应,将OpenPOWER + OpenCAPI的能力更加真实和全面地注入市场,带动市场的同步发展。”吴伟明表示。
迭代:技术的进化
在本次大赛中,IBM中国系统实验室芯片研发工程师钱晨以企业导师的身份,与同事一道参与了初赛团队的参赛方案指导工作。他认为,参赛方案涉及到视频编解码、深度学习以及密码学等方面,很多奇异的构思和创新的方案都令人拍案叫绝。
应该说,此次提交的方案都具备较好的落地价值,与当前的网络热点和企业应用相契合。譬如钱晨负责指导的一个变压器绕组模型在线监测的课题,非常具有创新性而且贴近生产实际,可以很好地提升生产效率。
此外,方案的技术选择也在某种意义上完成了迭代:复旦大学的视频风格迁移方案实现了CPU和FPGA的联合计算加速,又进一步引入了GPU,从而做到了CPU、GPU和FPGA的联合加速,为视频迁移提供了良好的实时性,同时保持了高计算密度。
在这一方案中,CPU实际上是GPU与FPGA之间的调度者。吴伟明认为,这也是OpenPOWER + OpenCAPI的发展愿景,既让CPU从繁重的计算处理中解脱出来,更多地担当调度的角色,也让GPU、FPGA等加速器部件发挥更好的作用。
虽然OpenCAPI非常强大,但是驾驭它并不困难,学习和使用非常简单、易于上手,对开发者也很友善。一方面,这是因为OpenCAPI拥有非常丰富的技术文档,另一方面则是由于IBM提供了一套非常成熟的软硬件开发环境,这套环境包括:
基于OpenCAPI C1模式的加速框架oc-accel(OpenCAPI Acceleration Framework);OpenCAPI的FPGA板卡支持套件,OpenCAPI 3.0_Client_Ref Design;OpenCAPI的软件开发库libocxl;OpenCAPI软硬件协同仿真引擎OCSE,OpenCAPI Simulation Engine。
这套开发环境经过IBM工程师的努力,已经全部在GitHub上开源,全世界所有异构计算的开发者可以快速掌握。
毋庸置疑,大赛的目的是在大学里培养和引导人才,但是这并不意味着OpenCAPI的推广会一直在象牙塔中进行。吴伟明表示,在继续推动大赛的同时,IBM接下来也会在不同的场合,向更多的开发企业和开发人员推广OpenCAPI。今年的OpenPOWER中国高峰论坛就将邀请一大批合作伙伴,并且会对部分已有的成果进行集中展示。
未来,IBM将进一步加强与OpenPOWER基金会和OpenCAPI联盟的合作,与基金会会员和联盟成员增进互动,以异构计算引领计算的真正嬗变,为目前的计算世界开启全新的纪元。(作者:“胖头陀” 康翔)