示例简介
尊敬的开发者你好,鲲鹏开发框架工具是一款使能用户在鲲鹏服务器上进行开发的工具,帮助开发者更便捷地开发鲲鹏应用,使能开发者高效创新,您可以阅读本篇文档快速上手原生开发。
本篇文档主要介绍了以下知识:
- 了解鲲鹏原生开发概念
- 如何使用鲲鹏开发框架工具进行鲲鹏原生开发
基础技能:
- 具备基础的C/C++语言编程能力
- 了解常用的Linux操作命令
什么是鲲鹏原生开发
鲲鹏原生开发是指使用鲲鹏DevKit的原生开发能力,如鲲鹏开发框架(含场景化SDK)、编译调试工具、云测服务、调优&诊断工具等,在鲲鹏平台上开发新软件/新功能,充分发挥鲲鹏架构优势,从而获得开发效率/运行性能提升。
本实验将重点体验原生开发过程中的环境配置、代码开发、编译部署、鲲鹏平台运行这几个步骤。针对这个过程中的关键痛点,DevKit开发套件提供了全流程的解决方案,帮助开发者快速上手鲲鹏原生开发。
![]()
原生开发过程中的常见问题
从上一节的图片内容中可知,在鲲鹏原生开发过程中,开发者需要先完成环境部署,安装应用运行所需的依赖软件,之后创建应用工程,进行应用开发,开发完成后将代码上传到鲲鹏平台进行编译部署。在这个过程中开发者通常会碰到如下问题:
- 某些开发场景应用环境依赖比较复杂,部署过程容易失败,环境部署过程的不确定性极大增加了项目交付的风险和工作量;
- 鲲鹏平台为开发者提供了很多关键特性帮助开发者更好的进行开发工作,比如加速库可以帮助开发者快速提升应用性能,安全计算可以帮助开发者更加安全的保存机密数据,但这些特性内容较为庞大,面对内容繁多的开发指导文档,很多开发者不知道如何快速将这些特性融入到具体项目中;
- 开发过程中,为了调用鲲鹏函数,需要反复查阅资料来确定函数信息,降低了代码开发效率;
- 开发好的代码需要手动上传到远端编译,每次代码都需要进行手动上传编译,影响开发体验;
针对上面提到的问题,DevKit提供了相应的解决方案,首先DevKit开发框架工具针对用户高频开发场景提供了场景化SDK和工程样例,场景化SDK提供UI交互部署或脚本部署方式,环境部署问题一步解决;工程样例内容详尽注释丰富,帮助开发者快速上手进行定制修改;开发过程中,针对鲲鹏函数、编译选项等信息进行智能提示补全,补全信息中包含具体使用信息,减少开发者查阅资料的工作,提升编程效率。
完成代码开发后,开发者可以通过编译调试工具一键将代码上传远端编译部署,后续代码修改可自动同步到远端,非常方便。后续子章节将对上述内容进行具体讲解。
探索鲲鹏原生开发工具
本小节将详细讲解鲲鹏原生开发工具提供的功能,帮助开发者了解鲲鹏原生开发工具如何帮助开发者提升开发效率。
1、场景化SDK & 工程样例
在环境配置阶段,可以使用场景化SDK快速完成环境部署,同时利用场景化工程样例,快速完成工程创建,开发者可以根据样例中的代码方便的进行定制修改。DevKit开发套件当前提供了四大开发场景的场景化SDK与工程样例,分别是通用计算应用、安全计算应用、高性能计算应用和DPAK应用。开发者可以通过工具的UI交互页面快速完成上述开发场景的环境部署与工程创建。

