Agentic AI、具身智能、强化学习框架、端侧大模型……来QCon上海站,感受AI的未来! 了解详情
写点什么

编译型语言成迁移钉子户?鲲鹏迁移有妙招

凯强

  • 2020-07-24
  • 本文字数:1881 字

    阅读完需:约 6 分钟

编译型语言成迁移钉子户?鲲鹏迁移有妙招


编译型语言在开发过程中并不少见,比如 C/C++更是大学里就要学到的语言。其采用专门的编译器针对特定平台将某种高级语言源代码一次性“翻译”成可被平台硬件执行的机器指令和操作数,进而将其包装成该平台所能识别的可执行性程序的格式。经过编译生成的可执行性程序即便脱离开发环境,也可以在特定的平台上独立运行。


不过,编译型语言虽然通过运行效率较高,但却有着一个比较麻烦的弱点,那就是其程序由于已经编译成特定平台上的机器码,所以通常无法移植到其他平台上运行。可在当下,随着大数据和智能化浪潮的汹涌,不少企业对于算力的渴望达到新的峰值,从 x86 平台迁移到鲲鹏等新的算力平台上也并不少见,这时编译型语言就变成了名副其实的钉子户,迁移流程会复杂太多。


一般来讲,编译型语言在移植时,必须将源代码复制到新平台上,针对新平台进行修改,至少也需要采用新平台上的编译器重新编译。而基于鲲鹏处理器的打造的计算平台在迁移时则获得了很多针对性的优化,并提供了大量的迁移工具,帮助开发者简化迁移流程。


在迁移时,其编译构建流程大体可以有这几步。首先在在获取源代码之后,选择所需的编译环境,安装编译器 gcc 等;根据源码的编译脚本生成 Makefile 文件,再用 Makefile 编译生成可持续文件;担任如果代码之中有依赖 x86 平台的 SO 库,那么这部分的依赖库是需要重新编译替换的;在编译完成之后进行安装部署,之后进入到实际的系统之中进行测试。


由于编译型语言的特殊性,其在迁移时,还有很多需要注意的点。由于鲲鹏平台和 x86 平台的差异,在 x86 下 -m64 代码的主要功能是将应用程序编译为 64 位,对应到鲲鹏上是用 -mabi=lp64 的编译选项,其需要在脚本中修改;gcc 编译器所自带的 x86 编译选项就是 x86_64,对应到鲲鹏平台上是 aarch64,对编译宏下的代码需要机箱内对应的移植;而 Builtin 函数是编译器自带的函数,需要移植的普通 builtin 函数并不多,大部分需移植的 builtin 函数集中在 SSE intrinsic 函数内;SSE Intrinsic 函数,涉及到向量化预算加速技术,如果有开源工程可以直接应用。


由此可见,编译型语言在迁移时虽然复杂,但却并非无迹可寻。而如果你想探索更多迁移过程中的技术细节,7 月 30 日《鲲鹏展翅 创客天府•鲲鹏应用创新大赛 2020 四川赛区宣讲会》将在线为你揭晓。此次宣讲会中,不仅会有鲲鹏技术专家讲解应用代码迁移过程中的细节问题,还将为各位开发者讲述鲲鹏应用创新大赛的赛题和参赛技巧。


鲲鹏应用创新大赛 2020 在全国开设了 13+1 个赛区,总奖金高达 260 万,四川赛区设置了“金融”、“政府”、 “大数据”、“ARM 原生应用”和“开放命题”5 个赛题,奖金总额也达到了 32 万。如果你想与各路好手同台竞技,探索开发过程中技术奥秘,那么千万要记得在 7 月 30 日关注《鲲鹏展翅 创客天府•鲲鹏应用创新大赛 2020 四川赛区宣讲会》。

直播议程(四川赛区)

  • 14:00~14:05 主持人介绍

  • 14:05~15:35 鲲鹏应用代码迁移指导

  • 15:35~15:50 鲲鹏应用创新大赛介绍

  • 15:50~16:20 鲲鹏应用创新大赛答疑

比赛介绍

鲲鹏展翅 创客天府•鲲鹏应用创新大赛 2020 四川赛区已经开始备战。为贯彻落实成都市鲲鹏产业发展的战略部署,支持四川中小企业数字化转型,匹配鲲鹏产业发展的人才需求,四川鲲鹏生态创新中心与华为技术有限公司成都工业学院面向四川开发者开展鲲鹏应用创新比赛活动,激发创新潜力,培养鲲鹏产业发展所需的基于鲲鹏生态的软件适配、迁移、软件开发、解决方案孵化等能力,加速鲲鹏产业融合型人才培养、加速构建以鲲鹏为底座的覆盖全产业链的千亿级计算产业。


