鲲鹏原生开发过程
鲲鹏原生开发过程涵盖了从需求分析到软件设计,再到代码开发和测试调优的完整软件开发周期。这一过程旨在为开发者提供一个清晰的开发路线图,确保软件能够在鲲鹏平台上高效运行。
开发者面临的挑战
在这一过程中,开发者可能会面临几个关键挑战,包括但不限于:
- 代码优化:如何快速优化代码以提升应用性能。
- 开发效率:如何提升开发效率,加快开发进程。
- 代码问题发现:如何快速发现并解决代码中的问题。
- 缺少鲲鹏环境:如何解决缺少鲲鹏开发环境的问题。
- 适配问题识别:如何识别和解决软件适配问题。
- 性能提升:如何提升应用的性能和稳定性。
鲲鹏 DevKit 提供的解决方案
为了解决这些痛点,鲲鹏 DevKit 提供了全面的解决方案:
- 通用程序调试:提供远端程序调试功能,帮助开发者快速定位和解决问题。
- 鲲鹏亲和分析:通过多维度分析,帮助开发者优化代码,提高应用的鲲鹏亲和性。
- 学习文档和资源:提供丰富的学习文档和资源,降低开发者的学习成本,加速上手过程。
- 场景化 SDK 和样例:提供针对高频使用场景的 SDK 和工程样例,减少重复工作,提高开发效率。
- 远程实验室:提供鲲鹏远程实验室,使开发者能够轻松申请和使用鲲鹏资源。
- CI/CD 集成:通过 Jenkins 插件支持持续集成和持续部署(CI/CD),优化开发测试流程。
- 智能提示补全:提供代码智能提示和补全功能,加快代码编写速度。
鲲鹏原生开发的核心技术理念
基于鲲鹏硬件+openEuler+双 Kit(DevKit、BoostKit)套件,1 套代码+1 条流水线+N 个版本,持续且首发商用版本。
鲲鹏原生开发包含代码开发阶段和流水线阶段:
- 代码开发阶段:通过鲲鹏 DevKit、BoostKit 开发代码,充分应用鲲鹏架构优势,性能更优。
- 流水线阶段:鲲鹏 DevKit 以命令行方式 1 小时接入 CI/CD,便捷发布多平台版本。
图 1 核心技术理念

