您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[华为]:鲲鹏一码多芯、同辕开发技术白皮书 - 发现报告

鲲鹏一码多芯、同辕开发技术白皮书

信息技术2025-05-15-华为张***
AI智能总结
查看更多
鲲鹏一码多芯、同辕开发技术白皮书

技术白皮书 商标声明 ,,是华为技术有限公司商标或者注册商标,在本手册中以及本手册描述的产品中,出现的其它商标,产品名称,服务名称以及公司名称,由其各自的所有人拥有。 免责声明 本文档可能含有预测信息,包括但不限于有关未来的财务、运营、产品系列、新技术等信息。由于实践中存在很多不确定因素,可能导致实际结果与预测信息有很大的差别。因此,本文档信息仅供参考,不构成任何要约或承诺,华为不对您在本文档基础上做出的任何行为承担责任。华为可能不经通知修改上述信息,恕不另行通知。 01鲲鹏一码多芯、同辕开发的机遇和挑战01 04 行业案例 4.1.1恒生电子:基于鲲鹏同辕开发经纪场外业务系统,让证券数据处理更高效914.1.2宇信科技:基于鲲鹏同辕开发金融软件,让金融信息处理更高效93 4.2电信964.2.1浩瀚深度:鲲鹏赋能DPI采集系统,网络数据可视化处理更加高效964.2.2恒安嘉新:基于鲲鹏同辕开发安全采集分析平台,保障企业信息系统安全稳定运行99 02鲲鹏一码多芯、同辕开发的核心技术理念03 4.3.1超图软件:基于鲲鹏同辕开发地理信息系统,让自燃资源评估更高效1014.3.2深圳防灾减灾技术研究院:鲲鹏同辕开发助力地震观测数据高效处理103 4.4.1广州海颐:基于鲲鹏同辕开发高性能、高可靠电力系统软件,加速电网数字化转型1054.4.2国能信控:基于鲲鹏同辕开发新能源计算平台,为电力系统提供高效算力支撑107 3.1代码开发阶段063.1.1代码开发063.1.2代码优化363.1.3编译383.1.4调试403.1.5调优45 4.5.1卫宁健康:基于鲲鹏同辕开发新一代医疗信息系统WiNEX,让医疗服务更便利1094.5.2东华软件:构建鲲鹏医疗经营管理系统,让医院运作更有序111 3.2流水线阶段70 4.6.1星环科技:基于鲲鹏同辕开发大数据基础软件,让企业数据流转更快捷1134.6.2深信服:联合鲲鹏共同推进企业级分布式存储EDS同辕开发创新实践,让数据管理更可靠115 3.2.1门禁检查703.2.2编译构建763.2.3调优773.2.4测试783.2.5版本发布79 3.3 OS底座(openEuler系操作系统)803.3.1 openEuler简介803.3.2 openEuler基础能力813.3.3 openEuler工具和社区服务85 鲲鹏计算产业聚焦计算架构创新和开源基础软件的研发,致力于推动鲲鹏生态发展。通过战略性、长期性的研发投入,吸纳全球计算产业的优秀人才和先进技术,持续推进全栈计算技术的创新发展,加快构筑面向多样化计算的全球开源体系与产业标准。基于“硬件开放、软件开源、使能伙伴、发展人才”的策略推动鲲鹏计算产业发展。 目前,鲲鹏软硬件联合创新已覆盖国计民生核心场景,主流伙伴核心应用已迁移到鲲鹏,鲲鹏生态进入快速发展期。当前阶段,鲲鹏和 x86 多平台版本并行迭代成为主要需求,由于两个架构开发生态的差异,如果采用两套流水线分别开发两套代码,则会带来很多重复开发验证的工作,并且两个版本分别开发、构建和维护效率低。因此,鲲鹏创新性的提出鲲鹏一码多芯、同辕开发(下文简称为:同辕开发):基于鲲鹏硬件 +openEuler+ 鲲鹏 DevKit+ 鲲鹏 BoostKit,实现 1 套代码 +1 条流水线 + 多平台版本,助力伙伴持续且首发性能领先的商用版本。 鲲鹏同辕开发的核心技术理念: 基于鲲鹏硬件+openEuler+鲲鹏开发套件DevKit+鲲鹏应用使能套件BoostKit,实现1套代码+1条流水线构建多平台版本,效率更高、性能更优。 鲲鹏同辕开发的核心技术理念 鲲鹏同辕开发包含代码开发阶段和流水线阶段: »代码开发阶段:通过鲲鹏 DevKit、BoostKit 开发代码,充分应用鲲鹏架构优势,性能更优。 »流水线阶段:鲲鹏 DevKit 以命令行方式 1 小时接入 CI/CD,便捷发布多平台版本。 »极简融入 & 高效发布:DevKit 同辕开发插件 1 小时接入两大主流(Jenkins、GitLab)CI/CD 流水线,高效提升鲲鹏流水线搭建及版本发布效率。 »鲲鹏亲和 & 极致性能:鲲鹏流水线使能鲲鹏亲和分析工具、编译器、性能工具等,实现应用性能提升。 »一码多芯:一套代码可以支持多个 CPU 平台; * 同辕开发:辕是古代马车前面控制方向的直木,代表着应用软件开发的方向,是为了满足客户对产品和解决方案的需求,支撑客户业务的竞争力和创新;同时也代表着应用开发流水线,支撑软件版本持续发布;当单独使用“同辕开发”时,还同“源”,代表同一套源码构建多平台版本。 3.1代码开发阶段 鲲鹏同辕开发能力介绍 3.1.1.1代码开发介绍 鲲鹏同辕开发在代码开发阶段提供了 DevKit 应用开发工具和 BoostKit 应用使能套件,可通过启发式编程及多场景化 SDK 提供的示例 Demo 和文档,有效提升鲲鹏同辕开发效率。 3.1.1.2应用开发工具 应用开发工具支持创建鲲鹏应用工程,支持 C/C++ 开发语言,编码时能够自动匹配鲲鹏加速库函数字典、智能提示、高亮、联想字典中可以替换的库和函数。支持以下功能: »鲲鹏应用工程:只需要在创建鲲鹏应用工程页面进行简单的输入和选择,便可以实现自动化构建鲲鹏应用工程,包括空工程、通用计算应用工程、安全计算应用工程、高性能计算应用工程、DPAK 应用工程和数据 IO 应用工程。 »字典管理:支持加速库函数字典管理,可线上(自动)和线下更新。 »编程辅助:支持鲲鹏加速库函数的悬浮提示、函数搜索,支持 Coding 时自动联想和高亮鲲鹏加速库优化后的相关函数。 应用开发工具,详细介绍与最新内容请参见鲲鹏社区 → 鲲鹏开发套件 DevKit → 开发,详情可扫描下方二维码。 鲲鹏应用工程 步骤 3工程创建成功后,展示结果。 提供场景化的鲲鹏应用工程模板,快速辅助工程环境构建、配置检查、依赖下载、构建文件生成等。步骤 1创建鲲鹏应用工程(通用计算应用工程,界面截图以 VSCode 环境为例)。图3-2创建工程 步骤 4单击“打开工程”,查看工程样例代码。 图3-5查看样例代码 步骤 2部署 SDK。 图3-3部署SDK 步骤 4设置跳过证书验证的网站,设置后的网站无需进行证书验证。单击“添加网站”,在弹框中输入网站地址。图3-9添加网站 字典管理 支持加速库函数字典管理,可线上(自动)和线下更新。 步骤 1当用户实际网络环境无法连接外网时,可上传本地字典文件。 鼠标移动到“字典导入”旁的,单击“下载”下载字典文件并在本地字典文件框内上传。? 图3-6上传本地字典文件 图3-10输入网站地址 步骤 2开启加速库提示,开启后,用户编码过程中将会自动联想、补齐与字典中匹配的库和函数,方便用户下载使用。 图3-7开启加速库提示 ---- 结束 编程辅助 支持鲲鹏加速库函数的悬浮提示、函数搜索,支持编码时智能联想和高亮鲲鹏加速库优化后的相关函数。步骤 1在代码编辑区输入代码,工具会根据输入的内容自动联想函数或补全代码。 步骤 3开启编译选项智能联想,开启后,工具将会根据用户选择的编译器版本进行智能联想,可在编译器版本下拉列表中选择合适的编译器版本。 图3-8开启编译选项智能联想 说明 用户构建脚本时,工具将会根据用户选择的 GCC 版本或 BiShengCompiler 版本进行智能联想,BiShengCompiler 版本范围在 2.1.0~4.2.0,GCC 版本范围在 4.8.5~12.3.1。 步骤 2通过代码编辑区右上角的(放大镜),在搜索框输入关键字,可实现函数搜索。图3-12函数搜索 获取最新的鲲鹏 BoostKit 应用使能套件和详细的用户指南,请参见鲲鹏应用使能套件BoostKit,详情可扫描下方二维码。 ---- 结束 3.1.1.3鲲鹏BoostKit应用使能套件 1)鲲鹏BoostKit应用使能套件简介 鲲鹏 BoostKit 应用使能套件,基于鲲鹏硬件、基础软件和应用软件的全栈优化,提供高性能开源组件、基础加速软件包和应用加速软件包,使能应用极致性能,其针对大数据、分布式存储、数据库、虚拟化和 ARM 原生等场景进行了深度优化鲲鹏架构特性,如内存管理、计算调度等方面的技术优势,通过预置的高性能库和框架,赋能开发者轻松构建适应鲲鹏架构的高性能应用。在同一个构建流程中,当集成 BoostKit 后,基于鲲鹏架构的目标软件包能够获益较大的性能提升。 2)鲲鹏BoostKit应用加速 ARM原生 鲲鹏 BoostKit 提供性能倍增的应用加速软件包,使能数据处理极致性能、数据访问极致高效和云手机极致体验。 鲲鹏 BoostKitARM 原生利用 ARM 指令集同构优势,支持移动应用无损上云,同时将多年技术积累浓缩到 Kbox云手机容器、指令流引擎、视频流引擎核心能力等组件,形成了云手机 Turbo 套件,降低了开发难度,提升整机的密度,降低云手机单路成本,其中 HostOS 支持 Ubuntu 和 openEuler,GuestOS 支持 android-9.0.0_r55 和android-11.0.0_r48,用户可以基于云手机 Turbo 套件进行二次开发,从而实现云手机极致的性能和业务体验。 鲲 鹏 BoostKit 应 用 加 速 软 件 包, 详 细 介 绍 与 最 新 内 容 请 参 见鲲 鹏 应 用 使 能 套 件BoostKit→应用加速软件包,详情可扫描右方二维码。 ExaGear AArch32指令翻译软件 ExaGearAArch32 指令翻译软件为鲲鹏服务器提供 AArch32 特性,基于鲲鹏服务器在 ARM 原生场景下能够完全兼容 AArch32 的应用,保障 AArch32V8.0 指令应用 100% 兼容。同时也支持 pre-translator 特性,优化翻译后的 APP 启动时间,提升客户体验。 Kbox云手机容器 Kbox 云手机容器提供了软件定义手机的基础能力,其基于鲲鹏服务器,在 Docker 容器技术和 Android 开源项目(AOSP)基础上,实现了将 GPU 设备直通到容器的轻量级设备仿真层架构方案,提供了基于 Android 系统的云手机容器参考方案。可实现在鲲鹏服务器支持 100 路 720p@30fps 的 Kbox 云手机容器高并发(以托管场景为例,云手机并发密度取决于客户云手机实际应用),具有高密度、高兼容性等商业价值。 视频流引擎 而提升大数据分析的性能。Spark 使用 OmniRuntime 加速特性执行 SQL 计算,相比原生性能提升 20%~40%,具体包括组件如下: 视频流云手机方案基于视频流的端云协同引擎,提供了低时延的云手机画面同步能力,支持 H.264 和 H.265 硬编码,在画质相当的情况下,可实现 H.265 编码带宽减少 30%+,其实现原理是利用云端强大的能力将应用和游戏的运行、渲染成最终的画面,并进行视频的压缩流化后,发送到终端播放显示。视频流引擎支持视频编码能力、视频解码播放能力、云手机图像截屏能力、触控和音频抓取 / 播放能力等核心功能,客户可以基于这些引擎进行二次开发,实现在移动终端上进行操控应用和游戏等操作。云端采用专业显卡进行渲染,可以获取高画质的业务体验;对终端的要求极低,只要求有视频解码能力即可;提供统一 API,降低二次开发难度,易集成。 »OmniData算子下推 适用于存算分离场景或大规模存算融合场景,支持 Spark3.0.0/3.1.1、Hive3.1.0(Tez0.10.0),是一种将大数据引擎的算子下推到存储节点或卸载节点的服务,从而实现了近数据计算,减少了网络带宽,将该特性集成到Spark 后,基于 TPC-H 测试用例 12 条算子下推的 SQL 性能平均提升 40