0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鲲鹏开发套件DevKit助力源代码迁移3大挑战

7riU_gh_3a181fa 来源:华为计算 作者:华为计算 2021-06-30 11:08 次阅读

数字经济时代,市场既需要通用计算算力也需要异构计算算力。以ARM架构为代表的非x86体系架构正以其先进工艺、低功耗、多核等优势,在云服务、存储、网络等主要场景得到了越来越多的应用。

从x86架构迁移到 ARM 架构的过程并不简单,不仅架构不同,而且指令集也不兼容。如何快速迁移已有软件就是用户需要解决的第一个问题。华为在2020年发布鲲鹏开发套件DevKit,给开发者提供面向鲲鹏处理器进行应用软件迁移与调优的系列化工具,助力用户无忧迁移程序。

对症下药,鲲鹏DevKit对于应用迁移采取的策略是:根据不同的软件开发语言,采用不同的方式进行迁移。通常,编译型语言编写的程序迁移难度大。在编写程序时,开发者通常通过宏定义指定程序片段的有效范围,在编译阶段通过宏定义选择需要的代码进行编译。

跨平台迁移软件时,用户需要检视源码中所有与平台架构相关的宏定义是否需要修改。在大型软件项目迁移过程中,往往需要有一个庞大的迁移工程团队审查源代码,找到需要改动的地方,进而做出手工改动。这样的迁移方法占用了大量的人力资源,而使用鲲鹏开发套件DevKit可以大大提高软件迁移效率。

直击痛点,鲲鹏DevKit

有效解决源代码迁移3大挑战

1 编译器检查项众多,难以面面俱到

一般情况下,编译器或者解释器屏蔽了底层硬件平台的差异。以常用的GCC编译器为例,GCC编译器为x86平台提供了近100个宏定义、超过300个编译选项、超过1000个built-in函数和超过300个attributes属性。在C/C++软件迁移过程中,上述编译器相关内容都需要检查。

同时,在软件编译链接过程中会依赖第三方组件,而这些组件在鲲鹏平台是否有兼容版本,也是需要检查判断,而鲲鹏开发套件DevKit就可以快速完成上述检查。例如,开发者在软件构建文件中使用了“-march”、“-mcpu”、“-m64”等参数;或者在源码中使用了“__x86_64__”这类平台架构相关的宏定义,DevKit都可以快速检出并提供适用鲲鹏平台的修改建议。

2软件构建依赖库庞大,开发者获取兼容库难

开发者在软件构建文件中通常通过命令参数“-l”指定需要链接的库文件。由于ARM架构软件生态相比x86架构还存在差异,存在某些库文件在鲲鹏平台上不兼容的情况。

DevKit汇聚了主流的Linux发行版超过160万个so库文件,能够方便的检查“-l”参数指定的库文件在鲲鹏平台是否兼容,向用户提供检查报告。

3汇编语言程序复杂,需要专业技术知识,开发者学习成本高

为了提升软件运行效率,用户软件中可能存在汇编程序。由于鲲鹏平台与x86平台的ISA完全不兼容而且差异巨大,这部分代码的迁移是非常困难的。目前鲲鹏开发套件DevKit提供了两种迁移方法。

一种是基于语法和语义分析的异构平台源代码迁移,通过对x86汇编程序的语法、语义分析,转换为鲲鹏平台汇编程序;一种是基于翻译规则的源代码跨平台翻译,对常用功能的x86汇编程序提供对应的鲲鹏汇编程序。

汇编自动翻译总体方案

简单高效,使用二进制指令

进行无源码迁移

如果用户软件过于陈旧没有源码,鲲鹏开发套件DevKit也提供了无源码软件迁移工具Exagear。用户可以在Exagear之上直接运行x86二进制可执行文件,通过指令动态翻译,在鲲鹏平台上正常运行该程序,避免了软件的任何修改。 鲲鹏开发套件DevKit提供了Web浏览器访问和IDE插件等多种使用方式,不改变开发者使用习惯,大大降低学习使用鲲鹏DevKit的难度。Web浏览器模式下,开发者可以通过Web浏览器直接访问即可便捷的进行应用迁移与调优;IDE插件模式下,鲲鹏提供了VSCode和IntelliJ两种主流IDE插件,开发者可以直接访问应用商店搜索“Kunpeng DevKit”下载并使用。

现在,开发者可以从鲲鹏开发社区免费获取并安装使用鲲鹏开发套件DevKit,实现软件从x86向鲲鹏平台的无忧迁移。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 华为
    +关注

    关注

    215

    文章

    33969

    浏览量

    248124
  • 函数
    +关注

    关注

    3

    文章

    4151

    浏览量

    61560
  • 编译器
    +关注

    关注

    1

    文章

    1588

    浏览量

    48797
  • 解释器
    +关注

    关注

    0

    文章

    98

    浏览量

    6437
  • 鲲鹏
    +关注

    关注

    1

    文章

    122

    浏览量

    8810

原文标题:直击迁移痛点,鲲鹏开发套件DevKit助力应用无忧迁移

