【鲲鹏应用迁移】实验:通过鲲鹏开发套件实现源码迁移 您所在的位置:网站首页 软件porting 【鲲鹏应用迁移】实验:通过鲲鹏开发套件实现源码迁移

【鲲鹏应用迁移】实验:通过鲲鹏开发套件实现源码迁移

2024-07-05 09:35| 来源: 网络整理| 查看: 265

实验:通过鲲鹏开发套件实现源码迁移 (所属课程: 鲲鹏应用迁移 )

文章目录 一、实验目的1.基于华为云弹性云服务器实现从x86平台到kunpeng平台的源码迁移2.掌握鲲鹏代码迁移工具中源码迁移功能的操作流程3.完成Megahit项目代码的调优实践 二、实验内容1.安装工具1.1登录弹性云服务器ECS1.2 准备工具源码包1.3 安装porting工具1.4 安装工具cmake 2.配置VS Code环境2.1 配置远端服务器连接2.2 注册并登录 3.源码准备4.源码迁移4.1 代码扫描工具扫描源码并迁移4.2 重新编译并验证

一、实验目的 1.基于华为云弹性云服务器实现从x86平台到kunpeng平台的源码迁移 2.掌握鲲鹏代码迁移工具中源码迁移功能的操作流程 3.完成Megahit项目代码的调优实践 二、实验内容 1.安装工具 1.1登录弹性云服务器ECS LANG=en_us.UTF-8 ssh root@EIP(将EIP改为你的公网IP)

在这里插入图片描述

1.2 准备工具源码包

·在Terminal窗口中执行以下命令下载源码包:

Wget https://mirror.iscas.ac.cn/kunpeng/archive/Porting_Dependency/Packages/Porting-advisor_2.3.0_linux-Kunpeng.tar.gz

在这里插入图片描述 ·执行以下命令解压源码包:

tar -zxvf Porting-advisor_2.3.0_linux-Kunpeng.tar.gz

在这里插入图片描述

1.3 安装porting工具

·执行以下命令进入已解压源码包目录:

cd Porting-advisor_2.3.0_linux-Kunpeng

·执行以下命令安装porting工具:

./install web

·安装成功如下图所示: 在这里插入图片描述

1.4 安装工具cmake

·执行以下命令下载cmake工具:

cd ~ && wget https://sandbox-experiment-resource-east-1.obs.cn-east-3.myhuaweicloud.com/code-migration-cn-east-3/cmake-3.3.2.tar.gz

·下载成功如下图所示: 在这里插入图片描述 ·执行以下命令解压cmake安装包:

tar -xzvf cmake-3.3.2.tar.gz

·执行以下命令编译cmake:

cd cmake-3.3.2 && ./configure

·编译成功如下图所示: 在这里插入图片描述 ·依次执行以下命令安装cmak工具:

gmake make install

·安装成功如下图所示: 在这里插入图片描述

2.配置VS Code环境 2.1 配置远端服务器连接

·点击打开“Visual Studio Code”,打开后点击鲲鹏Porting工具图标, 点击“Configure Server”配置远端服务器连接,如下图所示: 在这里插入图片描述 (1) “Ip Address”:填写1.1步骤查看到的公网IP; (2) “HTTPS Port”:默认(8084);

说明:云服务器的弹性公网IP地址,可以通过鼠标移动到云桌面浏览器页面中左侧菜单栏, 点击“服务列表”->“计算”->“弹性云服务器ECS”进入服务器列表,进行查看并复制;

(3)“Service Certificate Settings”,可选择“Trust the current service certificate”。填写完成点击“Save”,保存成功后如下图所示: 在这里插入图片描述

注:若点击Save后,出现如下提示: 在这里插入图片描述

则需要手动修改VSCode的代理服务器,点击settings->Application->proxy 在这里插入图片描述

“Proxy Strict SSL”选项不勾选,“Proxy Support”设置项,下拉框内选择“off”,然后再配置服务器页面重新点击保存即可,如下图所示: 在这里插入图片描述

2.2 注册并登录

点击“Log In”,创建用户“portadmin”,密码自定义,如vcIL6Koun4LstG7o,如下图所示: 在这里插入图片描述

设置完成点击“OK”完成远端服务器连接配置。

3.源码准备

·Terminal窗口执行以下命令进入鲲鹏代码迁移工具源码文件存放路径:

