引子:

我不能容忍这样的物理学家,他拿起一块木板来,选择最薄的地方,在最容易钻孔的地方钻许多孔。——阿尔伯特·爱因斯坦

乍一看,此番言论豪气万丈,但实际上,科学这块模板上比较薄的地方早已没有了继续钻研的空间;留给当代科学家的都是无比艰深的挑战。要在这样的前提下继续推动科学稳步前行,我们所依仗的应该是更先进的工具和更合理的研究方法。

当科研遇到AI

“大胆假设、小心求证”是我们面对难题时常用的解决思路,科研领域亦不外如此。只不过在这一过程中,科研遇到的失败和挫折会更多。虽然在不断的失败和尝试之中,我们往往能够获得与真相有关的蛛丝马迹,但要在海量的实验结果和数据当中将这些蛛丝马迹找出来仍旧是件相当困难的事情。因此,我们才会说科研很难。甚至很多时候,仅仅是找到看似比较可行的研究途径就已经能够帮助科研人员赢得更多资源和赞誉。

那么,有没有方法可以帮助科研人员简化寻找线索的过程、加速创新呢?科研人员常说的“科学没有捷径”,指的大抵就是这样的困境和克服困境所需的持之以恒吧。但好在,伴随AI技术的崛起,我们终于有了全新的解决思路。

借助具备大数据和AI能力的超级计算机,科研人员可以在程序中设置目标和达成目标所需遵循的规则,让AI在海量实验数据中寻找达成目标的具体方法。以生物制药领域中的蛋白质研究为例,科研人员可以根据需要达成的效果来设定一系列蛋白质需具备的特征,再为AI程序构建一套符合物理世界定律和实验室制备方法的规则,而后就可以让AI程序自行设计符合这些目标和规则的蛋白质结构。在得到一系列结果之后,科研人员只需对这些结构的效果和可行性进行研究评判即可。当然,这只是AI与科研众多结合点的其中之一。借助超级计算机强大的算力和不眠不休的工作能力,更多科研领域的创新效率均可大幅提升。

那么问题接踵而至,如何构建这样的超级计算机?如何让AI程序运行的更快?而这正是中科院计算所高性能计算机研究中心主任谭光明教授的研究方向。

为超级计算机赋能

与普通家用电脑4核、8核的小打小闹不同,科研所需的计算非常精密且运算量异常庞大,几千核的超级电脑只能算是最基础的入门款。而要想让科研所用的程序在成千上万的核心中并行运行且利用好各类硬件特性,显然会对程序开发者提出更高的要求。开发者需要具备并行程序设计、算法优化、调度器优化、网络优化等领域的相关经验和技能。但对于和超算打了20多年交道的谭光明教授来说,这些都不是问题。

 作为中科院计算所研究员、计算体系架构国家重点实验室副研究员,谭教授主持了超算领域的多项国家级科研项目。或者用一句更简单的话来说,谭教授最擅长的研究方向就是并行算法设计与分析优化。

而在介绍自己工作历程时,谭教授也讲的很透彻:在只考虑CPU参与计算的情况下,这些优化工作“很简单、很轻松”;一旦CPU、GPU、NPU等多元算力开始参与计算,问题便一下子复杂起来了。

但正如前文所述,多元算力加持下的新一代超算正在用大数据和AI能力为科研带来全新可能。因此,解决超算系统内多元算力的调用和协同问题也成为了谭教授及其团队目前的主要工作内容。而且,这类采用多元算力并支持大数据和AI应用的超算还有个新名字——数据密集型超算。

谭教授所遇到的挑战在科研和商业领域其实并不鲜见。用来提供AI加速的NPU或GPU架构通常都非常新,并且处于快速进化阶段。因此,软件编程人员必须经常更新自身的知识技术储备才能跟上硬件和算法的进化速度。而要开发出符合科研或商业需求的大规模并行AI程序,编程人员还要解决算法的大规模并行、算力调度、网络优化等一系列问题。加之CPU部分的并行计算问题,新的数密型超算所要解决的问题维度增加了一倍;最终的软件开发难度明显也是1+1>2的。

不过,在如何解决这一难题方面,对超算体系架构和相关算法设计优化方面拥有深厚经验的谭教授则有一条非常明确的思路:那便是通过调用一个统一的、经过优化的函数库来降低多算力融合应用开发的门槛。

