鲲鹏DevKit插件工具简介
鲲鹏DevKit插件工具是基于Visual Studio Code提供给开发者面向鲲鹏平台进行软件开发、迁移、编译调试和性能调优等一系列端到端工具,即插即用。一体化呈现应用迁移工具、亲和分析工具、应用开发工具、编译调试工具、系统性能分析工具、Java性能分析工具及系统诊断工具的完整开发套件。
鲲鹏DevKit工具是一个工具集,由多个子工具组成,支持IDE前端界面、支持一键式安装后端、代码编辑体验增强、自动检测安装鲲鹏编译器、编译调试、用例可视化、编码辅助和工程分析扫描。用户可以通过鲲鹏DevKit插件工具直接部署鲲鹏DevKit,也可以单独选择所需子工具安装使用。
当前开发套件支持的工具如表1所示。
工具 |
说明 |
软件包名称 |
---|---|---|
应用迁移工具 |
支持x86 Linux软件迁移到鲲鹏Linux上的扫描、分析与迁移。 |
DevKit-Porting-Advisor-x.x.x-Linux-platform.tar.gz |
亲和分析工具 |
支持鲲鹏920平台软件代码质量检查,提升代码质量、优化访存性能。 |
DevKit-Affinity-Analyzer-x.x.x-Linux-platform.tar.gz |
应用开发工具 |
利用鲲鹏平台各类算力及高性能组件帮助开发者高效开发鲲鹏应用,仅支持在IDE端使用。 |
DevKit-Devtools-x.x.x-Linux-platform.tar.gz |
编译调试工具 |
支持鲲鹏平台远程编译调试能力,通过可视化界面提升编译效率,仅支持在IDE端使用。 |
DevKit-Debugger-x.x.x-Linux-platform.tar.gz |
系统性能分析工具 |
提供系统多场景性能采集和分析能力,并基于调优系统给出优化建议。 |
DevKit-Sys-Perf-x.x.x-Linux-platform.tar.gz |
Java性能分析工具 |
针对运行在鲲鹏服务器的Java程序进行性能的分析和优化。 |
DevKit-Java-Perf-x.x.x-Linux-platform.tar.gz |
系统诊断工具 |
快速定位和诊断各部件异常,并识别源码中内存使用的问题点。 |
DevKit-Sys-Diagnosis-x.x.x-Linux-platform.tar.gz |
- 软件包名称中的“x.x.x”表示版本号;“platform”表示安装包所适用的平台,x86服务器为x86-64,基于鲲鹏920的服务器为Kunpeng。
- 软件包中包含有“Open_Source_Software_Notice.txt”文件。
应用迁移工具
鲲鹏应用迁移工具可以简化应用迁移的过程,支持将x86 Linux软件迁移到鲲鹏Linux上的扫描、分析与迁移。通过该工具能够自动分析并输出指导报告,极大提高了代码迁移效率。
鲲鹏应用迁移工具支持的功能特性如下:
功能 |
描述 |
---|---|
|
|
|
|
在鲲鹏平台上,分析待迁移软件包构成,重构并生成鲲鹏平台兼容的软件包,或直接提供已迁移了的软件包。 |
|
在鲲鹏平台上,对部分常用的解决方案专项软件源码,进行自动化迁移修改、编译并构建生成鲲鹏平台兼容的软件包。 |
亲和分析工具
亲和分析支持软件代码质量检查,提升代码质量、优化访存性能,亲和分析工具仅支持基于鲲鹏920的鲲鹏平台。亲和分析工具支持的功能特性如下:
功能 |
描述 |
---|---|
64位运行模式检查是将原32位平台上的软件迁移到64位平台上,进行迁移检查并给出修改建议。 |
|
结构体字节对齐检查是在需要考虑字节对齐时,检查源码中结构体类型变量的字节对齐情况。 |
|
缓存行对齐检查是对C/C++源码中结构体变量进行128字节对齐检查,提升访存性能。 |
|
内存一致性静态检查 |
内存一致性静态检查就是检查源码迁移在鲲鹏平台运行时可能存在的内存一致性问题,并提供插入内存屏障的建议。 |
向量化检查 |
向量化检查功能用于对可向量化源码片段进行检查,并提供向量化修改建议。 |
矩阵化检查 |
矩阵化检查功能用于对可矩阵化源码片段进行检查,并提供矩阵化修改建议。 |
构建亲和 |
构建亲和功能用于分析 |
计算精度分析 |
精度分析工具应用函数插桩后,分别在x86平台和鲲鹏平台运行,最终通过对比输出结果,分析平台计算精度差异。 |
应用开发工具
鲲鹏应用开发工具支持创建鲲鹏应用工程,支持C/C++开发语言,编码时能够自动匹配鲲鹏加速库函数字典、智能提示、高亮、联想字典中可以替换的库和函数。
鲲鹏应用开发工具支持的功能特性如下。
功能 |
描述 |
---|---|
通用计算应用 |
鲲鹏应用开发工具提供鲲鹏通用计算SDK,创建通用计算应用工程以支持基础应用开发,包含加速库应用、硬件加速应用以及同构加速框架应用。 |
鲲鹏应用开发工具能自动化创建 |
|
基于高性能通信库和数学库创建高性能计算应用,用户能够通过扩展工程样例,提升开发效率。 |
|
鲲鹏应用开发工具能自动化创建DPAK工程并提供鲲鹏DPAK SDK,鲲鹏DPAK提供面向Smart NIC场景的业务卸载能力,支持网络卸载、虚拟化卸载等场景。 |
|
数据IO应用 |
基于鲲鹏BoostKit存储加速算法库(KSAL)构建数据IO应用,使用鲲鹏自研存储加速算法库提升IO读性能。 |
字典管理 |
鲲鹏应用开发工具可导入本地字典文件。 |
编程辅助 |
支持鲲鹏加速库函数的悬浮提示、函数搜索,支持编码时自动联想和高亮鲲鹏加速库优化后的相关函数。 |
编译调试工具
鲲鹏编译调试工具能一键式部署鲲鹏编译器,支持单机下GPU应用调试能力,通过统一调试界面调试GPU应用,实现
功能 |
描述 |
---|---|
部署编译器 |
支持一键式部署 |
通用编译 |
通用编译提供最基础的远程编译能力,可视化配置编译参数,一键式编译且编译过程信息实时展示。 |
自动反馈优化编译 |
自动反馈优化是一种可简化 |
通用应用调试 |
通用应用调试提供鲲鹏平台远程调试能力,提供图形化界面,大幅提升调试效率。 |
HPC并行应用调试 |
编译调试工具提供HPC场景多节点并行调试能力,仅支持以Launch模式调试MPI应用。并行计算包含任务并行和数据并行,指每个节点执行不同的任务或每个节点存储不同的数据,目前HPC并行任务只支持CPU调试。 |
编译调试工具支持鲲鹏平台调试CUDA程序,通过统一的调试界面使用CUDA-GDB调试GPU应用。 |
|
安全应用调试 |
在应用开发工具中创建Java或Python工程后,进入编译调试工具会生成一个通用编译任务和一个安全应用调试任务,可根据实际情况进行编译运行,用户也可自行创建安全应用调试任务。 |
DPU调试器 |
编译调试工具支持基于鲲鹏平台进行DPU调试,实现DPU XDB(X Debugger)调试能力。XDB是针对DPU的调试工具,提供用户在CPU上通过GDB调试微码程序,查看寄存器、局部变量、Spram、线程变量、调用栈,设置断点、监视等能力。 |
系统性能分析工具
系统性能分析是针对基于鲲鹏服务器的性能分析工具,能收集服务器的处理器硬件、操作系统、进程/线程、函数等各层次的性能数据,分析出系统性能指标,定位到系统瓶颈点及热点函数,给出优化建议。该工具可以辅助用户快速定位和处理软件性能问题,不支持x86环境。
调优助手是针对基于鲲鹏服务器的调优工具,能系统化组织性能指标,引导用户分析性能瓶颈,实现快速调优。
Java性能分析工具
Java性能分析是针对基于鲲鹏的服务器上运行的Java程序的性能分析和优化工具,能图形化显示Java程序的堆、线程、锁、垃圾回收等信息,收集热点函数、定位程序瓶颈点,帮助用户采取针对性优化。
系统诊断工具
任务分类 |
描述 |
---|---|
内存使用诊断 |
分析应用程序存在的内存使用问题,包括内存未释放和异常释放,并支持关联出调用栈信息和源码。 |
内存越界诊断 |
分析应用程序的内存越界,给出异越界类型和内存访问信息,并支持关联出调用栈和源码。 |
网络IO诊断 |
压测网络,获得网络最大能力,为网络IO性能优化提供基础参考数据;诊断网络,定位网络疑难问题,解决因网络配置和异常而导致的网络IO性能问题。具体包括:网络拨测、丢包诊断( |
存储IO诊断 |
压测存储IO,获得存储设备最大能力,为存储IO性能优化提供基础参考数据。支持存储IO压测,获得存储IO最大能力,包括:吞吐量、IOPS、时延。 |