cd /opt/portadv/portadmin/sourcecode/

·执行以下命令下载Megahit源码:

git clone https://codehub.devcloud.cn-north-4.huaweicloud.com/experiment00001/megahit.git

·下载成功如下图所示: 在这里插入图片描述 ·执行以下命令将代码进行合并:

cd megahit && git submodule update --init

·执行以下命令创建构建文件夹并进入:

mkdir build && cd build

·执行以下命令生成Makefile文件:

cmake .. -DCMAKE_BUILD_TYPE=Release

·执行成功如下图所示: 在这里插入图片描述 ·执行以下命令修改megahit目录群组:

cd ../ && chown -R porting:porting /opt/portadv/portadmin/sourcecode/* && ll ./

(说明:porting工具的待扫描的源码目录群组必须为porting才能扫描。) 在这里插入图片描述

4.源码迁移 4.1 代码扫描工具扫描源码并迁移

·在打开的“Visual Studio Code”中,点击“Log In”输入账号“portadmin”密码(2.2步骤创建的连接密码)如:vcIL6Koun4LstG7o, 进行连接工具登录,如下图所示: 在这里插入图片描述 ·登录成功,选择“Source Code Porting”,手动输入选择“megahit/build”源码包路径 ,其他参数默认,如下图所示: (说明:若登录成功时有弹窗点击“OK”即可) 在这里插入图片描述 ·点击“Analyze”分析成功如下图所示: 在这里插入图片描述 分析完成后,点击文件列表, 查看文件中需要迁移的文件,点击“View Suggestion Code”查看具体文件的迁移建议。 ·修改文件“megahit_core_popcnt.dir/flags.make”,鼠标拖动到待修改处(向右拖动到当前代码末尾即可看到), 可以看到一处待修改点,如下图所示: 在这里插入图片描述 ·删除提示修改代码,修改完成“Ctrl+s”保存该文件,如下图所示: 在这里插入图片描述 ·修改文件“megahit_core.dir/flags.make”,鼠标悬停到代码上, 可以看到修改建议,如下图所示: 在这里插入图片描述 ·根据建议提示Kunpeng platform 不支持BMI2和POPCNT指令,手工修改代码,删除指令“-mbmi2”和“-mpopcnt”指令(向右拖动到当前代码末尾即可看到),修改完成“Ctrl+s”保存该文件如下图所示: 在这里插入图片描述 ·修改文件“cpu_dispatch.h”,光标悬停到代码上, 可以看到修改建议,如下图所示: 在这里插入图片描述 ·分别在每部分需要修改的代码,鼠标悬停后出现“Quick Fix…”,选择“Replace the code with the suggested code”点击进行快速修改,如下图所示:说明:“Quick Fix…”未出现时鼠标滚轮向下滑动即可看到。 在这里插入图片描述 ·修改完成去掉修改代码注释,“Ctrl+s”保存该文件,最终如下图所示: 在这里插入图片描述 在这里插入图片描述 ·Terminal窗口执行以下命令将“KunpengTrans.h”头文件添加到目录下到/opt/portadv/portadmin/sourcecode/megahit/src/utils:

cp /opt/portadv/tools/inline_asm/config/KunpengTrans.h /opt/portadv/portadmin/sourcecode/megahit/src/utils/ 4.2 重新编译并验证

·在Terminal窗口执行make命令:

cd /opt/portadv/portadmin/sourcecode/megahit/build && make

·报错如下图所示: 在这里插入图片描述 ·执行以下命令修改 “/opt/portadv/portadmin/sourcecode/megahitkmlib/kmrns.h”:

vim /opt/portadv/portadmin/sourcecode/megahit/src/kmlib/kmrns.h

“”为x86平台的系统头文件,在arm平台上没有此系统头文件。点击键盘“i”命令进入文本输入模式,注释如下图所示代码: (说明:“#include ”改为“//#include ”。) 在这里插入图片描述 修改完成,点击键盘“ESC”退出输入模式,输入以下命令后回车保存:

:wq

再次执行make命令:

make

编译通过如下图所示: 在这里插入图片描述 编译完成执行以下命令进行验证:

make simple_test

(说明:Make simple_test里用到的.fa文件是github上下载软件包的时候就自带了无需额外下载。) ·运行成功如下图所示: 在这里插入图片描述 至此源码成功迁移。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有