AI智能总结
技术白皮书 鲲鹏一码多芯、同辕开发的机遇和挑战01 02鲲鹏一码多芯、同辕开发的核心技术理念03 鲲鹏一码多芯、同辕开发能力介绍05 3.1.1代码开发063.1.2代码优化383.1.3编译403.1.4调试423.1.5调优47 3.2流水线阶段65 3.2.1门禁检查653.2.2编译构建713.2.3调优723.2.4测试733.2.5版本发布74 3.3 OS底座(openEuler系操作系统) 75 3.3.1 openEuler简介753.3.2 openEuler基础能力763.3.3 openEuler工具和社区服务80 84 05技术白皮书PDF下载86 鲲鹏一码多芯、同辕开发的机遇和挑战 鲲鹏计算产业聚焦计算架构创新和开源基础软件的研发,致力于推动鲲鹏生态发展。通过战略性、长期性的研发投入,吸纳全球计算产业的优秀人才和先进技术,持续推进全栈计算技术的创新发展,加快构筑面向多样化计算的全球开源体系与产业标准。基于“硬件开放、软件开源、使能伙伴、发展人才”的策略推动鲲鹏计算产业发展。 目前,鲲鹏软硬件联合创新已覆盖国计民生核心场景,主流伙伴核心应用已迁移到鲲鹏,鲲鹏生态进入快速发展期。当前阶段,鲲鹏和 x86 多平台版本并行迭代成为主要需求,由于两个架构开发生态的差异,如果采用两套流水线分别开发两套代码,则会带来很多重复开发验证的工作,并且两个版本分别开发、构建和维护效率低。因此,鲲鹏创新性的提出鲲鹏原生开发:基于鲲鹏硬件 +openEuler+ 鲲鹏 DevKit+ 鲲鹏BoostKit,实现 1 套代码 +1 条流水线 + 多平台版本,助力伙伴持续且首发性能领先的商用版本。 鲲鹏同辕开发的核心技术理念: 基于鲲鹏硬件+openEuler+鲲鹏开发套件DevKit+鲲鹏应用使能套件BoostKit,实现1套代码+1条流水线构建多平台版本,效率更高、性能更优。 鲲鹏同辕开发包含代码开发阶段和流水线阶段: »代码开发阶段:通过鲲鹏DevKit、BoostKit开发代码,充分应用鲲鹏架构优势,性能更优。»流水线阶段:鲲鹏DevKit以命令行方式1小时接入CI/CD,便捷发布多平台版本。 »极简融入&高效发布:DevKit同辕开发插件1小时接入两大主流(Jenkins、GitLab)CI/CD流水线,高效提升鲲鹏流水线搭建及版本发布效率。 »鲲鹏亲和&极致性能:鲲鹏流水线使能鲲鹏亲和分析工具、编译器、性能工具等,实现应用性能提升。 »多架构兼容:1套流水线同时支持多样性算力版本构建及测试。 »一码多芯:一套代码可以支持多个CPU平台。 说明 同辕开发:辕是古代马车前面控制方向的直木,代表着应用软件开发的方向,是为了满足客户对产品和解决方案的需求,支撑客户业务的竞争力和创新;同时也代表着应用开发流水线,支撑软件版本持续发布;当单独使用“同辕开发”时,还同“源”,代表同一套源码构建多平台版本。 03 鲲鹏一码多芯、同辕开发能力介绍 3.1代码开发阶段 3.1.1代码开发 3.1.1.1代码开发介绍 鲲鹏原生开发在代码开发阶段提供了DevKit应用开发工具和BoostKit应用使能套件,可通过启发式编程及多场景化SDK提供的示例Demo和文档,有效提升鲲鹏原生开发效率。 3.1.1.2应用开发工具 应用开发工具支持创建鲲鹏应用工程,支持C/C++开发语言,编码时能够自动匹配鲲鹏加速库函数字典、智能提示、高亮、联想字典中可以替换的库和函数。支持以下功能: »鲲鹏应用工程:只需要在创建鲲鹏应用工程页面进行简单的输入和选择,便可以实现自动化构建鲲鹏应用工程,包括空工程、通用计算应用工程、安全计算应用工程、高性能计算应用工程、DPAK应用工程和数据IO应用工程。 »字典管理:支持加速库函数字典管理,可线上(自动)和线下更新。 »编程辅助:支持鲲鹏加速库函数的悬浮提示、函数搜索,支持Coding时自动联想和高亮鲲鹏加速库优化后的相关函数。 应用开发工具,详细介绍与最新内容请参见鲲鹏社区 → 鲲鹏开发套件 DevKit → 开发,详情可扫描下方二维码。 鲲鹏应用工程 提供场景化的鲲鹏应用工程模板,快速辅助工程环境构建、配置检查、依赖下载、构建文件生成等。 步骤 1创建鲲鹏应用工程(通用计算应用工程,界面截图以VS Code环境为例)。 步骤 2部署SDK。 步骤 3工程创建成功后,展示结果。 步骤 4单击“打开工程”,查看工程样例代码。 ---- 结束 字典管理 支持加速库函数字典管理,可线上(自动)和线下更新。 步骤 1当用户实际网络环境无法连接外网时,可上传本地字典文件。 鼠标移动到“字典导入”旁的,单击“下载”下载字典文件并在本地字典文件框内上传。? 步骤 2开启加速库提示,开启后,用户编码过程中将会自动联想、补齐与字典中匹配的库和函数,方便用户下载使用。 步骤 3开启编译选项智能联想,开启后,工具将会根据用户选择的编译器版本进行智能联想,可在编译器版本下拉列表中选择合适的编译器版本。 说明 用户构建脚本时,工具将会根据用户选择的GCC版本或BiSheng Compiler版本进行智能联想,BiSheng Compiler版本范围在2.1.0~4.2.0,GCC版本范围在4.8.5~12.3.1。 步骤 4设置跳过证书验证的网站,设置后的网站无需进行证书验证。单击“添加网站”,在弹框中输入网站地址。 ---- 结束 编程辅助 支持鲲鹏加速库函数的悬浮提示、函数搜索,支持编码时智能联想和高亮鲲鹏加速库优化后的相关函数。步骤 1在代码编辑区输入代码,工具会根据输入的内容自动联想函数或补全代码。 步骤 2通过代码编辑区右上角的(放大镜),在搜索框输入关键字,可实现函数搜索。 图3-12函数搜索 ---- 结束 3.1.1.3鲲鹏BoostKit应用使能套件 1)鲲鹏BoostKit应用使能套件简介 鲲鹏BoostKit应用使能套件,基于鲲鹏硬件、基础软件和应用软件的全栈优化,提供高性能开源组件、基础加速软件包和应用加速软件包,使能应用极致性能,其针对大数据、分布式存储、数据库、虚拟化和ARM原生等场景进行了深度优化鲲鹏架构特性,如内存管理、计算调度等方面的技术优势,通过预置的高性能库和框架,赋能开发者轻松构建适应鲲鹏架构的高性能应用。在同一个构建流程中,当集成BoostKit后,基于鲲鹏架构的目标软件包能够获益较大的性能提升。 获取最新的鲲鹏BoostKit应用使能套件和详细的用户指南,请参见鲲鹏应用使能套件BoostKit,详情可扫描下方二维码。 2)鲲鹏BoostKit应用加速 鲲鹏BoostKit提供性能倍增的应用加速软件包,使能数据处理极致性能、数据访问极致高效和云手机极致体验。 鲲 鹏BoostKit应 用 加 速 软 件 包, 详 细 介 绍 与 最 新 内 容 请 参 见鲲 鹏 应 用 使 能 套 件BoostKit→应用加速软件包,详情可扫描右方二维码。 BoostKit应用加速:提供性能倍增的应用加速能力 云手机 鲲鹏BoostKit ARM原生利用ARM指令集同构优势,支持移动应用无损上云,同时将多年技术积累浓缩到Kbox云手机容器、指令流引擎、视频流引擎核心能力等组件,形成了云手机Turbo套件,降低了开发难度,提升整机的 密 度, 降 低 云 手 机 单 路 成 本, 其 中HostOS支 持Ubuntu和openEuler,GuestOS支 持android-9.0.0_r55和android-11.0.0_r48,用户可以基于云手机Turbo套件进行二次开发,从而实现云手机极致的性能和业务体验。 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云手机容器高并发(以托管场景为例,云手机并发密度取决于客户云手机实际应用),具有高密度、高兼容性等商业价值。 视频流引擎 视频流云手机方案基于视频流的端云协同引擎,提供了低时延的云手机画面同步能力,支持H.264和H.265硬编码,在画质相当的情况下,可实现H.265编码带宽减少30%+,其实现原理是利用云端强大的能力将应用和游戏的运行、渲染成最终的画面,并进行视频的压缩流化后,发送到终端播放显示。视频流引擎支持视频编码能力、视频解码播放能力、云手机图像截屏能力、触控和音频抓取/播放能力等核心功能,客户可以基于这些引擎进行二次开发,实现在移动终端上进行操控应用和游戏等操作。云端采用专业显卡进行渲染,可以获取高画质的业务体验;对终端的要求极低,只要求有视频解码能力即可;提供统一API,降低二次开发难度,易集成。 指令流引擎 指令流云手机方案采用业界独创的端云分离渲染技术,可实现云侧免GPU部署,整机硬件成本下降10%,其实现原理是云手机利用云端强大的算力,通过引擎实现云端复制应用和游戏的渲染指令,并进行渲染指令和纹理数据压缩流化,在端侧使用手机终端的GPU把这些指令渲染出来图像。指令流引擎,支持机指令分离渲染、纹理数据视频流化、触控和音频抓取/放能力等核心功能,客户可以基于这些引擎进行二次开发,实现在移动终端上进行操控应用和游戏等操作。通过指令流引擎技术,可以支持云手机全系统渲染,并提供近乎无损的画质,在1080P/2k/4k分辨率下均不影响传输带宽,并通过资源缓存技术,有效降低网络带宽50%+;突破云端GPU能力限制,实现无GPU高密运行机制,单路硬件成本降低40%,支持图形渲染状态机的本地执行与远端同步,实现1080P 30FPS低响应时延的用户体验。 大数据 鲲 鹏BoostKit大 数 据 聚 焦 大 数 据 查 询 效 率 低、 性 能 优 化 难 等 挑 战, 提 供 大 数 据 组 件 的 开 源 使 能 和 调 优、OmniRuntime、机器学习和图分析算法加速库等应用加速软件包,提升大数据分析效率。 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%~25%。 OmniRuntime 大 数 据OmniRuntime是 鲲 鹏BoostKit大 数 据 面 向 应 用 加 速 推 出 的 一 系 列 特 性, 包 括OmniData算 子 下推、OmniOperator算 子 加 速、OmniShuffle Shuffle加 速、OmniMV物 化 视 图、OmniAdvisor参 数 调 优 和OmniHBaseGSI全局二级索引,旨在通过插件化的形式,端到端提升数据加载、数据计算和数据交换的性能,从 而提升大数据分析的性能。Spark使用OmniRuntime加速特性执行SQL计算,相比原生性能提升20%~40%,具体包括组件如下: »OmniData算子下推 适用于存算分离场景或大规模存算融合场景,支