其中通用计算应用聚合加速库(鲲鹏指令加速),硬件加速(KAE),同构加速(HAF)内容打包成SDK,支持主流操作系统下快速灵活部署;同时提供加速库应用、硬件加速应用、同构加速框架应用工程样例,快速发挥鲲鹏软硬件能力,适用于需要快速提升应用性能的应用开发。
安全计算应用聚合TEE-GP API、内核驱动、用户态API库、华为安全函数库形成完整的SDK,支持主流操作系统下快速灵活部署;同时提供机密数据保存、匿名投票、证书签发等丰富的工程样例,快速掌握鲲鹏安全计算能力,适用于需要保存机密数据/敏感信息的应用开发。
高性能计算应用聚合编译器,高性能通信库,数学库形成完整的SDK,支持主流操作系统下通过交互式安装脚本灵活安装,解决HPC环境部署难题;提供HMPI和KML工程样例,降低开发者使用门槛,适用于需要提升高性能计算应用性能的应用开发。
DPAK应用针对智能网卡卸载场景,将使能智能网卡(SP680)的开源组件聚合成SDK包,助力开发者快速搭建OpenStack和OVS场景,解决环境部署难题。同时提供虚拟化卸载、OVS卸载工程样例,快速体验智能网卡卸载带来的网络加速效果,适用于有智能网卡网络加速需求的应用开发。
2、函数信息智能补全
完成工程创建后,开发者可以在工程样例上完成开发需要的定制修改,DevKit开发套件针对鲲鹏加速库函数、NEON加速函数、鲲鹏编译选项等内容进行智能联想补全,同时提供函数的具体使用信息,减少开发者查阅资料的工作,提升编程效率。
![]()
本小节介绍了鲲鹏DevKit在环境配置、代码开发步骤中提供的强大功能,如果大家想深入了解DevKit开发套件,欢迎大家前往鲲鹏社区查阅鲲鹏DevKit工具的详细内容:
https://www.hikunpeng.com/developer/devkit
鲲鹏原生开发试验介绍
接下来将以场景化工程样例中的通用工程SHA256为例来学习如何通过鲲鹏开发框架工具完成工程的创建、编译和运行。
SHA256是SHA-2下细分出的一种算法,本质上就是一个哈希函数。SHA256是一种信息摘要的标准算法,对于任意长度消息,SHA256都会产生一个256bit长度的散列值,称为消息摘要。鲲鹏提供了针对SHA256算法的计算加速指令,提升性能。为了体验SHA256的性能提升效果,需要进行以下几项工作:
- 登录cloudide环境,下载鲲鹏开发框架插件
- 创建SHA256模板工程
- 编译生成二进制文件,验证SHA256性能
创建SHA256通用计算工程
点击示例工程页面右侧的“运行调试”按钮打开cloudide开发环境。之后点击cloudide页面左侧的“插件管理”页签,搜索“kunpeng”,安装鲲鹏原生开发框架插件。
![1BE2097C-0808-4275-810C-159CC5439BC6.png]()
安装完成后,点击左侧鲲鹏原生开发插件的图标,如果是第一次登录鲲鹏DevKit系列的插件,需要创建用户,点击登录后创建密码,点击“确认”,进入到登录页面。如果之前已经创建过用户,直接输入密码登录即可
![]()
进入登录页面,输入密码、点击下方登录后勾选“我已阅读并同意”,点击“确认”,登录开发工具。
![]()
登录后已打开新建鲲鹏应用工程页面,也可以点击左上角“新建鲲鹏应用工程” 按钮打开页面,依次选择“通用计算应用” - “加速库应用”。
![]()
选择模板工程中的“信息摘要”新建应用,创建工程名为project的信息摘要工程(如您在此处修改默认工程名,在后续命令中需要适配相应工程路径),之后点击浏览,在上方输入框选择保存地址,这里选择home文件夹下的user子文件夹,之后点击“新建应用”。
![]()
工程创建成功后,点击“查看应用”,然后在弹框中选择“本窗口打开”打开工程。打开后可以在左侧的资源管理器中选择文件进行显示编辑。
![]()
编译生成二进制文件
现在对新建的工程进行编译。点击左上角的应用程序菜单,接着点击“终端”中的“新建终端”。
![]()
然后在终端中输入下述命令后回车进行编译。
true&&source /etc/profile&&cd /home/user/project;cd src/sha256/&& rm -r build;mkdir -p build && cd build && cmake .. && make
编译成功后终端显示如下。
![]()
在终端输入命令切换到编译sha256后生成的文件夹
cd /home/user/project/src/sha256/build
![]()
然后运行编译好的sha256二进制包,对比鲲鹏加速前后的sha256性能。运行命令如下,参数为用于测试的数据文件,可以为任意文件,此处以/home/user/devkitdemo/porting/kafka-2.4.1-1.el7.noarch.rpm文件为例; 注意:为了明显对比用C实现的sha256算法和用汇编实现的sha256算法的性能,建议测试文件大小为1M以上。
./sha256 /home/user/devkitdemo/porting/kafka-2.4.1-1.el7.noarch.rpm
![CA9A5F9ED-6110-4847-A709-3486BBEFE787.png]()
从上图结果看出,加速后实现的sha256算法所用时间约为普通实现的1/10,性能提升明显。
示例简介
尊敬的开发者你好,鲲鹏开发框架工具是一款使能用户在鲲鹏服务器上进行开发的工具,帮助开发者更便捷地开发鲲鹏应用,使能开发者高效创新,您可以阅读本篇文档快速上手原生开发。
本篇文档主要介绍了以下知识:
基础技能:
什么是鲲鹏原生开发
鲲鹏原生开发是指使用鲲鹏DevKit的原生开发能力,如鲲鹏开发框架(含场景化SDK)、编译调试工具、云测服务、调优&诊断工具等,在鲲鹏平台上开发新软件/新功能,充分发挥鲲鹏架构优势,从而获得开发效率/运行性能提升。
本实验将重点体验原生开发过程中的环境配置、代码开发、编译部署、鲲鹏平台运行这几个步骤。针对这个过程中的关键痛点,DevKit开发套件提供了全流程的解决方案,帮助开发者快速上手鲲鹏原生开发。
原生开发过程中的常见问题
从上一节的图片内容中可知,在鲲鹏原生开发过程中,开发者需要先完成环境部署,安装应用运行所需的依赖软件,之后创建应用工程,进行应用开发,开发完成后将代码上传到鲲鹏平台进行编译部署。在这个过程中开发者通常会碰到如下问题:
针对上面提到的问题,DevKit提供了相应的解决方案,首先DevKit开发框架工具针对用户高频开发场景提供了场景化SDK和工程样例,场景化SDK提供UI交互部署或脚本部署方式,环境部署问题一步解决;工程样例内容详尽注释丰富,帮助开发者快速上手进行定制修改;开发过程中,针对鲲鹏函数、编译选项等信息进行智能提示补全,补全信息中包含具体使用信息,减少开发者查阅资料的工作,提升编程效率。
完成代码开发后,开发者可以通过编译调试工具一键将代码上传远端编译部署,后续代码修改可自动同步到远端,非常方便。后续子章节将对上述内容进行具体讲解。
探索鲲鹏原生开发工具
本小节将详细讲解鲲鹏原生开发工具提供的功能,帮助开发者了解鲲鹏原生开发工具如何帮助开发者提升开发效率。
1、场景化SDK & 工程样例
在环境配置阶段,可以使用场景化SDK快速完成环境部署,同时利用场景化工程样例,快速完成工程创建,开发者可以根据样例中的代码方便的进行定制修改。DevKit开发套件当前提供了四大开发场景的场景化SDK与工程样例,分别是通用计算应用、安全计算应用、高性能计算应用和DPAK应用。开发者可以通过工具的UI交互页面快速完成上述开发场景的环境部署与工程创建。
其中通用计算应用聚合加速库(鲲鹏指令加速),硬件加速(KAE),同构加速(HAF)内容打包成SDK,支持主流操作系统下快速灵活部署;同时提供加速库应用、硬件加速应用、同构加速框架应用工程样例,快速发挥鲲鹏软硬件能力,适用于需要快速提升应用性能的应用开发。
安全计算应用聚合TEE-GP API、内核驱动、用户态API库、华为安全函数库形成完整的SDK,支持主流操作系统下快速灵活部署;同时提供机密数据保存、匿名投票、证书签发等丰富的工程样例,快速掌握鲲鹏安全计算能力,适用于需要保存机密数据/敏感信息的应用开发。
高性能计算应用聚合编译器,高性能通信库,数学库形成完整的SDK,支持主流操作系统下通过交互式安装脚本灵活安装,解决HPC环境部署难题;提供HMPI和KML工程样例,降低开发者使用门槛,适用于需要提升高性能计算应用性能的应用开发。
DPAK应用针对智能网卡卸载场景,将使能智能网卡(SP680)的开源组件聚合成SDK包,助力开发者快速搭建OpenStack和OVS场景,解决环境部署难题。同时提供虚拟化卸载、OVS卸载工程样例,快速体验智能网卡卸载带来的网络加速效果,适用于有智能网卡网络加速需求的应用开发。
2、函数信息智能补全
完成工程创建后,开发者可以在工程样例上完成开发需要的定制修改,DevKit开发套件针对鲲鹏加速库函数、NEON加速函数、鲲鹏编译选项等内容进行智能联想补全,同时提供函数的具体使用信息,减少开发者查阅资料的工作,提升编程效率。
本小节介绍了鲲鹏DevKit在环境配置、代码开发步骤中提供的强大功能,如果大家想深入了解DevKit开发套件,欢迎大家前往鲲鹏社区查阅鲲鹏DevKit工具的详细内容:
https://www.hikunpeng.com/developer/devkit
鲲鹏原生开发试验介绍
接下来将以场景化工程样例中的通用工程SHA256为例来学习如何通过鲲鹏开发框架工具完成工程的创建、编译和运行。
SHA256是SHA-2下细分出的一种算法,本质上就是一个哈希函数。SHA256是一种信息摘要的标准算法,对于任意长度消息,SHA256都会产生一个256bit长度的散列值,称为消息摘要。鲲鹏提供了针对SHA256算法的计算加速指令,提升性能。为了体验SHA256的性能提升效果,需要进行以下几项工作:
创建SHA256通用计算工程
点击示例工程页面右侧的“运行调试”按钮打开cloudide开发环境。之后点击cloudide页面左侧的“插件管理”页签,搜索“kunpeng”,安装鲲鹏原生开发框架插件。
安装完成后,点击左侧鲲鹏原生开发插件的图标,如果是第一次登录鲲鹏DevKit系列的插件,需要创建用户,点击登录后创建密码,点击“确认”,进入到登录页面。如果之前已经创建过用户,直接输入密码登录即可
进入登录页面,输入密码、点击下方登录后勾选“我已阅读并同意”,点击“确认”,登录开发工具。
登录后已打开新建鲲鹏应用工程页面,也可以点击左上角“新建鲲鹏应用工程” 按钮打开页面,依次选择“通用计算应用” - “加速库应用”。
选择模板工程中的“信息摘要”新建应用,创建工程名为project的信息摘要工程(如您在此处修改默认工程名,在后续命令中需要适配相应工程路径),之后点击浏览,在上方输入框选择保存地址,这里选择home文件夹下的user子文件夹,之后点击“新建应用”。
工程创建成功后,点击“查看应用”,然后在弹框中选择“本窗口打开”打开工程。打开后可以在左侧的资源管理器中选择文件进行显示编辑。
编译生成二进制文件
现在对新建的工程进行编译。点击左上角的应用程序菜单,接着点击“终端”中的“新建终端”。
然后在终端中输入下述命令后回车进行编译。
true&&source /etc/profile&&cd /home/user/project;cd src/sha256/&& rm -r build;mkdir -p build && cd build && cmake .. && make
编译成功后终端显示如下。
在终端输入命令切换到编译sha256后生成的文件夹
cd /home/user/project/src/sha256/build
然后运行编译好的sha256二进制包,对比鲲鹏加速前后的sha256性能。运行命令如下,参数为用于测试的数据文件,可以为任意文件,此处以/home/user/devkitdemo/porting/kafka-2.4.1-1.el7.noarch.rpm文件为例; 注意:为了明显对比用C实现的sha256算法和用汇编实现的sha256算法的性能,建议测试文件大小为1M以上。
./sha256 /home/user/devkitdemo/porting/kafka-2.4.1-1.el7.noarch.rpm
从上图结果看出,加速后实现的sha256算法所用时间约为普通实现的1/10,性能提升明显。
恭喜
到这里整个实验流程就已经结束了,通过上面的教程我们快速熟悉原生开发的过程和优势。各位开发者也可以接着探索安全计算应用、高性能计算应用、DPAK应用等其他应用功能,利用鲲鹏开发框架工具更好的提升开发效率。
除了上述学习内容,我们还提供了很多辅助学习资源(课程/实验/文档/文章),希望能帮助到您更好的使用鲲鹏开发框架插件:
手把手带你使用开发框架创建通用计算应用(课程):https://www.hikunpeng.com/learn/courses-list/detail/1590236511928336385
《Gzip工程创建》项目大作业解析(课程):
<https://www.hikunpeng.com/learn/courses-list/detail/1590237151154966530>
鲲鹏开发框架插件-介绍(文档):
<https://www.hikunpeng.com/document/detail/zh/kunpengdevps/vscode/usermanual/kunpengidevscode_10_0081.html>