- 极简融入&高效发布:DevKit 原生开发插件 1 小时接入两大主流(Jenkins、GitLab)CI/CD 流水线,高效提升鲲鹏流水线搭建及版本发布效率。
- 鲲鹏亲和&极致性能:鲲鹏流水线使能鲲鹏亲和分析工具、编译器、性能工具等,实现应用性能提升。
- 多架构兼容:1 套流水线同时支持多样性算力版本构建及测试。
远程实验室简介
鲲鹏推出了远程实验室,提供免费的鲲鹏平台资源供开发者学习体验。远程实验室包含了三项子服务:云开发服务、云测试服务和远程服务器。为开发者提供在线 IDE 开发环境、测试服务和鲲鹏开发套件的体验。
1. 云开发服务
云开发服务提供了在线 IDE,用户申请完可以直接在页面打开在线 IDE 进行代码迁移、开发调试、编译、调优及诊断等功能。
(1)云开发服务申请
首先访问鲲鹏社区的远程实验室页面[远程实验室页面],点击“立即申请”后进入申请页面,在云开发服务的“立即申请”按钮申请云开发服务:
之后输入自己的邮箱地址,选择 openEuler 20.03 LTS-SP 1(以实际可选的为准)系统,申请成功后我们点击“打开在线 IDE”按钮,进入云开发环境中,云开发环境给大家提供了在线 Vscode 页面,方便开发者直接在鲲鹏上进行开发。
2. 云测试服务
云测试服务面向开发者提供基于鲲鹏云环境兼容性测试、可靠性测试、安全测试、功能测试和性能测试服务,帮助开发者快速发现和定位应用软件运行在鲲鹏环境的问题。
主要功能
(1)云测试服务申请
鲲鹏社区的远程实验室页面
,点击“立即申请”后进入申请页面,在云测试服务的“立即申请”按钮申请云测试服务:
之后输入自己的邮箱地址,选择 openEuler 20.03 LTS-SP 1(以实际可选的为准)系统,申请成功后,鲲鹏社区将环境信息发送到您填写的邮箱地址。
3. 环境登录
(1)下载并安装 Uni VPN Client 客户端
(2)双击客户端“Uni VPN”快捷方式,点击“新建连接”,选择“导入配置”
配置文件见鲲鹏社区发送的邮件中文件名为“xxx. Xxx. Xxx. Xxx. Ini”的附件。
(3)导入完成后,点击“连接”按钮,然后输入“用户名”和“密码”
然后点击“登录”按钮,VPN 用户信息见鲲鹏社区发送的邮件正文中“VPN 用户名”和“VPN 密码”。
(4)可使用 XShell/MobaXterm 工具,输入 IP 地址和用户名
可远程登录服务器,“远端主机”和“用户名”见鲲鹏社区发送的邮件正文中“服务器弹性 IP”和“SSH 用户名”。
4. 远程服务器
远程服务器预装“一站式”开发套件,包括鲲鹏代码迁移工具(含鲲鹏原生开发框架和调试器)、鲲鹏编译工具链、鲲鹏性能分析工具,动态二进制翻译工具(ExaGear)。开发者可远程便捷 SSH 登录,灵活使用。
(1)远程服务器申请
鲲鹏社区的远程实验室页面,点击“立即申请”后进入申请页面,在远程服务器的“立即申请”按钮申请:
之后输入自己的邮箱地址,选择 openEuler 20.03 LTS-SP 1(以实际可选的为准)系统,申请成功后,鲲鹏社区将环境信息发送到您填写的邮箱地址。您可以通过 VPN 和 SSH 客户端远程连接到环境,操作步骤请参考环境登录内容。
鲲鹏原生开发
1. 什么是鲲鹏原生开发
鲲鹏原生开发是指使用鲲鹏 DevKit 的原生开发能力,如鲲鹏开发框架(含场景化 SDK)、编译调试工具、云测服务、调优&诊断工具等,在鲲鹏平台上开发新软件/新功能,充分发挥鲲鹏架构优势,从而获得开发效率/运行性能提升。
本章节将重点体验原生开发过程中的环境配置、代码开发、编译部署、鲲鹏平台运行这几个步骤。针对这个过程中的关键痛点,DevKit 开发套件提供了全流程的解决方案,帮助开发者快速上手鲲鹏原生开发。
2. 原生开发过程中的常见问题
从“什么是鲲鹏原生开发”图片内容中可知,在鲲鹏原生开发过程中,开发者需要先完成环境部署,安装应用运行所需的依赖软件,之后创建应用工程,进行应用开发,开发完成后将代码上传到鲲鹏平台进行编译部署。在这个过程中开发者通常会碰到如下问题:
- 环境部署问题:某些开发场景应用环境依赖比较复杂,部署过程容易失败,环境部署过程的不确定性极大增加了项目交付的风险和工作量;
- 特性融入问题:鲲鹏平台为开发者提供了很多关键特性帮助开发者更好的进行开发工作,比如加速库可以帮助开发者快速提升应用性能,安全计算可以帮助开发者更加安全的保存机密数据,但这些特性内容较为庞大,面对内容繁多的开发指导文档,很多开发者不知道如何快速将这些特性融入到具体项目中;
- 代码开发效率问题:开发过程中,为了调用鲲鹏函数,需要反复查阅资料来确定函数信息,降低了代码开发效率;
- 编译部署问题:开发好的代码需要手动上传到远端编译,每次代码都需要进行手动上传编译,影响开发体验。
3. 如何利用 DevKit 工具快速进行原生开发
针对“什么是原生开发”章节提到的问题,DevKit 提供了相应的解决方案:
(1)场景化 SDK & 工程样例
在环境配置阶段,可以使用场景化 SDK 快速完成环境部署,同时利用场景化工程样例,快速完成工程创建,开发者可以根据样例中的代码方便的进行定制修改。DevKit 开发套件当前提供了四大开发场景的场景化 SDK 与工程样例,分别是通用计算场景、安全计算场景、高性能计算应用场景和 DPAK 场景。
开发者可以通过工具的 UI 交互页面快速完成上述开发场景的环境部署与工程创建。
- 通用加速场景:聚合加速库(鲲鹏指令加速),硬件加速(KAE),同构加速(HAF)内容打包成 SDK,支持主流操作系统下快速灵活部署;同时提供加速库应用、硬件加速应用、同构加速框架应用工程样例,快速发挥鲲鹏软硬件能力,适用于需要快速提升应用性能的应用开发。
- 安全计算场景:聚合 TEE-GP API、内核驱动、用户态 API 库、华为安全函数库形成完整的 SDK,支持主流操作系统下快速灵活部署;同时提供机密数据保存、匿名投票、证书签发等丰富的工程样例,快速掌握鲲鹏安全计算能力,适用于需要保存机密数据/敏感信息的应用开发。
- HPC 场景:聚合编译器,高性能通信库,数学库形成完整的 SDK,支持主流操作系统下通过交互式安装脚本灵活安装,解决 HPC 环境部署难题;提供 HMPI 和 KML 工程样例,降低开发者使用门槛,适用于需要提升 HPC 场景应用性能的应用开发。
- DPAK 场景:针对智能网卡卸载场景,将使能智能网卡 (SP 680) 的开源组件聚合成 SDK 包,助力开发者快速搭建 OpenStack 和 OVS 场景,解决环境部署难题。同时提供虚拟化卸载、OVS 卸载工程样例,快速体验智能网卡卸载带来的网络加速效果,适用于有智能网卡网络加速需求的应用开发。
(2)函数信息智能补全
完成工程创建后,开发者可以在工程样例上完成开发需要的定制修改,DevKit 开发套件针对鲲鹏加速库函数、NEON 加速函数、鲲鹏编译选项等内容进行智能联想补全,同时提供函数的具体使用信息,减少开发者查阅资料的工作,提升编程效率。
(3)工程一键上传编译
完成开发后,开发者可以使用编译调试工具创建编译任务,将代码一键上传代码到服务器进行编译。后续如果要进行代码修改可利用代码自动同步功能自动同步修改代码到远端服务器,再执行创建好的编译任务完成编译即可。
以下是将您提供的内容修改为 Markdown 格式的文本,以使其更加美观和易于阅读:
亲和分析工具
亲和分析工具是针对鲲鹏平台的开发者、用户和 ISV 开发者的应用、源码分析工具。亲和分析工具属于鲲鹏 DevKit 的扩展工具之一,支持在鲲鹏平台运行。支持以下功能:
- 64 位运行模式检查:将原 32 位平台上的软件迁移到 64 位平台上,进行迁移检查并给出修改建议。
- 字节对齐检查:在需要考虑字节对齐时,检查源码中结构体类型变量的字节对齐情况。
- 缓存行对齐检查:对 C/C++源码中结构体变量进行 128 字节对齐检查,提升访存性能。
- 内存一致性静态检查:在鲲鹏平台上,分析、修复用户软件中的内存一致性问题。
- 向量化检查:在鲲鹏平台上检查可向量化片段并提供修改建议。
- 矩阵化检查:在鲲鹏平台上检查可矩阵化片段并提供修改建议。
- 构建亲和:分析 makefile、CMakeLists. Txt 中可以替换成鲲鹏加速库的内容,并提供替换建议和功能修复。
- 计算精度分析:精度分析工具对应用函数插桩后,分别在 x 86 平台和鲲鹏平台运行,最终通过对比输出结果,分析平台计算精度差异。
鲲鹏原生开发过程
鲲鹏原生开发过程涵盖了从需求分析到软件设计,再到代码开发和测试调优的完整软件开发周期。这一过程旨在为开发者提供一个清晰的开发路线图,确保软件能够在鲲鹏平台上高效运行。
开发者面临的挑战
在这一过程中,开发者可能会面临几个关键挑战,包括但不限于:
鲲鹏 DevKit 提供的解决方案
为了解决这些痛点,鲲鹏 DevKit 提供了全面的解决方案:
鲲鹏原生开发的核心技术理念
基于鲲鹏硬件+openEuler+双 Kit(DevKit、BoostKit)套件,1 套代码+1 条流水线+N 个版本,持续且首发商用版本。
鲲鹏原生开发包含代码开发阶段和流水线阶段:
图 1 核心技术理念
远程实验室简介
鲲鹏推出了远程实验室,提供免费的鲲鹏平台资源供开发者学习体验。远程实验室包含了三项子服务:云开发服务、云测试服务和远程服务器。为开发者提供在线 IDE 开发环境、测试服务和鲲鹏开发套件的体验。
1. 云开发服务
云开发服务提供了在线 IDE,用户申请完可以直接在页面打开在线 IDE 进行代码迁移、开发调试、编译、调优及诊断等功能。
(1)云开发服务申请
首先访问鲲鹏社区的远程实验室页面[远程实验室页面],点击“立即申请”后进入申请页面,在云开发服务的“立即申请”按钮申请云开发服务:
之后输入自己的邮箱地址,选择 openEuler 20.03 LTS-SP 1(以实际可选的为准)系统,申请成功后我们点击“打开在线 IDE”按钮,进入云开发环境中,云开发环境给大家提供了在线 Vscode 页面,方便开发者直接在鲲鹏上进行开发。
2. 云测试服务
云测试服务面向开发者提供基于鲲鹏云环境兼容性测试、可靠性测试、安全测试、功能测试和性能测试服务,帮助开发者快速发现和定位应用软件运行在鲲鹏环境的问题。
主要功能
(1)云测试服务申请
鲲鹏社区的远程实验室页面
,点击“立即申请”后进入申请页面,在云测试服务的“立即申请”按钮申请云测试服务:
之后输入自己的邮箱地址,选择 openEuler 20.03 LTS-SP 1(以实际可选的为准)系统,申请成功后,鲲鹏社区将环境信息发送到您填写的邮箱地址。
3. 环境登录
(1)下载并安装 Uni VPN Client 客户端
(2)双击客户端“Uni VPN”快捷方式,点击“新建连接”,选择“导入配置”
配置文件见鲲鹏社区发送的邮件中文件名为“xxx. Xxx. Xxx. Xxx. Ini”的附件。
(3)导入完成后,点击“连接”按钮,然后输入“用户名”和“密码”
然后点击“登录”按钮,VPN 用户信息见鲲鹏社区发送的邮件正文中“VPN 用户名”和“VPN 密码”。
(4)可使用 XShell/MobaXterm 工具,输入 IP 地址和用户名
可远程登录服务器,“远端主机”和“用户名”见鲲鹏社区发送的邮件正文中“服务器弹性 IP”和“SSH 用户名”。
4. 远程服务器
远程服务器预装“一站式”开发套件,包括鲲鹏代码迁移工具(含鲲鹏原生开发框架和调试器)、鲲鹏编译工具链、鲲鹏性能分析工具,动态二进制翻译工具(ExaGear)。开发者可远程便捷 SSH 登录,灵活使用。
(1)远程服务器申请
鲲鹏社区的远程实验室页面,点击“立即申请”后进入申请页面,在远程服务器的“立即申请”按钮申请:
之后输入自己的邮箱地址,选择 openEuler 20.03 LTS-SP 1(以实际可选的为准)系统,申请成功后,鲲鹏社区将环境信息发送到您填写的邮箱地址。您可以通过 VPN 和 SSH 客户端远程连接到环境,操作步骤请参考环境登录内容。
鲲鹏原生开发
1. 什么是鲲鹏原生开发
鲲鹏原生开发是指使用鲲鹏 DevKit 的原生开发能力,如鲲鹏开发框架(含场景化 SDK)、编译调试工具、云测服务、调优&诊断工具等,在鲲鹏平台上开发新软件/新功能,充分发挥鲲鹏架构优势,从而获得开发效率/运行性能提升。
本章节将重点体验原生开发过程中的环境配置、代码开发、编译部署、鲲鹏平台运行这几个步骤。针对这个过程中的关键痛点,DevKit 开发套件提供了全流程的解决方案,帮助开发者快速上手鲲鹏原生开发。
2. 原生开发过程中的常见问题
从“什么是鲲鹏原生开发”图片内容中可知,在鲲鹏原生开发过程中,开发者需要先完成环境部署,安装应用运行所需的依赖软件,之后创建应用工程,进行应用开发,开发完成后将代码上传到鲲鹏平台进行编译部署。在这个过程中开发者通常会碰到如下问题:
3. 如何利用 DevKit 工具快速进行原生开发
针对“什么是原生开发”章节提到的问题,DevKit 提供了相应的解决方案:
(1)场景化 SDK & 工程样例
在环境配置阶段,可以使用场景化 SDK 快速完成环境部署,同时利用场景化工程样例,快速完成工程创建,开发者可以根据样例中的代码方便的进行定制修改。DevKit 开发套件当前提供了四大开发场景的场景化 SDK 与工程样例,分别是通用计算场景、安全计算场景、高性能计算应用场景和 DPAK 场景。
开发者可以通过工具的 UI 交互页面快速完成上述开发场景的环境部署与工程创建。
(2)函数信息智能补全
完成工程创建后,开发者可以在工程样例上完成开发需要的定制修改,DevKit 开发套件针对鲲鹏加速库函数、NEON 加速函数、鲲鹏编译选项等内容进行智能联想补全,同时提供函数的具体使用信息,减少开发者查阅资料的工作,提升编程效率。
(3)工程一键上传编译
完成开发后,开发者可以使用编译调试工具创建编译任务,将代码一键上传代码到服务器进行编译。后续如果要进行代码修改可利用代码自动同步功能自动同步修改代码到远端服务器,再执行创建好的编译任务完成编译即可。
以下是将您提供的内容修改为 Markdown 格式的文本,以使其更加美观和易于阅读:
亲和分析工具
亲和分析工具是针对鲲鹏平台的开发者、用户和 ISV 开发者的应用、源码分析工具。亲和分析工具属于鲲鹏 DevKit 的扩展工具之一,支持在鲲鹏平台运行。支持以下功能: