鲲鹏DevKit简介
鲲鹏DevKit是一款提供涵盖应用迁移、开发调试、编译、测试、性能调优及系统诊断等各环节的开发使能工具集,方便开发者快速开发出鲲鹏亲和的高性能软件。同时,帮助开发者加速应用迁移和算力升级,面向全研发作业流程,提升应用迁移、开发、调优效率,助力开发者高效创新。迁移、开发、调优全程无缝衔接。
- 鲲鹏DevKit提供了C/C++/Java/Python等多种编程语言的开发环境,方便开发者根据自身需求选择合适的编程语言进行开发,同时支持Web端和IDE端。
- 鲲鹏DevKit内置了丰富的
SDK 以及优化库、迁移工具、调试工具、性能测试工具等,方便开发者快速构建基于鲲鹏平台的高性能应用程序,并充分发挥鲲鹏平台的性能优势。 - 鲲鹏DevKit提供了详细的文档和示例代码,帮助开发者快速入手、掌握鲲鹏平台的开发技术。
- 鲲鹏DevKit提供了在线技术支持和社区交流平台,方便开发者在使用过程中遇到问题时及时得到解答,并与其他开发者进行交流和分享。
鲲鹏DevKit支持的工具如下表。
工具 |
说明 |
---|---|
应用迁移工具 |
支持x86 Linux软件迁移到鲲鹏Linux上的扫描、分析与迁移。 |
亲和分析工具 |
支持鲲鹏920平台软件代码质量检查,提升代码质量、优化访存性能。 |
应用开发工具 |
利用鲲鹏平台各类算力及高性能组件帮助开发者高效开发鲲鹏应用,仅支持在IDE端使用。 |
编译调试工具 |
支持鲲鹏平台远程编译调试能力,通过可视化界面提升编译效率,仅支持在IDE端使用。 |
系统性能分析工具 |
提供系统多场景性能采集和分析能力,并基于调优系统给出优化建议。 |
Java性能分析工具 |
针对运行在鲲鹏服务器的Java程序进行性能的分析和优化。 |
系统诊断工具 |
快速定位和诊断各部件异常,并识别源码中内存使用的问题点。 |
应用迁移工具
鲲鹏应用迁移工具可以简化应用迁移的过程,支持将x86 Linux软件迁移到鲲鹏Linux上的扫描、分析与迁移。通过该工具能够自动分析并输出指导报告,极大提高了代码迁移效率。
鲲鹏应用迁移工具支持的功能特性如下:
功能 |
描述 |
---|---|
系统迁移 |
汇总分析应用系统中软件包、中间件、数据库等已安装软件,并提供可迁移性评估报告和迁移指导。 |
|
|
|
|
在鲲鹏平台上,分析待迁移软件包构成,重构并生成鲲鹏平台兼容的软件包,或直接提供已迁移的软件包。 |
|
在鲲鹏平台上,对部分常用的解决方案专项软件源码,进行自动化迁移修改、编译并构建生成鲲鹏平台兼容的软件包。 |
亲和分析工具
亲和分析支持软件代码质量检查,提升代码质量、优化访存性能,亲和分析工具仅支持基于鲲鹏920的鲲鹏平台。亲和分析工具支持的功能特性如下:
功能 |
描述 |
---|---|
64位运行模式检查是将原32位平台上的软件迁移到64位平台上,进行迁移检查并给出修改建议。 |
|
结构体字节对齐检查是在需要考虑字节对齐时,检查源码中结构体类型变量的字节对齐情况。 |
|
缓存行对齐检查是对C/C++源码中结构体变量进行128字节对齐检查,提升访存性能。 |
|
内存一致性静态检查 |
内存一致性静态检查就是检查源码迁移在鲲鹏平台运行时可能存在的内存一致性问题,并提供插入内存屏障的建议。 |
向量化检查 |
向量化检查功能用于对可向量化源码片段进行检查,并提供向量化修改建议。 |
矩阵化检查 |
矩阵化检查功能用于对可矩阵化源码片段进行检查,并提供矩阵化修改建议。 |
构建亲和 |
构建亲和功能用于分析 |
计算精度分析 |
精度分析工具应用函数插桩后,分别在x86平台和鲲鹏平台运行,最终通过对比输出结果,分析平台计算精度差异。 |
应用开发工具
鲲鹏应用开发工具支持创建鲲鹏应用工程,支持C/C++开发语言,编码时能够自动匹配鲲鹏加速库函数字典、智能提示、高亮、联想字典中可以替换的库和函数。
鲲鹏应用开发工具支持的功能特性如下。
功能 |
描述 |
---|---|
通用计算应用 |
鲲鹏应用开发工具提供鲲鹏通用计算SDK,创建通用计算应用工程以支持基础应用开发,包含加速库应用、硬件加速应用以及同构加速框架应用。 |
鲲鹏应用开发工具能自动化创建 |
|
基于高性能通信库和数学库创建高性能计算应用,用户能够通过扩展工程样例,提升开发效率。 |
|
鲲鹏应用开发工具能自动化创建DPAK工程并提供鲲鹏DPAK SDK,鲲鹏DPAK提供面向Smart NIC场景的业务卸载能力,支持网络卸载、虚拟化卸载等场景。 |
|
字典管理 |
鲲鹏应用开发工具可导入本地字典文件。 |
编程辅助 |
支持鲲鹏加速库函数的悬浮提示、函数搜索,支持编码时自动联想和高亮鲲鹏加速库优化后的相关函数。 |
编译调试工具
鲲鹏编译调试工具能一键式部署鲲鹏编译器,支持单机下GPU应用调试能力,通过统一调试界面调试GPU应用,实现
功能 |
描述 |
---|---|
部署编译器 |
支持一键式部署 |
通用编译 |
通用编译提供最基础的远程编译能力,可视化配置编译参数,一键式编译且编译过程信息实时展示。 |
自动反馈优化编译 |
自动反馈优化是一种可简化 |
通用应用调试 |
通用应用调试提供鲲鹏平台远程调试能力,提供图形化界面,大幅提升调试效率。 |
HPC并行应用调试 |
编译调试工具提供HPC场景多节点并行调试能力,仅支持以Launch模式调试MPI应用。并行计算包含任务并行和数据并行,指每个节点执行不同的任务或每个节点存储不同的数据,目前HPC并行任务只支持CPU调试。 |
编译调试工具支持鲲鹏平台调试CUDA程序,通过统一的调试界面使用CUDA-GDB调试GPU应用。 |
|
安全应用调试 |
在应用开发工具中创建Java或Python工程后,进入编译调试工具会生成一个通用编译任务和一个安全应用调试任务,可根据实际情况进行编译运行,用户也可自行创建安全应用调试任务。 |
系统性能分析工具
系统性能分析是针对基于鲲鹏服务器的性能分析工具,能收集服务器的处理器硬件、操作系统、进程/线程、函数等各层次的性能数据,分析出系统性能指标,定位到系统瓶颈点及热点函数,给出优化建议。该工具可以辅助用户快速定位和处理软件性能问题,不支持x86环境。
调优助手是针对基于鲲鹏服务器的调优工具,能系统化组织性能指标,引导用户分析性能瓶颈,实现快速调优。
Java性能分析工具
Java性能分析是针对基于鲲鹏的服务器上运行的Java程序的性能分析和优化工具,能图形化显示Java程序的堆、线程、锁、垃圾回收等信息,收集热点函数、定位程序瓶颈点,帮助用户采取针对性优化。
系统诊断工具
任务分类 |
描述 |
---|---|
内存使用诊断 |
分析应用程序存在的内存泄漏点,包括内存未释放和异常释放,并支持关联出调用栈信息和源码。 |
内存越界诊断 |
分析应用程序的内存异常访问点,给出异常访问类型和内存访问信息,并支持关联出调用栈和源码。 |
网络IO诊断 |
压测网络,获得网络最大能力,为网络IO性能优化提供基础参考数据;诊断网络,定位网络疑难问题,解决因网络配置和异常而导致的网络IO性能问题。具体包括:网络拨测、丢包诊断( |
存储IO诊断 |
压测存储IO,获得存储设备最大能力,为存储IO性能优化提供基础参考数据。支持存储IO压测,获得存储IO最大能力,包括:吞吐量、IOPS、时延。 |
相关概念
概念词 |
说明 |
---|---|
SO依赖库 |
Linux中的SO(Shared Object)文件,其名称类似“libname.so.1.1.1”。 |
依赖字典 |
|
软件构建工程文件 |
C/C++/ASM/Fortran/Go常用的软件构建工具Make和CMake对应的构建文件是Makefile和CMakeLists.txt。 |
IPC |
|
它基于事件采样原理,以性能事件为基础,支持针对处理器相关性能指标与操作系统相关性能指标的性能剖析。常用于性能瓶颈的查找与热点代码的定位。 CPU周期(CPU Cycles)是默认的性能事件,也叫做clock tick。根据tick |
|
USE |
|
在线分析 |
在线分析是一种应用程序动态分析方法,包含对于目标JVM和Java程序的双重分析。它用于分析应用程序在运行时刻,资源消耗在内部的分布、方法调用频度与耗时。该方法常用于辅助应用的性能瓶颈定位和性能调优。 在线分析通过Instrument程序的类和方法,来计算特定代码所有的方法调用情况,可能对性能造成比较大的影响。 |
采样分析 |
通过采样的方式,收集JVM的内部活动/性能事件,以录制及回放的方式进行离线分析。采样分析不需要修改应用程序的代码,对性能影响较小,适用于大型的Java程序。因为通过定期采集数据的方式,精确度相对在线分析较低。 |
上层应用Workload |
Workload分析主要指通过动态修改上层应用代码并埋下hook来收集特定的应用相关性能数据,通过Workload分析,可以收集并定位用户关心的特定代码的工作性能。 |