华为:鲲鹏原生开发技术白皮书(6.0修订版)
17.64 MB
112 页
0 下载
36 浏览
0 评论
0 收藏
| 语言 | 格式 | 评分 |
|---|---|---|
中文(简体) | .pdf | 3 |
| 概览 | ||
鲲鹏原生开发 技术白皮书 01 鲲鹏原生开发的机遇和挑战 01 02 鲲鹏原生开发的核心技术理念 03 03 鲲鹏原生开发能力介绍 05 3.1 代码开发阶段 06 3.1.1 代码开发 06 3.1.2 代码优化 28 3.1.3 编译 30 3.1.4 调试 32 3.1.5 调优 37 3.2 流水线阶段 61 3.2.1 门禁检查 61 3.2.2 编译构建 66 3.2.3 调优 67 3.2.4 测试 68 3.2.5 版本发布 69 3.3 OS底座(openEuler系操作系统) 70 3.3.1 openEuler简介 70 3.3.2 openEuler基础能力 71 3.3.3 openEuler工具和社区服务 75 04 行业案例 80 4.1 金融 81 4.1.1 恒生电子:基于鲲鹏原生开发经纪场外业务系统,让证券数据处理更高效 81 4.1.2 宇信科技:基于鲲鹏原生开发金融软件,让金融信息处理更高效 83 4.2 电信 86 4.2.1 浩瀚深度:鲲鹏原生赋能 DPI 采集系统,网络数据可视化处理更加高效 86 4.2.2 恒安嘉新:基于鲲鹏原生开发安全采集分析平台,保障企业信息系统安全稳定运行 89 4.3 政府 91 4.3.1 超图软件:基于鲲鹏原生开发地理信息系统,让自燃资源评估更高效 91 4.3.2 深圳防灾减灾技术研究院:鲲鹏原生助力地震观测数据高效处理 93 4.4 电力 95 4.4.1 广州海颐:基于鲲鹏原生开发高性能、高可靠电力系统软件,加速电网数字化转型 95 4.4.2 国能信控:基于鲲鹏原生开发新能源计算平台,为电力系统提供高效算力支撑 97 4.5 医疗 99 4.5.1 卫宁健康:基于鲲鹏原生开发新一代医疗信息系统WiNEX,让医疗服务更便利 99 4.5.2 东华软件:构建鲲鹏原生医疗经营管理系统,让医院运作更有序 101 4.6 水平软件 103 4.6.1 星环科技:基于鲲鹏原生大数据基础软件,让企业数据流转更快捷 103 4.6.2 深信服:联合鲲鹏共同推进企业级分布式存储EDS原生开发创新实践,让数据管理更可靠 105 01 鲲鹏原生开发的 机遇和挑战 鲲鹏计算产业聚焦计算架构创新和开源基础软件的研发,致力于推动鲲鹏生态发展。 通过战略性、长期性的研发投入,吸纳全球计算产业的优秀人才和先进技术,持续 推进全栈计算技术的创新发展,加快构筑面向多样化计算的全球开源体系与产业标 准。基于“硬件开放、软件开源、使能伙伴、发展人才”的策略推动鲲鹏计算产业发展。 目前,鲲鹏软硬件联合创新已覆盖国计民生核心场景,主流伙伴核心应用已迁移到鲲 鹏,鲲鹏生态进入快速发展期。当前阶段,鲲鹏和 x86 多平台版本并行迭代成为主 要需求,由于两个架构开发生态的差异,如果采用两套流水线分别开发两套代码,则 会带来很多重复开发验证的工作,并且两个版本分别开发、构建和维护效率低。因 此,鲲鹏创新性的提出鲲鹏原生开发:基于鲲鹏硬件 +openEuler+ 鲲鹏 DevKit+ 鲲鹏 BoostKit,实现 1 套代码 +1 条流水线 + 多平台版本,助力伙伴持续且首发性能领先 的商用版本。 03 / 鲲鹏原生开发技术白皮书 鲲鹏原生开发的核心技术理念 02 鲲鹏原生开发的 核心技术理念 鲲鹏原生开发技术白皮书 / 04 鲲鹏原生开发的核心技术理念 鲲鹏原生开发包含代码开发阶段和流水线阶段: » 代码开发阶段:通过鲲鹏 DevKit、BoostKit 开发代码,充分应用鲲鹏架构优势,性能更优。 » 流水线阶段:鲲鹏 DevKit 以命令行方式 1 小时接入 CI/CD,便捷发布多平台版本。 » 极简融入 & 高效发布:DevKit 原生开发插件 1 小时接入两大主流(Jenkins、GitLab)CI/CD 流水线,高效提升 鲲鹏流水线搭建及版本发布效率。 » 鲲鹏亲和 & 极致性能:鲲鹏流水线使能鲲鹏亲和分析工具、编译器、性能工具等,实现应用性能提升。 » 多架构兼容:1 套流水线同时支持多样性算力版本构建及测试。 鲲鹏原生开发的核心技术理念: 基于鲲鹏硬件 +openEuler+ 鲲鹏开发套件 DevKit+ 鲲鹏应用使能套件 BoostKit, 实现 1 套代码 +1 条流水线构建多平台版本,效率更高、性能更优。 图 2-1 核心技术理念 代 码 开 发 阶 段 代码开发 代码优化 编译 调试 调优 • 场景化 SDK • 启发式编程 • BoostKit 应用使能 • 鲲鹏亲和分析 • 毕昇编译器 • 毕昇 JDK • GCC for openEuler • 鲲鹏调试器 • 系统性能分析 • Java 性能分析 • 系统诊断 流 水 线 阶 段 门禁检查 鲲鹏版本编译构建 X86 版本编译构建 鲲鹏平台调优 X86 平台调优 鲲鹏平台测试 X86 平台测试 鲲鹏版本发布 X86 版本发布 • 应用迁移 • 亲和分析 • 编码规范检查 • 毕昇编译器 • 毕昇 JDK • GCC for openEuler • 自动反馈优化 • 测试框架 • 测试工具 • 测试样例 • 病毒扫描 鲲鹏兼容 & 亲和, 性能 5%↑ CFGO/LTO/ 自动向量化 / 指 令流水优化,性能 10% ↑ 应用编译调试, 性能 5%~10% ↑ 多样性算力测试套件, 效率 20% ↑ 病毒扫描, 效率 5% ↑ 05 / 鲲鹏原生开发技术白皮书 鲲鹏原生开发能力介绍 03 鲲鹏原生开发 能力介绍 鲲鹏原生开发技术白皮书 / 06 鲲鹏原生开发能力介绍 3.1 代码开发阶段 图 3-1 代码开发阶段 代码开发 代码优化 编译 调试 调优 • 场景化 SDK • 启发式编程 • BoostKit 应用使能 • 鲲鹏亲和分析 • 毕昇编译器 • 毕昇 JDK • GCC for openEuler • 鲲鹏调试器 • 系统性能分析 • Java 性能分析 • 系统诊断 通过鲲鹏 DevKit/BoostKit 开发代码:充分应用鲲鹏架构优势,性能更优 3.1.1.2 应用开发工具 应用开发工具支持创建鲲鹏应用工程,支持 C/C++ 开发语言,编码时能够自动匹配鲲鹏加速库函数字典、智能提示、 高亮、联想字典中可以替换的库和函数。支持以下功能: » 鲲鹏应用工程:只需要在创建鲲鹏应用工程页面进行简单的输入和选择,便可以实现自动化构建鲲鹏应用工程, 包括空工程、通用计算应用工程、安全计算应用工程、高性能计算应用工程、DPAK 应用工程和数据 IO 应用工程。 » 字典管理:支持加速库函数字典管理,可线上(自动)和线下更新。 » 编程辅助:支持鲲鹏加速库函数的悬浮提示、函数搜索,支持 Coding 时自动联想和高亮鲲鹏加速库优化后的 相关函数。 应用开发工具,详细介绍与最新内容请参见鲲鹏社区 → 鲲鹏开发套件 DevKit → 开发,详情可扫描下方二维码。 3.1.1.1 代码开发介绍 鲲鹏原生开发在代码开发阶段提供了 DevKit 应用开发工具和 BoostKit 应用使能套件,可通过启发式编程及多场景 化 SDK 提供的示例 Demo 和文档,有效提升鲲鹏原生开发效率。 3.1.1 代码开发 07 / 鲲鹏原生开发技术白皮书 鲲鹏原生开发能力介绍 鲲鹏应用工程 提供场景化的鲲鹏应用工程模板,快速辅助工程环境构建、配置检查、依赖下载、构建文件生成等。 步骤 1 创建鲲鹏应用工程(通用计算应用工程,界面截图以 VS Code 环境为例)。 图 3-2 创建工程 步骤 2 部署 SDK。 图 3-3 部署 SDK 鲲鹏原生开发技术白皮书 / 08 鲲鹏原生开发能力介绍 步骤 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,详情可扫描下方 二维码。 图 3-13 鲲鹏 BoostKit 应用使能套件简介 鲲鹏应用使能套件 BoostKit,极致性能,使能鲲鹏“好用” BoostKit: 加速软件包 + 高性能开源组件 + 参考实现 数据亲和:数据全处理流程负载优化 大数据 算法加速库 OmniRuntime 特性 分布式存储 智能预取 自研压缩算法 数据库 可插拔 在线向量化分析引擎 机密计算 TrustZone 套件 BoostKit 场景化应用 应用加速软件包 参考 实现 基础加速软件包 高性能开源组件 基础软件 鲲鹏硬件 全 栈 优 化 大数据 分布式存储 数据库 虚拟化 ARM 原生 机密计算 Web/CDN HPC 八大场景软硬协同优化,使能鲲鹏好用 SQL 执行效率 30% ↑ 11 大类 40+ 算法性能最高 20x ↑ IOPS 性能 1.5x ↑ 压缩率 25% ↑ TPCH 查询性能 4X ↑ 自研安全 OS 内核 性能最高 8x ↑ 就近计算 算法加速 并行化处理 全生命周期安全 13 / 鲲鹏原生开发技术白皮书 鲲鹏原生开发能力介绍 图 3-15 鲲鹏 BoostKit 场景化应用加速能力介绍 2) 鲲鹏 BoostKit 应用加速 鲲鹏 BoostKit 提供性能倍增的应用加速软件包,使能数据处理极致性能、数据访问 极致高效和云手机极致体验。 鲲鹏 BoostKit 应用加速软件包,详细介绍与最新内容请参见鲲鹏应用使能套件 BoostKit → 应用加速软件包,详情可扫描右方二维码。 图 3-14 鲲鹏 BoostKit 场景化基础加速能力介绍 BoostKit 场景化基础加速特性全景图 大数据 分布式存储 数据库 虚拟化 ARM 原生 Web/CDN openEuler 和毕昇 JDK 性能优化 压缩算法 NVMe SSD 原子写 KAE RSA 加解密 OVS 流表归一化 虚拟化调度优化 ExaGear AArch32 指令翻译软件 Gazelle 网络优化 OVS 流表网卡加速 vKAE 鲲鹏 GCC CFGO 反馈优化 高性能云盘优化 vCPU 热插拔 KAEzip 压缩解压缩优化 虚拟化 DPU 卸载 MPAM 插件 存储算法加速库 存储维护工具库 KAE 使能 SPDK 场景化基础加速特性 BoostKit 应用加速组件全景图 大数据 分布式存储 数据库 虚拟化 ARM 原生 HPC EC Turbo MySQL 可插拔在线 向量化分析引擎 Kbox 云手机容器 多瑙调度器 负载感知加速系统 智能写 Cache CRC32 指令优化 视频流引擎 多瑙调度平台 图分析算法 IO 直通 MySQL NUMA 调度优化 指令流引擎 机器学习算法 数据压紧 MySQL 可插拔线程池 元数据加速 MySQL 并行查询优化 Ucache 智能读缓存 MySQL 细粒度锁优化 BoostIO MySQL 无锁优化 RDMA 网络加速 OmniRuntime BoostKit 应用加速 : 提供性能倍增的应用加速能力 鲲鹏原生开发技术白皮书 / 14 鲲鹏原生开发能力介绍 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 设备直通到容器的轻量级设备仿真层架构方案,提供了基于 Android 系统的云 手机容器参考方案。可实现在鲲鹏服务器支持 100 路 720p@30fps 的 Kbox 云手机容器高并发(以托管场景为例, 云手机并发密度取决于客户云手机实际应用),具有高密度、高兼容性等商业价值。 云游戏 / 云手机 APK 端云协同引擎 ( 手机端 SDK) 云手机 Turbo 套件 指令流引擎 云手机 Turbo 套件 视频流引擎 端云协同引擎 ( 服务端 SDK) 云手机 Turbo 套件 指令流引擎 基础云手机 云手机 Turbo 套件 Kbox ExaGear AArch32 指令翻译软件 Ubuntu/openEuler Android 9.0/11.0 鲲鹏服务器 GPU 编码卡 云手机 Turbo 套件 视频流引擎 云手机管理系统 Guest OS Host OS 硬件平台 虚拟化 ExaGear 华为交付 开源 & 第三方 客户 &ISV 开发 15 / 鲲鹏原生开发技术白皮书 鲲鹏原生开发能力介绍 视频流引擎 视频流云手机方案基于视频流的端云协同引擎,提供了低时延的云手机画面同步能力,支持 H.264 和 H.265 硬编码, 在画质相当的情况下,可实现 H.265 编码带宽减少 30%+,其实现原理是利用云端强大的能力将应用和游戏的运行、 渲染成最终的画面,并进行视频的压缩流化后,发送到终端播放显示。视频流引擎支持视频编码能力、视频解码 播放能力、云手机图像截屏能力、触控和音频抓取 / 播放能力等核心功能,客户可以基于这些引擎进行二次开发, 实现在移动终端上进行操控应用和游戏等操作。云端采用专业显卡进行渲染,可以获取高画质的业务体验;对终 端的要求极低,只要求有视频解码能力即可;提供统一 API,降低二次开发难度,易集成。 指令流引擎 指令流云手机方案采用业界独创的端云分离渲染技术,可实现云侧免 GPU 部署,整机硬件成本下降 10%,其实 现原理是云手机利用云端强大的算力,通过引擎实现云端复制应用和游戏的渲染指令,并进行渲染指令和纹理数 据压缩流化,在端侧使用手机终端的 GPU 把这些指令渲染出来图像。指令流引擎,支持机指令分离渲染、纹理 数据视频流化、触控和音频抓取 / 放能力等核心功能,客户可以基于这些引擎进行二次开发,实现在移动终端上 进行操控应用和游戏等操作。通过指令流引擎技术,可以支持云手机全系统渲染,并提供近乎无损的画质,在 1080P/2k/4k 分辨率下均不影响传输带宽,并通过资源缓存技术,有效降低网络带宽 50%+;突破云端 GPU 能力 限制,实现无 GPU 高密运行机制,单路硬件成本降低 40%,支持图形渲染状态机的本地执行与远端同步,实现 1080P 30FPS 低响应时延的用户体验。 大数据 鲲鹏 BoostKit 大数据聚焦大数据查询效率低、性能优化难等挑战,提供大数据组件的开源使能和调优、 OmniRuntime、机器学习和图分析算法加速库等应用加速软件包,提升大数据分析效率。 图 3-17 大数据应用加速软件包介绍 openEuler 和毕昇 JDK 性能优化 适用 Hive 2.X/3.X、Spark 2.X,openEuler 操作系统基于大数据核心组件 Hive、Spark 通过磁盘 IO、网络 IO 的调 度策略优化、Neon 指令优化等实现大数据计算性能提升。毕昇 JDK 性能优化基于鲲鹏处理器构建开源 JDK 社区, 通过 AppCDS、GC 算法优化、编译优化等提升大数据核心组件 Hive、Spark 的计算性能。Hive 性能提升 2%~25%, Spark 性能提升 3%~
| ||
下载文档到本地,方便使用
共 112 页, 还有
1 页可预览,
继续阅读
文档评分


华为-智慧园区数字平台技术方案