新闻报道

了解鲲鹏社区最新动态

繁荣鲲鹏生态,加速算力升级
2019-09-20

       HUAWEI CONNECT 2019第三天,华为分享了如何使用鲲鹏开发者套件释放鲲鹏处理器的超强算力,从而全面使能开发者,帮助更多的系统软件和行业应用突破算力瓶颈。

       华为TaiShan & Atlas领域总裁张熙伟在大会上发表了“繁荣鲲鹏生态,加速算力升级”主题演讲。

张熙伟的发言全文如下

鲲鹏不止是CPU

       鲲鹏是通用计算CPU,但它的含义远不止如此。

       首先鲲鹏是一个SoC片上系统:两个CPU Die,最高支持64核,鲲鹏多核的优势,加上高I/O带宽、高内存带宽、高数据吞吐, 打造了鲲鹏强大的计算能力;I/O Die内集成网卡、南桥、SAS控制器及加速引擎,是业界集成度最高的数据中心CPU。

       鲲鹏还是一个开放的计算平台。华为在计算领域持续耕耘十多年,累计投入超过2万名工程师。华为开放鲲鹏主板,全面共享这些积累。鲲鹏主板上集成了 “算/存/传/管/智”五大自研芯片,同时还凝结高速互联、可靠性设计等核心工程工艺,优先支持合作伙伴开发自己的计算产品。

       计算产业的成功,首先是生态系统的成功。

       华为将通过鲲鹏主板开放、openEuler开源操作系统,以及openGauss开源数据库、鲲鹏开发套件、鲲鹏云服务与生态基地,全面使能开发者,帮助系统软件和行业应用突破算力瓶颈。我们将与产业链的合作伙伴共建、共赢、共享鲲鹏计算产业生态。

鲲鹏因势而变

       鲲鹏从设计之初,就在考虑面向智能世界持续提供先进算力。首先,业务对数据分析与决策更高实时性要求,算力从数据中心走向业务“边缘”;同时5G高速网络,驱动移动应用走向云化。端和边的巨大算力增长,牵引计算生态的发展,进而驱动计算架构的创新。 

       鲲鹏具有“端边云算力同构” 的天然优势。边缘场景鲲鹏凭借多核低功耗,逐渐成为边缘计算的主流选择;基于ARM移动端的原生优势,鲲鹏帮助云游戏、云手机等业务无缝迁移上云。 鲲鹏正在打破数据中心与边缘、终端间的界限,为开发者提供统一架构的计算平台,实现快速开发、敏捷部署、高效运行。

       IT系统架构正在从集中走向分布式。分布式并行计算的IT架构,需要与之适应的算力支持。在大数据、分布式存储、分布式数据库广泛应用的今天,鲲鹏多核优势,正在引领IT架构转型的趋势。

       5G、AI、自动驾驶等新技术不断涌现,带来多样性算力需求。华为发挥鲲鹏+昇腾的协同优势,灵活向AI算力扩展。在“高速公路自由流”项目中,通过鲲鹏做计费分析,昇腾做视频流分析,这是多样性计算协同应用的典范。

       秉承 “量产一代、研发一代、规划一代”的策略,我们已经启动了下一代鲲鹏930的开发,鲲鹏必将大有所为!

华为全面向鲲鹏算力升级,积累丰富实践经验

       从2016年起华为就在IT系统中广泛使用鲲鹏,截止目前,全球数据中心已部署了超过10万台鲲鹏设备,有力的支撑了公司业务开展。

       此外在华为提供的产品与解决方案中,已经全部切换成基于鲲鹏的TaiShan服务器。同时,华为云、华为消费者云的大部分场景也已经切换鲲鹏。

       华为自身的实践表明,鲲鹏能够有效保障业务连续,鲲鹏具备成熟的商用能力。同时我们积累了大量的应用迁移与算力升级实践经验,并沉淀为鲲鹏开发套件,与合作伙伴开放共享。

       今年1月,我们正式发布了鲲鹏920,至今的9个月里,我们与广大合作伙伴携手并肩,共同完成了3000+行业应用向鲲鹏生态的迁移。

       独行快、众行远,鲲鹏生态的成熟发展离不开全产业链合作伙伴的积极参与,在此表示衷心感谢!

鲲鹏五级加速技术 程序性能提升50%

       为什么应用迁移到鲲鹏之后,能够获得显著的性能提升?我们知道,应用程序离不开 编译、进程、线程、函数、内核调度五个方面的支撑。鲲鹏提供五级算力加速,确保程序性能提升50%。

       程序编译是生成高性能应用的关键环节。华为编译器与鲲鹏处理器协同,通过迭代编译,对代码进行并行优化、矢量优化、内存布局优化,综合提升性能15%。

       程序运行要先给进程分配系统资源,包括CPU,内存,I/O等。鲲鹏NUMA-aware技术,自动优化资源配置,性能提升20%;

       程序的不同功能由不同线程执行,线程间存在频繁通信;鲲鹏业界首创的消息队列硬加速技术,处理器内置通信buffer,取消内存访问,通信效率提升60%;

       面向函数运算,华为提供加速库,封装向量指令集和芯片加速引擎,HTTPS RSA加密性能提升2倍,压缩/解压缩性能提升10倍。

       在多核多线程场景下,openEuler操作系统通过机器学习算法,分析业务趋势,动态优化资源调度。

       鲲鹏五级算力加速技术,凝结了华为在基础研究与行业应用的深入理解与长期积累,为开发者业务创新提供最强算力保障。

