当前位置:网站首页>【玩转华为云】手把手带你使用鲲鹏代码迁移工具实现源码迁移
【玩转华为云】手把手带你使用鲲鹏代码迁移工具实现源码迁移
2022-06-10 16:20:00 【华为云】
1. 源码迁移介绍
在国产替代的大背景下,鲲鹏计算平台是一个非常有潜力的产业。为了解决开发者在x86平台应用向鲲鹏平台移植的过程中遇到的一系列的痛点问题,华为推出了鲲鹏代码迁移工具(Porting Advisor),帮助开发者加速将x86环境下的应用迁移至鲲鹏平台。本文根据华为鲲鹏计算工具链项目组的工具化软件迁移经验,总结了鲲鹏代码迁移工具的实际使用经验,期望能帮助开发者了解如何使用该工具,提高开发者的软件迁移效率。
1.1 源码迁移介绍
在国产替代的大背景下,鲲鹏计算平台是一个非常有潜力的产业。为了解决开发者在x86平台应用向鲲鹏平台移植的过程中遇到的一系列的痛点问题,华为推出了鲲鹏代码迁移工具(Porting Advisor)
帮助开发者加速将x86环境下的
用迁移至鲲鹏平台。本文根据华为鲲鹏计算工具链项目组的工具化软件迁移经验,总结了鲲鹏代码迁移工具的实际使F经验,期望能帮助开发者了解如何使用该工具,提高开发者的软件迁移效率。
1.2 工具支持的工具特性

1.3 源码迁移介绍
当用户能够提供源代码进行迁移分析时,可以使用源码迁移功能完成迁移工作源码迁移功能主要解决了用户的代码兼容性人工排查困难、严重依赖迁移的个人经验、需要反复依赖编译调错定位导致执行效率低等痛点。按照源代码到二进制文件的翻译方式的不同,代码迁移工具将编程语言分为两类:一类是编译型,—类是解释型。
支持源码类型

1.4 迁移流程

2. 实战项目一
2.1 前提条件
1.服务器和操作系统正常运行。
2.Pc端已经安装sSH远程登录工具。
3.Porting Advisor已在准备好的x86平台环境和鲲鹏平台环境中完成安装并正常运行。4待迁移的相关软件包、源代码已准备就绪。
2.2 迁移计划
1.利用Porting Advisor的源码迁移功能对获取到的smartdenovo源代码进行扫描,获取其$o库依赖关系、可迁移性、迁移工作量等分析结果。
2根据Porting Advisor的源码迁移功能分析得到的smartdenovo依赖关系去准备对应的sO库。
3.检查smartdenovo源代码的源代码分析报告,获取编译构建文件、.h/.c等源代码文件的修改建议,并根据修改建议进行修改。
4.用修改后的源代码进行编译,生成鲲鹏版本的smartdenovo软件。5.使用鲲鹏版本的smartdenovo软件进行部署和简单的验证。

2.3 开源软件smartdenovo-master迁移实战
步骤1从https://github.com/ruanjue/smartdenovo下载获取待使用的软件源码包smartdenovo-
master.zip.
步骤2︰进入Porting Advisor“源码迁移”菜单进行扫描分析。在随后出现的相关配置项和按钮中,单如图1所行击“上传”,上传前面下载到的smartdenovo-master.zip,并点中输入框,选择源码包为"smartdenovo-master”。其它几个选项根据我们实际的情况进行选择

在“源码迁移建议”页面,查看Makefile文件的修改建议,如图1迁移建议所示
根据以上建议,Makefile文件中需要给CFLAGS变量增加选项内谷marcn=avo-a -iightea , i要删除CFLAGS变量中的选项“-mpopcnt”和“-msse3"。修改后的代码(修改时进行了x86_64分支和aarch64分支的区分处理),如图2修改后的makefile所示。