文章出处:【微信号:gh_3a181fa836b6,微信公众号:华为计算】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    JH-7110 RISC-V开发套件正式开源

    近日,赛昉科技在RVspace生态社区正式开源昉·惊鸿-7110(JH-7110)DevKit开发套件,同时提供其原理图和PCB参考设计源文件,旨在为客户提供全面的RISC-V芯片平台
    的头像 发表于 06-15 08:19 101次阅读
    JH-7110 RISC-V<b class='flag-5'>开发套件</b>正式开源

    【产品单页】4G IoT开发套件V3

    【产品单页】4G IoT开发套件V3 产品单页见下方附件*附件:4G IoT开发套件V3--20240527.pdf
    发表于 03-16 14:13

    【LicheeRV-Nano开发套件试用体验】+智能平板开发

    首先感谢Sipeed矽速科技和电子发烧友给与的这次机会,得以试用LicheeRV-Nano开发套件,并与大家共同分享与学习。 鉴于试用报告格式调整,后面亦按要求展现。 申请理由: 个人多年嵌入式
    发表于 03-06 23:05

    DA1453x Pro开发套件硬件说明

    电子发烧友网站提供《DA1453x Pro开发套件硬件说明.pdf》资料免费下载
    发表于 02-21 10:07 0次下载
    DA1453x Pro<b class='flag-5'>开发套件</b>硬件说明

    软通智慧启动鲲鹏原生应用开发合作

    1月25日,软通智慧科技有限公司启动 鲲鹏原生应用开发合作 ,将基于 鲲鹏硬件底座、openEuler、开发套件Kunpeng DevKit
    的头像 发表于 02-19 10:01 268次阅读
    软通智慧启动<b class='flag-5'>鲲鹏</b>原生应用<b class='flag-5'>开发</b>合作

    英飞凌推出CYUSBS236 USB转串行通信(双通道)开发套件

    英飞凌科技(Infineon Technologies)近日宣布推出全新的CYUSBS236 USB 转串行通信(双通道)开发套件。该开发套件基于英飞凌的CY7C65215 USB 串行桥控制器,为开发者提供了快速、简便地实现U
    的头像 发表于 01-24 17:12 533次阅读

    即插即用!复旦微和利尔达联合发布基于LoRa通讯的开发套件

    更具性价比的解决方案。基于QB20LoRa模组的开发套件本次推出的开发套件集成了利尔达QB20系列LoRa模组,适配复旦微FM33LC0系列开发板,即插即用,可帮助
    的头像 发表于 11-24 08:13 383次阅读
    即插即用!复旦微和利尔达联合发布基于LoRa通讯的<b class='flag-5'>开发套件</b>

    Labview开发电梯控制源代码

    Labview开发电梯控制源代码
    发表于 10-25 18:23 7次下载

    Global GNSS LTE CAT 1开发套件

    。 以下是本周新品情报,请及时查收: 便捷蜂窝集成 DIGI XBee 3 Global GNSS LTE CAT 1开发套件 贸泽电子即日起开售Digi 的 XBee 3全球GNSS LTE CAT
    的头像 发表于 10-25 16:15 226次阅读
    Global GNSS LTE CAT 1<b class='flag-5'>开发套件</b>

    SynSense时识科技发布Xylo™IMU开发套件

    SynSense时识科技今日正式发布全新XyloIMU类脑开发套件。这款新的HDK使用户能够开发基于IMU的运动处理应用,例如人体运动分析、人机互动及工业检测等应用开发
    的头像 发表于 09-28 15:25 2466次阅读

    NVIDIA Jetson 计算平台赋能森云智能推出 GMSL3 摄像头开发套件

    的 GMSL3 摄像头产品,能有效解决摄像头高速率传输和无损无延时的需求。同时依托 NVIDIA Jetson 上的软件驱动技术,将 GMSL3 摄像头与 Jetson 平台进行深度集成,发布了全球首款 GMSL3 摄像头的
    的头像 发表于 09-26 18:35 494次阅读
    NVIDIA Jetson 计算平台赋能森云智能推出 GMSL<b class='flag-5'>3</b> 摄像头<b class='flag-5'>开发套件</b>

    S2-LP开发套件入门

    本文档介绍了 S2-LP 器件的开发套件以及相关硬件和软件组件。S2-LP 是超低功耗、低数据速率、低于 1 GHz 的射频收发器。以下是基于 S2-LP 的开发套件
    发表于 09-12 09:32 0次下载

    免配置,速上手!​安信可TurMass P2P 开发套件来啦~

    安信可推出TurMass-LPWAN TK8610 evb开发板! TurMass™ P2P 开发套件,简称 P2P 开发套件,主要展示采用 TurMass™技术终端芯片所研发产品的各项功能和性能
    的头像 发表于 08-21 15:16 420次阅读
    免配置,速上手!​安信可TurMass P2P <b class='flag-5'>开发套件</b>来啦~

    开发套件 S124(DK-S124) 快速入门指南

    开发套件 S124 (DK-S124) 快速入门指南
    发表于 07-07 19:16 0次下载
    <b class='flag-5'>开发套件</b> S124(DK-S124) 快速入门指南

    开发套件 S128(DK-S128) 快速入门指南

    开发套件 S128 (DK-S128) 快速入门指南
    发表于 07-07 18:44 0次下载
    <b class='flag-5'>开发套件</b> S128(DK-S128) 快速入门指南