01鲲鹏原生开发的机遇和挑战02鲲鹏原生开发的核心技术理念03鲲鹏原生开发能力介绍3.1代码开发阶段3.1.1代码开发3.1.2代码优化3.1.3编译3.1.4调试3.1.5调优3.2流水线阶段3.2.1门禁检查3.2.2编译构建3.2.3调优3.2.4测试3.2.5版本发布3.3 OS底座(openEuler系操作系统)3.3.1 openEuler简介3.3.2 openEuler基础能力3.3.3 openEuler工具和社区服务 01030506062830323761616667686970707175 04 行业案例4.1金融4.1.1恒生电子:基于鲲鹏原生开发经纪场外业务系统,让证券数据处理更高效4.1.2宇信科技:基于鲲鹏原生开发金融软件,让金融信息处理更高效4.2电信4.2.1浩瀚深度:鲲鹏原生赋能DPI采集系统,网络数据可视化处理更加高效4.2.2恒安嘉新:基于鲲鹏原生开发安全采集分析平台,保障企业信息系统安全稳定运行4.3政府4.3.1超图软件:基于鲲鹏原生开发地理信息系统,让自燃资源评估更高效4.3.2深圳防灾减灾技术研究院:鲲鹏原生助力地震观测数据高效处理4.4电力4.4.1广州海颐:基于鲲鹏原生开发高性能、高可靠电力系统软件,加速电网数字化转型4.4.2国能信控:基于鲲鹏原生开发新能源计算平台,为电力系统提供高效算力支撑4.5医疗4.5.1卫宁健康:基于鲲鹏原生开发新一代医疗信息系统WiNEX,让医疗服务更便利4.5.2东华软件:构建鲲鹏原生医疗经营管理系统,让医院运作更有序4.6水平软件4.6.1星环科技:基于鲲鹏原生大数据基础软件,让企业数据流转更快捷4.6.2深信服:联合鲲鹏共同推进企业级分布式存储EDS原生开发创新实践,让数据管理更可靠105 808181838686899191939595979999101103103 鲲鹏原生开发的机遇和挑战 鲲鹏计算产业聚焦计算架构创新和开源基础软件的研发,致力于推动鲲鹏生态发展。通过战略性、长期性的研发投入,吸纳全球计算产业的优秀人才和先进技术,持续推进全栈计算技术的创新发展,加快构筑面向多样化计算的全球开源体系与产业标准。基于“硬件开放、软件开源、使能伙伴、发展人才”的策略推动鲲鹏计算产业发展。目前,鲲鹏软硬件联合创新已覆盖国计民生核心场景,主流伙伴核心应用已迁移到鲲鹏,鲲鹏生态进入快速发展期。当前阶段,鲲鹏和x86多平台版本并行迭代成为主要需求,由于两个架构开发生态的差异,如果采用两套流水线分别开发两套代码,则会带来很多重复开发验证的工作,并且两个版本分别开发、构建和维护效率低。因此,鲲鹏创新性的提出鲲鹏原生开发:基于鲲鹏硬件+openEuler+鲲鹏DevKit+鲲鹏BoostKit,实现1套代码+1条流水线+多平台版本,助力伙伴持续且首发性能领先的商用版本。 03 /鲲鹏原生开发技术白皮书鲲鹏原生开发的核心技术理念 鲲鹏原生开发包含代码开发阶段和流水线阶段:»代码开发阶段:通过鲲鹏DevKit、BoostKit开发代码,充分应用鲲鹏架构优势,性能更优。»流水线阶段:鲲鹏DevKit以命令行方式1小时接入CI/CD,便捷发布多平台版本。»极简融入&高效发布:DevKit原生开发插件1小时接入两大主流(Jenkins、GitLab)CI/CD流水线,高效提升鲲鹏流水线搭建及版本发布效率。»鲲鹏亲和&极致性能:鲲鹏流水线使能鲲鹏亲和分析工具、编译器、性能工具等,实现应用性能提升。»多架构兼容:1套流水线同时支持多样性算力版本构建及测试。鲲鹏原生开发的核心技术理念:基于鲲鹏硬件+openEuler+鲲鹏开发套件DevKit+鲲鹏应用使能套件BoostKit,实现1套代码+1条流水线构建多平台版本,效率更高、性能更优。图2-1核心技术理念代码开发•场景化SDK•启发式编程•BoostKit应用使能•鲲鹏亲和分析门禁检查鲲鹏版本编译构建X86版本编译构建•应用迁移•亲和分析•编码规范检查•毕昇编译器•毕昇JDK•GCC for openEuler鲲鹏兼容&亲和,性能5%↑CFGO/LTO/自动向量化/指令流水优化,性能10%↑ 鲲鹏原生开发技术白皮书/ 04代码优化编译调试调优•毕昇编译器•毕昇JDK•GCC for openEuler•鲲鹏调试器•系统性能分析•Java性能分析•系统诊断鲲鹏平台调优X86平台调优鲲鹏平台测试X86平台测试鲲鹏版本发布X86版本发布•自动反馈优化•测试框架•测试工具•测试样例•病毒扫描应用编译调试,性能5%~10%↑多样性算力测试套件,效率20%↑病毒扫描,效率5%↑ 代码开发阶段流水线阶段 05 /鲲鹏原生开发技术白皮书鲲鹏原生开发能力介绍 3.1代码开发阶段图3-1代码开发阶段代码开发代码优化•场景化SDK•启发式编程•BoostKit应用使能•鲲鹏亲和分析通过鲲鹏DevKit/BoostKit开发代码:充分应用鲲鹏架构优势,性能更优3.1.1.2应用开发工具应用开发工具支持创建鲲鹏应用工程,支持C/C++开发语言,编码时能够自动匹配鲲鹏加速库函数字典、智能提示、高亮、联想字典中可以替换的库和函数。支持以下功能:»鲲鹏应用工程:只需要在创建鲲鹏应用工程页面进行简单的输入和选择,便可以实现自动化构建鲲鹏应用工程,包括空工程、通用计算应用工程、安全计算应用工程、高性能计算应用工程、DPAK应用工程和数据IO应用工程。»字典管理:支持加速库函数字典管理,可线上(自动)和线下更新。»编程辅助:支持鲲鹏加速库函数的悬浮提示、函数搜索,支持Coding时自动联想和高亮鲲鹏加速库优化后的相关函数。应用开发工具,详细介绍与最新内容请参见鲲鹏社区→鲲鹏开发套件DevKit→开发,详情可扫描下方二维码。3.1.1.1代码开发介绍鲲鹏原生开发在代码开发阶段提供了DevKit应用开发工具和BoostKit应用使能套件,可通过启发式编程及多场景化SDK提供的示例Demo和文档,有效提升鲲鹏原生开发效率。3.1.1代码开发 鲲鹏原生开发技术白皮书/ 06编译调试调优•毕昇编译器•毕昇JDK•GCC for openEuler•鲲鹏调试器•系统性能分析•Java性能分析•系统诊断 07 /鲲鹏原生开发技术白皮书鲲鹏应用工程提供场景化的鲲鹏应用工程模板,快速辅助工程环境构建、配置检查、依赖下载、构建文件生成等。步骤1创建鲲鹏应用工程(通用计算应用工程,界面截图以VS Code环境为例)。图3-2创建工程步骤2部署SDK。图3-3部署SDK 步骤3工程创建成功后,展示结果。图3-4工程创建成功----结束步骤4单击“打开工程”,查看工程样例代码。图3-5查看样例代码 09 /鲲鹏原生开发技术白皮书步骤2开启加速库提示,开启后,用户编码过程中将会自动联想、补齐与字典中匹配的库和函数,方便用户下载使用。图3-7开启加速库提示步骤3开启编译选项智能联想,开启后,工具将会根据用户选择的编译器版本进行智能联想,可在编译器版本下拉列表中选择合适的编译器版本。图3-8开启编译选项智能联想说明用户构建脚本时,工具将会根据用户选择的GCC版本或BiSheng Compiler版本进行智能联想,BiSheng Compiler版本范围在2.1.0~4.0.0,GCC版本范围在4.8.5~10.3.1。字典管理支持加速库函数字典管理,可线上(自动)和线下更新。步骤1当用户实际网络环境无法连接外网时,可上传本地字典文件。鼠标移动到“字典导入”旁的图3-6上传本地字典文件 ,单击“下载”下载字典文件并在本地字典文件框内上传。? 鲲鹏原生开发技术白皮书/ 10步骤4设置跳过证书验证的网站,设置后的网站无需进行证书验证。单击“添加网站”,在弹框中输入网站地址。图3-9添加网站图3-10输入网站地址----结束编程辅助支持鲲鹏加速库函数的悬浮提示、函数搜索,支持编码时智能联想和高亮鲲鹏加速库优化后的相关函数。步骤1在代码编辑区输入代码,工具会根据输入的内容自动联想函数或补全代码。图3-11自动联想函数 11 /鲲鹏原生开发技术白皮书3.1.1.3鲲鹏BoostKit应用使能套件1)鲲鹏BoostKit应用使能套件简介鲲鹏BoostKit应用使能套件,基于鲲鹏硬件、基础软件和应用软件的全栈优化,提供高性能开源组件、基础加速软件包和应用加速软件包,使能应用极致性能,其针对大数据、分布式存储、数据库、虚拟化和ARM原生等场景进行了深度优化鲲鹏架构特性,如内存管理、计算调度等方面的技术优势,通过预置的高性能库和框架,赋能开发者轻松构建适应鲲鹏架构的高性能应用。在同一个构建流程中,当集成BoostKit后,基于鲲鹏架构的目标软件包能够获益较大的性能提升。----结束步骤2通过代码编辑区右上角的(放大镜),在搜索框输入关键字,可实现函数搜索。图3-12函数搜索 鲲鹏原生开发技术白皮书/ 12获取最新的鲲鹏BoostKit应用使能套件和详细的用户指南,请参见鲲鹏应用使能套件BoostKit,详情可扫描下方二维码。 13 /鲲鹏原生开发技术白皮书图3-15鲲鹏BoostKit场景化应用加速能力介绍2)鲲鹏BoostKit应用加速鲲鹏BoostKit提供性能倍增的应用加速软件包,使能数据处理极致性能、数据访问极致高效和云手机极致体验。鲲 鹏BoostKit应 用 加 速 软 件 包, 详 细 介 绍 与 最 新 内 容 请 参 见鲲 鹏 应 用 使 能 套 件BoostKit→应用加速软件包,详情可扫描右方二维码。图3-14鲲鹏BoostKit场景化基础加速能力介绍大数据分布式存储openEuler和毕昇JDK性能优化压缩算法存储算法加速库存储维护工具库KAE使能SPDK大数据分布式存储EC Turbo智能写CacheIO直通数据压紧元数据加速Ucache智能读缓存BoostIORDMA网络加速OmniRuntimeBoostKit应用加速:提供性能倍增的应用加速能力 BoostKit场景化基础加速特性全景图数据库虚拟化ARM原生NVMe SSD原子写虚拟化调度优化ExaGear AArch32指令翻译软件Gazelle网络优化OVS流表网卡加速vKAE鲲鹏GCC CFGO反馈优化高性能云盘优化vCPU热插拔KAEzip压缩解压缩优化虚拟化DPU卸载MPAM插件场景化基础加速特性BoostKit应用加速组件全景图数据库虚拟化ARM原生MySQL可插拔在线向量化分析引擎Kbox云手机容器CRC32指令优化视频流引擎MySQL NUMA调度优化指令流引擎机器学习算法MySQL可插拔线程池MySQL并行查询优化MySQL细粒度锁优化MySQL无锁优化 ARM原生鲲鹏BoostKit ARM原生利用ARM指令集同构优势,支持移动应用无损上云,同时将多年技术积累浓缩到Kbox云手机容器、指令流引擎、视频流引擎核心能力等组件,形成了云手机Turbo套件,降低了开发难度,提升整机的 密 度, 降 低 云 手 机 单 路 成 本, 其 中HostOS支 持Ubuntu和openEuler,GuestOS支 持android-9.0.0_r55和android-11.0.0_r48,用户可以基于云手机Turbo套件进行二次开发,从而实现云手机极致的性能和业务体验。图3-16鲲鹏BoostKit ARM原生云手机整体架构ExaGear AArch32指令翻译软件ExaGear AArch32指令翻译软件为鲲鹏服务器提供AArch32特性,基于鲲鹏服务器在ARM原生场景下能够完全兼容AArch32的应用,保障AArch32 V8.0指令应用100%兼容。同时也支持pre-translator特性,优化翻译后的APP启动时间,提升客户体验。Kbox云手机容器Kbox云手机容器提供了软件定义手机的基础能力,其基于鲲鹏服务器,在Docker容器技术和Android开源项目(AOSP)基础上,实现了将GPU设备直通到容器的轻量级设备仿真层架构方案,提供了基于Andr