鲲鹏系列一: DevKit代码迁移工具技术要点总结

简介: 处理器所支持的指令集不同,意味着开发者可能需要对代码进行跨平台的迁移。通常,代码迁移是件复杂又繁琐的工作,需要花费开发者大量精力对软件包、源代码、依赖库文件进行人工分析、检查和识别,手动修正不同指令集之间的相关差异,这些差异主要涉及语法、指令、函数和库文件支持情况。

处理器所支持的指令集不同,意味着开发者可能需要对代码进行跨平台的迁移。通常,代码迁移是件复杂又繁琐的工作,需要花费开发者大量精力对软件包、源代码、依赖库文件进行人工分析、检查和识别,手动修正不同指令集之间的相关差异,这些差异主要涉及语法、指令、函数和库文件支持情况。为了解决用户代码可迁移性人工排查困难、移植经验欠缺、反复依赖编译调错定位等,投入工作量大,整体效率低的问题,我们推出Kunpeng Porting Advisor鲲鹏代码迁移工具。

鲲鹏代码迁移工具是一款可以简化应用迁移到鲲鹏架构服务器过程的工具。主要面向鲲鹏平台的开发者、用户和第三方待迁移软件提供方开发工程师,对海量代码进行快速地自动化扫描和分析,提供专业的迁移指导报告。同时能够自动分析出需修改的代码内容,并指导如何修改,帮助开发者实现高效的代码迁移。同时支持原生开发代码亲和检查等能力。

image.png

代码迁移工具功能特性
代码迁移工具可以作为独立软件提供给鲲鹏生态用户安装使用,支持的功能特性如下

软件迁移评估
检查用户提供的软件安装包,识别依赖关系,并提供鲲鹏兼容版本的so依赖库对应rpm的包OS发行版官方下载接

检查用户在x86服务器上已安装的软件,识别依赖关系,并提供鲲鹏兼容版本的so依赖库对应rpm的包OS发行版官方下载接。

源码迁移
检查用户C/C++/汇编/Fortran代码软件构建工程文件,并指导用户如何迁移该文件

检查用户C/C++/汇编/Fortran/python/Java/Scala/Go软件构建工程文件使用的链接库,并提供可迁移性信息

检查用户C/C++/汇编/Fortran软件源码,并指导用户如何迁移源文件

软件包重构
分析用户x86软件包构成,重构为适用于鲲鹏平台的软件包。

专项软件迁移
基于我们丰富的软件迁移经验,帮助用户快速迁移Web、数据库、大数据、高性能计算四大解决方案类软件。

鹏亲和分析
目前含64位运行模式检查、结构体字节对齐检查、缓存行字节对齐检查、内存一致性检查、构建亲和检查。

image.png

使用方式:支持命令行方式、Web、IDE插件三种工作模式,后两种方式下支持多用户并发扫描。

限制:工具不支持迁移windows环境下的软件或者ISO/Mac OS平台应用至Kunpeng平台Linux环境下。

应用场景:

image.png

image.png

内存一致性
(1):静态检查,检查用户软件迁移到鲲鹏平台可能存在的弱内存序问题并修复

(2):自动修复功能,更新用户使用的GCC编译器,在用户软件的编译过程中自动完成弱内存序问题的修复

(3):支持下载静态检查工具产生的BC文件,可根据实际需要进行BC文件扫描分析

(4):静态检查工具、编译器自动修复工具组合使用,可一键式修复

(5):支持自动生成目标工程的中间文件,不需要用户修改编译脚本

相关文章
|
7月前
|
Dubbo 前端开发 Java
让你在组建企业级项目时手到擒来——浅谈各类常用工具和框架概述
让你在组建企业级项目时手到擒来——浅谈各类常用工具和框架概述
|
算法 数据可视化 前端开发
第三代软件开发-QCustomPlot核心迁移
欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。 在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。 在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资
|
存储 消息中间件 缓存
相比游戏客户端,游戏服务端开发无关紧要吗
感觉游戏服务端,除了更新,保存数据啊、生成随机物品啊、都没什么了,好像游戏开发场景中,服务端已经无关紧要了。看着客户端忙成狗,正在摸鱼的你是否也有过这样的疑问?
623 0
相比游戏客户端,游戏服务端开发无关紧要吗
|
4月前
|
缓存 开发者 测试技术
跨平台应用开发必备秘籍:运用 Uno Platform 打造高性能与优雅设计兼备的多平台应用,全面解析从代码共享到最佳实践的每一个细节
【8月更文挑战第31天】Uno Platform 是一种强大的工具,允许开发者使用 C# 和 XAML 构建跨平台应用。本文探讨了 Uno Platform 中实现跨平台应用的最佳实践,包括代码共享、平台特定功能、性能优化及测试等方面。通过共享代码、采用 MVVM 模式、使用条件编译指令以及优化性能,开发者可以高效构建高质量应用。Uno Platform 支持多种测试方法,确保应用在各平台上的稳定性和可靠性。这使得 Uno Platform 成为个人项目和企业应用的理想选择。
71 0
提升直播软件源码开发平台性能关键利器功能
直播软件源码平台缓存功能的示例用法 cache = LiveStreamCache() cache.add_to_cache("stream1", "直播内容1") cache.add_to_cache("stream2", "直播内容2") content1 = cache.get_from_cache("stream1") print(content1) cache.remove_from_cache("stream2") content2 = cache.get_from_cache("stream2") print(content2)
|
7月前
|
机器学习/深度学习 人工智能 达摩院
MindOpt工具是如何做到配套使用的?请看此篇
MindOpt是阿里巴巴达摩院决策职能实验室研发的专注于优化领域,提供智能优化解决方案的品牌。主要的目标是帮助客户通过先进的优化算法和技术,实现业务流程的最佳化,提升效率,降低成本,并最大化业务价值。
|
7月前
|
前端开发 JavaScript IDE
蚂蚁CodeFuse新版发布,前端能力优化,支持安卓开发
蚂蚁百灵研发助手 CodeFuse 插件发布新版,本版本新增支持 Android Studio,并针对 JavaScript、TypeScript 等前端语言优化了模型效果,同时还将输出Token增加到最多 1024 个。目前 CodeFuse 处于邀请测试阶段,欢迎各位开发者前往官网申请资格参与测试。在之前已安装插件的用户需要下载最新版本,才可享受 CodeFuse 插件最新能力。
230 1
|
弹性计算 Java 芯片
技术分享 | 软件跨架构迁移(X86->ARM)的原理及实践
针对阿里云倚天实例的软件迁移,阿里云为开发者提供了迁移工具EasyYitian和性能调优工具KeenTune,能够帮助用户解决软件迁移评估分析过程中人工分析投入大、准确率低、代码兼容性人工排查困难、迁移经验欠缺、反复依赖编译调错定位等痛点,实现业务在ARM ECS的快速适配。EasyYitian支持主流开发语言,通过系统自动化扫描可以一键生成分析报告。KeenTune通过AI算法与专家知识库的有效结合,为软件应用提供动态和静态协同调优的能力。
技术分享 | 软件跨架构迁移(X86->ARM)的原理及实践
|
数据采集 JavaScript 关系型数据库
8 种主流数据迁移工具技术选型,yyds! 上
8 种主流数据迁移工具技术选型,yyds! 上
|
canal 数据采集 分布式计算
8 种主流数据迁移工具技术选型,yyds! 下
8 种主流数据迁移工具技术选型,yyds! 下