东亚银行、岚图汽车带你解锁 AIGC 时代的数字化人才培养各赛道新模式! 了解详情
写点什么

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

凯强

  • 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:48671

评论

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

Java 邮件发送

Java 邮件 4月月更

《SQL必知必会》读书笔记

懒时小窝

数据库 sql

高精度轻量级图像分割SOTA模型PP-LiteSeg重磅开源!

百度大脑

Java 如何从一个 List 中随机获得元素

HoneyMoose

浅谈C#字符串构建利器StringBuilder

yi念之间

C# StringBuilder

金蝶云·苍穹峰会震撼来袭

金蝶云·苍穹

了解HTTP的基本历史及知识

CRMEB

某意大利小哥,竟靠一个缓存中间件直接封神?

沉默王二

redis

美好教育,无处不在 | 拓维信息携手开鸿智谷重磅发布教育在鸿OS发行版

拓维信息

操作系统 OpenHarmony OpenHarmony 3.1 Release

浅谈C#可变参数params

yi念之间

C# params

OpenHarmony技术日探讨教育发展,聚焦开源人才培养

OpenHarmony开发者

OpenHarmony

深度剖析OpenHarmony应用/服务的逻辑结构

Anna

OpenHarmony

OpenHarmony 设备开发环境搭建 / 源码获取 / 编译 / 烧录

Anna

OpenHarmony

赛事解析|乒乓球时序动作定位大赛亚军方案分享

百度大脑

Redis主从复制集群及数据异常丢失恢复思路

jiangxl

redis'

一站式内容创作助手 智能创作平台生成正式商用

百度大脑

OpenHarmony啃论文计划-elf文件格式介绍

Anna

OpenHarmony

参赛必看,2022语言与智能技术竞赛赛题任务解读直播!

百度大脑

一文搞明白Redis中两种持久化机制RDB和AOF

jiangxl

redis'

【直播回顾】OpenHarmony知识赋能第五期第二课——成为社区达人

OpenHarmony开发者

OpenHarmony 社区贡献

「质量三人行之不止测试」直播问题解答

BY林子

软件测试 职业发展 质量赋能 测试转型 质量内建

新冠疫情防控背后有哪些鲜为人知的技术?

DS小龙哥

4月月更

OpenHarmony应用开发之全局配置参数解析

Anna

OpenHarmony

密码基础设施提供商三未信安加入龙蜥社区

OpenAnolis小助手

合作伙伴 龙蜥社区 CLA 三未信安 密码基础设施

浅谈云上攻防——Etcd风险剖析

腾讯安全云鼎实验室

安全攻防 网络安全

关于「应变力」这个超能力|ONES 人物

万事ONES

管理

百度天工AIoT打造农业种植方案,用数字经济助力建设农业新模式

百度大脑

pinpoint插件开发之一:牛刀小试,调整gson插件

程序员欣宸

Java web 4月月更 Pinpoint

怎么写帮助文档?产品人看过来

小炮

帮助中心

Android C++系列:函数知识知多少

轻口味

c++ android 4月月更

web前端培训懒加载对 Web 性能的影响

@零度

前端开发 懒加载

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