在“源码迁移建议”页面,查看ksw.c文件的修改建议,如图1迁移建议所示
这种提示都是关于intrinsic函数使用方面的内容。根据提供的建议,需要增加‘#include 'avx2neon.h”到ksw.c中以包含avx2neon.h,并针对x86和aarch64分别设置头文件包含的分支定义,以确保在代码同时适配x86和arch64两种架构的情况下完成代码的修改,如图2代码修改所示。同时,需要下载avx2neon相关的头文件到ksw.c所在目录中.工由于avx2neon开源项目存在一部分定向开源函数,当这些开源函数在代码中出现时,会出现如图1建议源代码所示的建议。此时,用户需要访问github网站通过README.md来了解如何获取这些定向开源函数的代码文件。在获取这部分代码头文件后,将其放置到avx2neon.h所在目录内。
在完成对Makefilb和ksw.c的修改后,可以将修改过的整份源代码下载到鲲鹏环如图1列出文件信息和图2境中,执行make clean && make命令,完成编译动作,make命令所示图中的smartdenovo-master是我们需要下载的源代码文件。

步骤2︰将smartdenovo-master下载到本地之后,清理掉本地目录smartdenovo-master中工具生成
的中间文件Makefile.20210104220958.bak.0、ksw.c.20210104220958.bak.0。
步骤3将本地目录smartdenovo-master上传到鲲鹏服务器上,执行编译安装动作。步骤4Make成功后,可以执行make install命令执行安装,并检查安装结果如图3所示

3. 实战项目二

从扫描报告中提供的依赖库信息看,该源码包不依赖于基本环境(OS环境基本的安装依赖,如GLIBC等)外的其它依赖文件。



4. 总结
本次软件迁移实战中,通过对软件迁移过程的完整模拟,覆盖了用户利用代码迁移工具对迁移过程进行前期分析、中期修改和后期编译、重构、验证的过程。在其它软件的迁移中,可以参考本实践的思路和操作过程进行操作。
边栏推荐
- Fabric.js 精简输出的JSON
- SOA architecture / test phase interface description language transformation scheme
- The children in the deep mountains are seeing the stars farther away
- 运筹说 第64期丨动态规划奠基人——理查德·贝尔曼
- For more than 20 years, there are only Durex, Okamoto and jasbon in the condom market
- Primekg: building a knowledge map to achieve precision medicine
- SOA架构/测试阶段接口描述语言转换方案
- Fabric. JS activation input box
- Solve the problem that idea is stuck in opening a project
- Richard Behrman, the founder of dynamic planning
猜你喜欢

Carry forward the past and forge ahead into the future, multiple residuals | densenet (II)

It has become a unicorn since its establishment one year ago. Tencent didi is the "backer". This year's new unicorn is not simple

大山深处的孩子,正在看见更远的星空

重庆第一个科创板IPO,来了

互联网企业与芯片

vscode常用快捷键

新思科技助力以色列Visuality Systems推进安全“左移”

Postman common assertions

rmq 2333

品牌难立,IPO难行,中国茶企困于“传统”?
随机推荐
直播预告 | 社交新纪元,共探元宇宙社交新体验
ADB is not an internal or external command, nor is it a runnable program or batch file
重庆第一个科创板IPO,来了
新思科技助力以色列Visuality Systems推进安全“左移”
VBA将字符串分割、存入数组、写入文件并保存
运筹说 第64期丨动态规划奠基人——理查德·贝尔曼
Importerror: libgl.so.1: cannot open shared object file: no such file or directory
二十多年了,安全套市场还只有杜蕾斯、冈本、杰士邦
[proteus simulation] ds18b20+ alarm temperature adjustable +lm016 display
Graduation season: to you
看先进科技如何改变人类生活
Carry forward the past and forge ahead into the future, multiple residuals | densenet (I)
How to make a simple Snake game with pyGame
VBA determines whether a long string contains another short string
Under the "plastic ban order", does the Hong Kong stock exchange pay for the deep excavation of degradable plastics by Zhongbao new materials?
Eliminate if Five ways of else
Knowledge-based BERT: 像计算化学家一样提取分子特征的方法
Brands are difficult to establish, IPO is difficult, and Chinese tea enterprises are trapped in "tradition"?
Simple site backup shell script
Full link tracking & performance monitoring tool skywalking practice