鲲鹏DevKit中汇编翻译特性的应用和实现

电子说

1.2w人已加入

描述

5月29日,由InfoQ 主办的全球顶级技术盛会—QCon全球软件开发大会2021北京站正式开启,来自国内外知名企业百余位技术专家,数千名资深工程师、技术管理者、架构师共同分享和交流了当下新技术在行业应用中的最新实践,全方位探讨行业的最新发展趋势。华为鲲鹏计算产品部部长颜叶在大会发表主题演讲,介绍鲲鹏全栈开放创新进展;鲲鹏技术专家团队也分别在技术专场中分享关于鲲鹏开发套件DevKit的各大使能工具,帮助开发者了解软件迁移和调优的关键技术,助力鲲鹏架构的行业应用落地。

鲲鹏全栈开放创新       共铸产业繁荣生态

华为鲲鹏计算产品部部长颜叶在QCon主题演讲中表示,处理器是计算产业的“心”,基础软件就是计算产业的“魂”,华为秉持“硬件开放、软件开源、使能伙伴、发展人才”的策略构建鲲鹏计算生态。经过一年半左右时间的建设,鲲鹏在端到端构筑了产业竞争力,加速区域产业落地,同时在面向政府、金融、电力、大企业等多个国计民生行业已经实现了规模部署,支撑多地数字经济发展。截至目前,全国已落地24家生态创新中心,12家OEM整机伙伴,2700多家合作伙伴,5700多个解决方案认证,40万鲲鹏开发者。  

鲲鹏产业生态正在蓬勃发展,为了进一步激发行业创新、促进人才培养、加速产业融合,颜叶说,鲲鹏应用创新大赛2021已经启动报名,全产业的开发者均可参与本次比赛,共同基于鲲鹏技术共同打造鲲鹏全栈解决方案,实现技术与商业创新应用。

华为鲲鹏计算产品部部长颜叶

专家团队深度解析       鲲鹏一站式开发套件DevKit

在各行业基于鲲鹏计算产业生态加速数字化转型的道路上,由传统架构向鲲鹏 ARM 平台的软件迁移是一个非常关键的环节,直接决定了鲲鹏生态应用水平的高低。为了帮助开发人员更快熟悉鲲鹏平台,更好地完成基于传统架构的应用服务迁移工作,鲲鹏发布了开发使能套件DevKit。本次鲲鹏技术专家在 “鲲鹏平台软件迁移和调优实践”专场技术论坛中,为开发者深度解读鲲鹏一站式开发套件DevKit的工具套件和关键技术。

1 鲲鹏DevKit中汇编翻译特性的应用和实现

编译器无法编译源码中其它平台的汇编代码,因此如何高效识别x86中的汇编代码并快速迁移到鲲鹏平台上,是鲲鹏生态快速建设和拓展亟需解决的一个技术课题。华为鲲鹏编译技术专家乐永年表示,为了应对自动识别和汇编代码翻译等一系列的技术难题,鲲鹏汇编总体设计方案为“W+二”。

“W”为四个步骤,分别是汇编注解、局部异构平台反编译、编译优化和代码生成,汇编注解解决了汇编样式多样的问题,局部异构平台反编译解决平台差异问题,代码质量由编译器的编译优化和代码生成完成。

“二”是两条快速翻译路径,一条是基于规则的快速指令翻译,用于简单嵌入汇编翻译,另一条是编译器里基于向量化语义函数的SIMD指令翻译。通过这个方案,鲲鹏DevKit中的代码迁移工具能快速实现x86汇编代码到鲲鹏平台的自动迁移,保障应用迁移高效率完成。

华为鲲鹏编译技术专家乐永年

2 加速库在业务性能调优中的应用

鲲鹏加速库是基于鲲鹏微架构的加速技术构建的。华为鲲鹏数学库架构师薛永辉介绍说,鲲鹏基于行业常用的软件库,通过软硬协同、算法创新,打破性能瓶颈,充分释放鲲鹏处理器的澎湃算力。目前已经覆盖了压缩库、加解密库、系统库、媒体库、数学库和存储库等常用的基础软件库,为鲲鹏应用提供极致的性能保障。

目前DevKit加速库插件支持加速函数一键识别、智能联想,支撑应用快速集成鲲鹏高性能软件库,为应用迁移后的性能保驾护航。

华为鲲鹏数学库架构师薛永辉

3 鲲鹏编译优化技术探索与软件优化实践

毕昇编译器2020年正式发布上线,基于华为编译实验室长期技术积累和项目实践,针对鲲鹏进行深度优化,力求解决目前开发者的痛点,充分释放鲲鹏算力优势:

高性能编译算法。编译深度优化,增强多核并行化,自动矢量化等,大幅提升指令和数据呑吐量。

加速指令集。结合NEON/SVE等内嵌指令技术,深度优化指令编译和运行时库,发挥鲲鹏架构最佳表现。

AI迭代调优。内置AI自学习模型,自动优化编译配置,迭代提升程序性能,完成最优编译。

华为毕昇编译器架构师魏伟表示,毕昇编译器结合鲲鹏架构特点,针对不同场景,不同应用特点,使用不同的编译优化手段,通过深度优化指令编译,引入或增强优化算法等,发挥鲲鹏极致算力。

华为毕昇编译器架构师魏伟

4 动态二进制翻译技术原理及应用实践

ExaGear利用动态二进制翻译技术,结合动态二进制优化能力,能够稳定支持无源码的ARM32和x86存量业务运行在鲲鹏平台上。ExaGear主要具有以下优势:

代码0修改。直接加载被翻译执行的二进制应用程序文件,用户无需重新编译或修改二进制应用程序,无需对业务应用进行额外的二次开发,最小化业务迁移成本。

业务无损。经过翻译执行的业务逻辑与原生业务行为一致,保证翻译过程自身透明性,翻译工具无需解释业务逻辑,不直接处理用户数据。

性能领先。集成高性能编译技术,实现一种指令集到另一种指令集的跨指令体系结构实时转换,识别热点指令并在线深度优化热点指令翻译过程,达到指令翻译性能业界领先。

华为二进制翻译技术专家吕研冬博士介绍,开发者使用ExaGear,通过无源码应用迁移,大幅降低了存量业务部署门槛,让用户以最低的人力和时间成本平滑迁移业务,实现了应用业务快速迁移到鲲鹏。

华为二进制翻译技术专家吕研冬博士

QCon首日,华为语言虚拟机技术专家彭成寒也带来了毕昇JDK在大数据场景中的优化实践技术分享。毕昇 JDK 是华为基于 OpenJDK 开发的商用 JDK 版本,是一个高性能、可用于生产环境的 OpenJDK 发行版。毕昇 JDK 已经运行在华为内部 500 多个产品上,积累了大量使用场景和 Java 开发者反馈的问题和诉求,并在 ARM 架构上进行了性能优化,毕昇 JDK 在大数据等场景下可以获得更好的性能。

华为语言虚拟机技术专家彭成寒   以实践驱动技术,技术驱动创新、创新驱动发展,华为围绕着硬件使能、基础使能、应用使能和开发使能层持续投入,通过全栈开放开源,构建鲲鹏计算生态。未来,华为将会把更多优秀的技术推向市场,为企业和开发者提供完备、易用和高效的工具链,加速鲲鹏生态繁荣和产业成功。

原文标题:QCon北京站—鲲鹏全栈开放创新,构筑极致性能、使能极简开发

文章出处:【微信公众号:华为计算】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分