本赛事奖项激励总额 32 万,“金融”、“政府”、 “大数据”、“ARM 原生应用”和“开放命题”5 个赛题,各赛题奖项设置详情如下:


  • 一等奖:4 个团队(每赛题 1 个团队),每团队奖励:3 万现金;

  • 二等奖:4 个团队(每赛题 1 个团队),每团队奖励:2 万现金;

  • 三等奖:4 个团队(每赛题 1 个团队),每团队奖励:1 万现金;


其中“ARM 原生应用”赛题设置一等奖(1 个团队),团队奖励: 2 万现金


此外,针对高校评选最佳实践奖、最佳创新奖、最佳成果奖共 3 个团队(每个奖项 1 个团队),获奖团队成员各奖励一部华为手机 Mate30。

报名方式

目前,本次大赛的报名渠道已经全面开放,所有的有意参赛者均可在 8 月 15 日 18 时前报名并提交作品。如果你对此次比赛还有所疑惑,或者还想进一步了解此次比赛的相关信息,欢迎在 7 月 30 日《鲲鹏展翅 创客天府•鲲鹏应用创新大赛 2020 四川赛区宣讲会》与讲师进行提问和互动,点击下方链接或扫描海报二维码即可报名参与了哦!


https://competition.huaweicloud.com/information/1000041276/introduction



2020-07-24 14:481103

评论

发布
暂无评论
发现更多内容

【Netty】「优化进阶」(一)粘包半包问题及解决方案

sidiot

Java 后端 Netty 6 月 优质更文活动

【Netty】「源码解析」(一)ByteBuf 的动态扩容策略与实现原理

sidiot

Java 后端 Netty 6 月 优质更文活动

滴滴开源的深度与温度——滴滴开源委员会秘书长吴国斌专访

开源雨林

开源 滴滴 滴滴夜莺 开源治理

助力金融信创!索信达携手麒麟软件、GBASE南大通用发布联合解决方案

索信达控股

【Netty】「源码解析」(二)HeapBuffer 创建过程详解:高效可靠的内存管理技巧

sidiot

Java 后端 Netty 6 月 优质更文活动

中企出海之营销最佳实践——新加坡SK集团

用友BIP

中企出海

IoTLink版本更新V1.29.0

山东云则信息科技

软件测试 | 性能测试管理障碍

测吧(北京)科技有限公司

测试

【网络安全】浅谈数据库攻击复现及相关安全优化

sidiot

MySQL 网络安全

Maya软件是做什么的?Maya软件优缺点分析!

Finovy Cloud

maya

【Netty】「优化进阶」(二)浅谈 LengthFieldBasedFrameDecoder:如何实现可靠的消息分割?

sidiot

Java 后端 Netty 6 月 优质更文活动

低代码平台的实现原理

互联网工科生

软件开发 低代码 JNPF

【Netty】「优化进阶」(三)Netty 通信协议设计:从 Redis、HTTP 和自定义协议看起

sidiot

Java 后端 Netty 6 月 优质更文活动

传统全面预算管理体系暴露的问题

用友BIP

全面预算

Jane Street简街进军大陆不良资产处置

科技热闻

千万不能小瞧的PCB半孔板

华秋PCB

科普 电路 PCB PCB设计 涨知识

从规划、预算和预测中实现企业未来价值

智达方通

财务分析 预测模型 业财融合 全面预算管理

究竟是什么让山东航空人力资源数智化转型如虎添翼?

用友BIP

数智人力

NFTScan 与 Wagmi Labs 达成合作伙伴,双方在多链 NFT 数据方面展开合作!

NFT Research

NFT\

软件测试 | 性能调整基础

测吧(北京)科技有限公司

测试

软件测试 | 性能测试实施流程

测吧(北京)科技有限公司

测试

基于OpenHarmony开发的玻璃拟态天气应用(2)构建当前天气组件

路北路陈

前端 HarmonyOS OpenHarmony应用开发 6 月 优质更文活动

企业如何提高全面提升预算管理效率?

用友BIP

全面预算

企业数智化转型数智员工到底能做什么?

用友BIP

数智底座 Pass平台

Hibernate5 动态模型

alexgaoyh

hibernate jpa 动态模型 运行时 sessionfactory

从两个案例看Apache Flink如何提升企业实时数据处理效率

xfgg

Java flink 6 月 优质更文活动

不学血亏!手把手教会你推特视频如何下载到手机相册~

frank

ABAQUS 模拟过盈配合解决材料选择及公差带设计等问题

思茂信息

仿真软件 仿真技术 abaqus abaqus软件 abaqus有限元仿真

基于多尺度图神经网络的流场预测,实现精度与速度的平衡

飞桨PaddlePaddle

人工智能 百度飞桨 开发者说

编译型语言成迁移钉子户?鲲鹏迁移有妙招_语言 & 开发_InfoQ精选文章