一段代码的旅程

       一个应用迁移到鲲鹏,需要经过分析评估、代码移植、程序编译、性能调优四个步骤。华为提供鲲鹏开发套件,让您的应用迁移更加高效敏捷。

       下面我将用“一段代码的旅程” ,向大家展示基于鲲鹏的极致开发体验。

代码移植优化

       首先来看分析评估与代码迁移。华为基于对指令集技术和编程语言的深刻理解,我们开创性地研发了面向不同指令集的代码分析与迁移工具,相当与在两种指令集间架设了一座“桥梁”。通过工具来解决不同计算平台间的代码迁移,这是业界首创!

       工具可以实现90%的C/C++语言的自动移植、50%的汇编语言自动移植,以及80%的依赖库自动移植。让开发者对指令集差异无感,加速代码移植的同时实现编码优化。

       大屏幕展现的是鲲鹏分析扫描工具和代码迁移工具。


       工具对源代码扫描分析,准确识别依赖库和需要修改的汇编、和C代码,进而给出迁移工作量评估。

       我们把大量依赖库移植经验沉淀在工具和鲲鹏开发者社区。点击链接,可以在鲲鹏开发者社区上快速获取迁移操作指导 。未来开发者能够在鲲鹏社区内一站式获取所需资源与支持。

       代码移植工具已经全面掌握各种编程语言在不同指令集下的语法差异,从而给出移植修改建议。例如这段汇编代码,针对JMP跳转、CRC校验值计算, MOV等指令,给出了修改建议。

       对C语言代码,工具识别出原始代码中存在“字节对齐”问题,给出适配建议,提升代码健壮性。

原始代码中用for循环做数组乘法,工具建议用NEON指令集的向量乘法函数优化,提升程序性能。

迭代编译优化

       程序编译是性能优化的关键环节。

       鲲鹏处理器内置PMU模块,通过预编译的训练学习输出profile信息,帮助编译器更好的理解代码与处理器,迭代编译优化后性能提升15%。

       下面我们跟随这段代码看看如何迭代编译优化。

       这是一个常见的if/else函数,根据参数判断分别进入Block A和Block B指令。通过业务训练PMU发现Block B热度远大于Block A。初始的指令排布效率不高,导致频繁的cache miss。

       重新编译后,根据函数热度优化了指令排布,提升cache命中率,执行效率提升30%。

性能分析优化

       程序编译后,开发者还需要做系统的性能测试与调优。

       鲲鹏性能分析工具采集和分析CPU、BMC、网卡和SSD控制器等性能数据,系统性能全面可视。

       同时工具集成了华为性能调优的专家经验,提供从系统、进程、函数到代码的Top-down分析,及一键式优化方案;性能工具不仅支持单机,更能关联分析整个计算集群并调优;

       鲲鹏性能分析工具,可以看到CPU使用率、DDR带宽、磁盘I/O等系统关键指标。

       继续往下看,“DRAM内存访问” 数据分析,工具识别到远端内存访问率超过75%,时延大影响性能。

       旁边的线程分析,线程1与线程2分别运行在不同的CPU Node上,存在跨NUMA内存访问。

       优化工具可以进一步分析具体产生问题的函数及代码。可以看到线程1在频繁读取远端内存中的全局变量。

       工具不仅分析问题,更重要的是解决问题,通过调整配置,把有数据共享的两个线程分配到相同CPU核上,性能得到优化; 

       通过演示可以看出,鲲鹏性能优化工具是面向开发者实战设计的,让应用开发更加 “得心应手”。

OS调度优化

       面向多核多线程场景下的资源竞争,openEuler操作系统做了大量调度算法优化,充分发挥鲲鹏的多核优势。我介绍2个创新技术。

       三级智能调度技术,从内核、集群和Die实行三级智能调度,将不同的进程分配在最合适的核上,实现更优的系统负载均衡。

       智能自动优化技术,从驱动、内核、虚拟化、Lib库等多层的感知与学习,可进行7000多个系统参数的自动调优,让系统越用越快。例如,对MySQL数据读/写的锁优化,实现35%性能提升。

       大屏幕展示了openEuler操作系统分析锁的竞争势态,智能管理线程并发度及CPU资源,将调参工程师从重复的工作中释放出来。

       我们开源openEuler操作系统,释放鲲鹏算力潜能。