华为北冥多样性计算融合架构基础软件使能助力开发者乘风破浪

近年来,人工智能、云计算等新兴技术应用非常迅速。伴随着摩尔定律正处在失速的当下,通用算力已经难以满足行业客户的新兴计算需求。在这一背景下,对于开发者而言如何将自己的编程项目快速部署在不同架构的算力基础设施上,成为了一个让人头疼的问题。

具体而言,可以总结为以下三点:第一,多样性算力的开发,往往需要使用多种编程语言和工具,开发生态碎片化;第二,同一应用在不同架构的处理器上部署,代码难以重用,带来较高的开发成本;第三,多种算力间缺乏协同优化手段,无法充分发挥系统的整体性能。

北冥多样性计算融合架构横空出世

为了帮助开发者应对上述挑战,解决在多样算力面前出现的问题,华为在不久前结束的“华为全联接2021大会”上正式发布了北冥多样性计算融合架构。北冥架构是为多样性计算硬件及集群打造的完整软件栈,可帮助开发者在多样算力环境下,实现与单机相同的应用开发和部署体验,并获得远超单一算力的应用性能。

华为北冥多样性计算融合架构基础软件使能助力开发者乘风破浪


北冥多样性计算融合架构

作为北冥多样性计算融合架构的根基,北冥基础使能软件通过毕昇C++语言、毕昇编译器和北冥融合加速库为多样性计算系统提供通用、高效、高性能的开发能力,助力开发者更好地应对上述挑战。

三大基础使能法宝解决业界难题

我们先来看一下毕昇C++语言。毕昇C++多样性计算编程语言以C++为基础,支持SYCL异构编程标准。一种语言即可对鲲鹏、昇腾及业界主流算力进行编程,大大降低学习成本。

该编程语言对不同算力的共性特征进行了抽象,提供向量计算、矩阵计算、并行计算的通用接口。

它可以为多种处理器上的不同矩阵计算单元提供统一的矩阵编程接口UMMI,面向AI领域提供张量抽象,实现一套源码在多样算力上的重用,降低了代码迁移成本。毕昇C++支持SIMD、SIMT等多种并行模式,可实现单一源码的跨算力编程,方便多样算力协同。最后,毕昇C++语言通过单语言、单源码的开发方式,为开发者避免了多样性计算系统的编程复杂性。

华为北冥多样性计算融合架构基础软件使能助力开发者乘风破浪

在毕昇编译器层面,作为一款优秀的产品,其能够提供跨多样算力统一编译及融合优化能力。毕昇编译器提供多指令集支持,实现了对鲲鹏、昇腾等算力的统一编译。配合毕昇C++,可直接生成融合多种算力代码的fatbin可执行程序,方便地在多样性计算系统上部署运行。

通过编译算法优化以及与处理器架构的深度协同,毕昇编译器加强了预取优化、自动向量化、循环优化和多面体优化等能力。同一套源码在鲲鹏上进行基准性能测试,相比GCC性能提升了25%以上。此外,毕昇编译器实现了多样算力融合优化技术,如跨算力的数据流分析、控制流分析、传播优化和数据布局优化,打破了编译器只能对单算力进行编译优化的限制。毕昇编译器在SPECACCEL基准测试中性能提升了30%以上。

最后再来看看具有统一API接口、具备多算力协同能力以及高性能的北冥融合加速库。北冥融合加速库兼容主流应用框架,实现已有应用生态的良好对接。通过AI加速特征空间搜索、AI求解偏微分方程、高精度采样等技术,新增了对AI+大数据、HPC+AI、HPDA等融合应用的支持。

北冥融合加速库为多算力提供统一的API接口。同时,构建了业界独有的多算力算子层,通过多算力协同、异构区域分解技术将计算过程拆解到最适合的算力上,再采用混合并行及算法等价变换等优化方法,实现加速库性能的进一步提升。以优化器算子为例,精度要求不高但计算量巨大的张量计算被分解到昇腾执行,高精度计算由鲲鹏执行并为梯度计算提供精度补偿,从而大幅减少训练耗时。基于此优化器算子,实现了计算机视觉、自然语言处理等主流模型训练效率提升1倍以上。

华为北冥多样性计算融合架构基础软件使能助力开发者乘风破浪

结语

华为计算产品线研发总裁熊彦在大会现场展示了北冥多样性计算融合架构的多种应用。通过实际案例的分享,展示了在该架构下求解时间能够大幅缩减,体现出了出色的实用效果。在多元算力并行的未来,华为通过北冥多样性计算融合架构的基础使能软件已经完成了生态奠基,帮助开发者在多元算力的软件开发上乘风破浪。

来源:中关村在线

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年9月9日
下一篇 2021年9月9日

相关推荐