鲲鹏系列五: DevKit开发全系列工具技术要点总结

简介: 摩尔定律发展趋势的逐渐放缓,让算力和性能陷入一系列发展瓶颈,市场对创新架构的需求日益加深,计算平台的创新之战一触即发

相信大家也都知道,应用服务从x86平台转向ARM云平台已成为大势所趋。如今x86架构的不足和劣势也愈发明显,功耗大、通用寄存器数量少、计算机硬件利用率低、寻址范围小、指令格式的内部结构繁冗复杂等问题开始凸显出来,并且难以跟上当今算力发展的速度。在当今的新基建风口下,算力一跃成为了新的生产力,云计算、AI 与 5G 则是新的生产工具,技术聚变将引发商业裂变,带动各行各业的数字化快速发展。基于 5G 等新兴技术的创新应用催生多样化算力的需求,市场既需要通用计算算力也需要异构计算算力。此外,摩尔定律发展趋势的逐渐放缓,让算力和性能陷入一系列发展瓶颈,市场对创新架构的需求日益加深,计算平台的创新之战一触即发。与此同时,ARM 架构在移动互联网盛行的当下却开始焕发出别样的生机和活力。从本质上讲,由于架构差异、指令集差异和向量寄存器差异这三大差异的存在,在x86上运行的程序就根本不可能毫无阻碍地就可以在鲲鹏处理器上使用,必须经过编译,这同时也证明了迁移的必要性和必然性。我还记得2020年6月8日在四川成都鲲鹏开发者嘉年华的DevRun开发者沙龙上梁冰总监(计算产业开源与生态营销总监)表示说:“非常希望 ARM 和鲲鹏的生态能成为下一个计算产业迭代的方向。”

(以下表格是对比的两种平台的值溢出问题)

image.png

如果单纯依靠人工进行代码迁移,不仅分析过程投入工作量大、周期长、需反复试错定位、准确率低下,而且还要求移植人员专业技能高。此外,移植到新处理器平台后的程序,容易出现程序性能问题,例如:CPU占用率过高,I/O吞吐率下降等,这就需要对程序进行优化。但传统性能分析优化手段单一,依赖专家经验,时间成本高,效果不佳,这些都超出了一般程序员的能力范围。

不仅仅是我们开发者会遇到这样的一些困难,我们国家的整个通信和信息产业也面临着艰巨的挑战。自从19年美国对华为以及我国众多的高端科技企业和各大高校的制裁打压以来,我国通讯设备行业的芯片制造和研发面临的困境越来越大,应用服务的推广也备受阻碍。

也正是为了应对这些挑战,鲲鹏开发套件由此应运而生,Dependency Advisor(分析扫描工具)、Porting Advisor(代码迁移工具)、Tuning Kit(性能优化工具)三大套件的诞生能够协助我们开发人员在面向鲲鹏处理器时进行快速迁移和调优,能够对海量代码进行自动化扫描和分析,识别出需要移植的依赖库文件,给出专业的移植报告与建议,并能够进行从系统、进程、函数到代码的全景性能分析,为开发提供从软件评估、代码移植到性能调优端到端的一站式服务套件。

image.png

随着应用迁移的不断深入,基于鲲鹏进行软件开发的需求也越来越多,鲲鹏DevKit全新升级为2.0版本,从加速“应用迁移”走向使能“原生开发”,这个版本已经在2021年12月31日在鲲鹏社区上线了。2.0版本相比于1.0版本,性能调优工具在原有的系统性能分析、Java性能分析基础之上,新增调优助手功能,指导用户快速掌握调优方法、降低调优难度。此外,系统诊断在内存和网络诊断基础上完善了存储诊断能力,能够快速定位相关部件异常点,准确度大于90%。新版本中进一步增强了迁移能力:新增10余款主流HPC专项软件的快速迁移能力;新增了鲲鹏亲和检查,包括程序运行模式、结构体字节对齐、Cache line对齐、内存一致性等检查功能,可以帮助我们用户软件更好的适配鲲鹏架构,产生更优的鲲鹏亲和代码。

image.png

DevKit还具有以下特性:

  • 鲲鹏工程向导+场景化SDK

快速创建鲲鹏工程,鲲鹏工程包含安全计算应用、通用计算应用和高性能计算应用的场景化应用工程模板,快速辅助工程环境构建,配置检查、依赖下载、构建文件生成等。

  • 一键创建工程,推荐鲲鹏原生编译选项