这是谭教授的解决思路,同样也是华为北冥融合加速库的构建逻辑。

思路上的不谋而合、技术上的惺惺相惜很快便使谭教授团队和华为走到了一起。而双方合作的重点便是为北冥融合加速库增加更多面向科研、面向AI算法、面向大数据的专业函数。

简单来讲,北冥融合加速库是北冥多样性计算融合架构的基础,是一套面向多样算力进行全面优化的函数库;鲲鹏和昇腾硬件在执行库中函数时,速度更快、效能更高。而在多算力融合的算法开发和编程时,开发人员只需安装这一加速库并根据规则调用其中的函数便可让算法和程序获得更好的性能,从而大幅降低软件开发和调优成本。

而由此开发出的高效算法和应用对于科研或商业用户来说则能带来多重收益,包括但不限于降低软件成本,节约计算资源,更快获得计算结果,降低计算的能源消耗……等等。

此外,北冥融合加速库中的网络通信库和多线程库还能帮助开发人员解决网络优化、鲲鹏CPU算力优化等众多基础问题。当然,对于更常见、更广谱的应用类型,北冥融合加速库还提供了包含算子和算法设计的应用加速库;真正实现一库多用、一库多能。

对于北冥融合加速库,谭教授不吝赞美之词:软件开发难度的大幅提升一直是异构超算、数密型超算在科研领域中大规模应用的最大障碍。不同算力的综合调用及优化对于开发和优化人员来说是“灾难”级别的。而北冥融合加速库所采用的思路则有望缓解这一难题,让无视硬件差异的高效编程成为可能。

重点攻坚、全线推进;助推异构计算新时代

集合各方力量对北冥融合加速库进行不断完善,进而在整体上促成多算力融合应用的尽早到来是华为在多算力融合领域的核心目标。从战略层面来看,这个目标足够远大;而从技术层面而言,这一思路也足够靠谱。但饭需要一口一口吃,加速库中的函数需要逐条添加、优化,而整个多算力融合时代也要逐步构建、完善。因此,除了不断推出性能更强、能效更优的硬件基础架构之外,华为的工作也将是多维度、多层次的。

以与计算所的合作为例,为了更好的帮助第三方团队了解硬件特性,华为不仅为谭教授团队开通了鲲鹏+昇腾计算集群的使用权限,更提供了详尽的文档和原厂技术支持。同时,双方也会定期进行线上、线下交流会,共同就北冥融合加速库中函数的优化问题交流观点和技术经验。而像这样的技术沟通和探讨,华为同步推进的还有很多;其目的也很简单,把技术的种子散播到千行百业之中,并为其浇水施肥、促其成长。

而在专注“小圈子”的同时,华为也在“广撒网”。此前,在加速库、工具插件、算子、网络模型等基础软件领域开放500+任务包,所有团队、机构和个人均可领取任务并提交自己的方案和思路,瓜分超亿元的高额激励金。

学以致用是任何技术的终极目标,多样算力的融合亦不例外。因此,华为还联合教育部及11所高校共同启动了鲲鹏众智计划和昇腾众智计划,力求培养更多能够能用、会用新一代算力产品的新一代数字人才进入社会和百行百业,促进产学研用完整链条的形成、正向循环。

与实力团队的紧密协作、面向社会广撒网、推动产学研用链条的成型……华为的一系列动作正在让北冥融合加速库的内容和效果获得快速提升。属于异构计算和数密型超算的时代已经到来,而加速库的发展也势必在多方力量的助推下迎来呈现出全新的加速度。

北冥之上便是星辰大海

从最初的打孔纸到机器码、BASIC、C语言和当下如火如荼的Python,编程工具的不断进化让开发人员获得了无比强大的能力,足以用代码构建一整个数字时代。从ENIAC到Cray 1到Blue Gene再到天河1A和如今由国产处理器、NPU搭建的新一代数密型超算,算力的快速进化也让科学家和企业看到了基于海量计算和AI的崭新未来。

软件和硬件是计算机的一体两面,而诸如北冥融合加速库这样的存在则是让软件和硬件高效匹配的宽阔桥梁。有了这座桥梁,我们不仅掌握了攻破“厚木板”的奥义,更具备了挑战砖墙、水泥墙的资本。而在无尽算力的加持之下,我们也已看到了北冥之上的星辰大海。

更多推荐