无需编写代码,快速上手鲲鹏开发,自动配置鲲鹏亲和编译选项

  • 集成鲲鹏加速库

支持鲲鹏加速库自动下载及部署,展示加速库示例代码

  • 安全计算SDK

基于鲲鹏芯片特有的安全底座TrustZone,构建数字安全屏障

  • 高性能计算SDK

基于高性能通信库和数学库,帮助用户构建极致性能应用

image.png

相关文章
|
JSON 前端开发 JavaScript
华为鸿蒙开发第二课
华为鸿蒙开发第二课
216 0
|
23天前
|
存储 人工智能 文字识别
AI开发初体验:昇腾加持,OrangePi AIpro 开发板
本文分享了作者使用OrangePi AIpro开发板的初体验,详细介绍了开箱、硬件连接、AI程序开发环境搭建、以及通过Jupyter Lab运行AI程序的过程,并展示了文字识别、图像分类和卡通化等AI应用实例,表达了AI时代已经到来的观点。
26 1
|
4月前
|
编译器 调度 数据库
DP读书:鲲鹏处理器 架构与编程(十)鲲鹏软件生态与云服务
DP读书:鲲鹏处理器 架构与编程(十)鲲鹏软件生态与云服务
189 0
|
Linux 开发工具 芯片
国产之路:复旦微调试笔记3:环境配置
Xilinx:基本流程为逻辑在vivado中配置开发生成hdf,不带操作操作系统时直接用sdk在线或者参考之前固化篇,带操作系统时用petalinux配制,生成BOOT.bin(含fsbl,自己生成的bit文件和uboot)和image.ub(默认文件系统,kernel和设备树的打包)(如果用jffs2文件系统需要设置将文件系统单独出来,再生成一个rootfs.jffs2)
2470 1
国产之路:复旦微调试笔记3:环境配置
|
JavaScript API 内存技术
华为鸿蒙开发第四课
华为鸿蒙开发第四课
179 0
|
安全 Linux 网络安全
统信 UOS 版完成主流应用适配,其中包括微信
统信 UOS 版完成主流应用适配,其中包括微信
1350 0
|
IDE Linux 编译器
鲲鹏系列二: DevKit编译调试工具技术要点总结
在实际的开发场景中,开发者经常需要在Linux服务器上进行开发、编译、调试和运行等操作。基于绝大多数开发者更习惯于在本地Windows环境中使用IDE编码,这需要开发者每次编写好代码后手动上传到远程服务器,然后在服务器上进行编译、调试一系列操作
224 0
 鲲鹏系列二: DevKit编译调试工具技术要点总结
|
缓存 IDE 编译器
鲲鹏系列一: DevKit代码迁移工具技术要点总结
处理器所支持的指令集不同,意味着开发者可能需要对代码进行跨平台的迁移。通常,代码迁移是件复杂又繁琐的工作,需要花费开发者大量精力对软件包、源代码、依赖库文件进行人工分析、检查和识别,手动修正不同指令集之间的相关差异,这些差异主要涉及语法、指令、函数和库文件支持情况。
461 0
鲲鹏系列一: DevKit代码迁移工具技术要点总结
|
敏捷开发 开发框架 Java
鲲鹏系列四: DevKit开发框架插件工具技术要点总结
鲲鹏应用开发面临问题主要包含以下三方面: 开发:缺乏鲲鹏亲和开发的实时引导;缺乏对鲲鹏特点的检查工具;依赖库生态难以快速获取。 编译调试:难以充分利用微架构性能优势;无多样算力编译和调试能力。 测试:兼容性测试工作量大;应用的安全性、稳定性、性能及功耗等问题难以保障。
394 0
 鲲鹏系列四: DevKit开发框架插件工具技术要点总结
|
数据采集 Java 数据挖掘
鲲鹏系列三: DevKit性能分析工具技术要点总结
系统性能的提升,需要综合考虑计算机硬件、操作系统、应用程序等多方面的因素,这些因素是互相影响的,要不断的调试、分析、调整相关参数,才能最终达到最优的系统性能。这一过程比较漫长,对人员的技术要求也比较高,很多情况下,调优人员在特定系统上花费了大量的时间,但是最终也不一定能达到性能的有效提升。
387 0
鲲鹏系列三: DevKit性能分析工具技术要点总结