中国广西网_广西人自己的新闻媒体网站
设为首页
关心前沿科技动向的 IT 从业者,一定对近期大热的鲲鹏产业生态有所耳闻。在服务器和云端计算领域 ARM 架构崛起的大背景下,由华为自主研发的鲲鹏系列服务器 CPU 凭借出色的性能与功耗表现,在国内云计算市场赢得了良好的口碑。随着新基建和信创产业的推进,很多行业和企业都开始考虑选择鲲鹏平台补充甚至替换原有的 x86 服务器;以鲲鹏处理器为核心,包括芯片、整机、操作系统、云平台、行业应用等自主技术在内的一整套 IT 基础设施逐渐浮出水面,形成了一个蓬勃发展的鲲鹏产业生态。
如今,华为已在全国各地建设了十几个鲲鹏产业发展和创新基地,并与各省市政府合作全力推进鲲鹏计算产业的发展。此外,华为还在各地举办了一系列鲲鹏开发者沙龙活动,向各地 IT 从业者介绍鲲鹏产业细节,源源不断地输出鲲鹏平台迁移和应用部署经验,努力打造一个充满活力的鲲鹏开发社区。
7 月 24 日,“八桂鲲鹏 乘风破浪”广西鲲鹏开发者沙龙在广西南宁成功举办。本次沙龙围绕鲲鹏生态和鲲鹏产业整体现状与未来规划进行了解读,并由华为专业工程师分享了鲲鹏迁移课程,还邀请到产业合作伙伴分享了国产数据库的最佳实践。此外,活动现场还举行了广西鲲鹏训练营暨鲲鹏应用开发者大赛颁奖仪式,介绍了华为鲲鹏开发者大赛的细节内容。
本文由 InfoQ 编辑整理自鲲鹏开发者沙龙南宁站速记。
作为信创产业的关键领域,高端数据库的国产化替代是当下国内 IT 基础设施领域最热门的主题之一。本次沙龙上,达梦数据库华南大区技术总监胡青李以鲲鹏产业联盟伙伴的身份,分享了国产数据库方案的一些最佳实践,为准备采用国产数据库的开发者和企业提供了颇具价值的实用参考。
本次沙龙上,华为鲲鹏计算专家还带来了鲲鹏软件迁移的速成课程。
C、C++ 和 go 都是典型的编译型语言。这种语言开发的程序需要经过针对硬件平台的编译后才能在对应平台上运行。当 x86 平台的 C/C++ 程序要向鲲鹏平台迁移时,针对 x86 平台编译生成的二进制文件是无法直接在鲲鹏平台运行的。
1、编译脚本、编译选项移植
以编译 64 位应用程序为例,x86 平台可通过指定编译选项为 -m64 来完成,而在鲲鹏处理器下需要 -mabi=lp64 的形式指定;在 X86 平台下默认 char 类型是有符号类型,鲲鹏平台下默认是无符号类型。
2、编译宏移植
以编译器自定义宏为例,x86 编译选项是 x86_64 或 __x86_64,对应的 ARM 编译选项是 aarch64。
3、builtin 函数移植
以替换 crc32 值计算函数为例,x86 下的 __builtin_ia32_crc32qi () 对应到 ARM 中则为 __builtin_aarch64_crc32cb()。实际上,需移植的普通 builtin 函数实际并不多,大部分需移植的 builtin 函数集中在 SSE intrinsic 函数内。
4、内联汇编函数移植
这是 C/C++ 代码迁移过程中较难的部分,做移植前需先找到核心的汇编指令,随后结合内联汇编规则,也能够快捷的完成替换移植。
5、SSE 函数移植
SIMD 是一种单指令处理多数据流的并行处理技术,能够在批量数据操作时进行向量化加速,具有较高的执行效率,应用比较广泛。x86 平台的 SIMD 扩展指令集分为 MMX、SSE 和 AVX 几类,位宽从 64-512 位。鲲鹏平台的 SIMD 指令集是 NEON,也有一些开源库可用。下面分别是 MMX/SSE/AVX 几种指令的迁移示例:
迁移过程中,一般使用 AVXtoNeon 和 SSEtoNeon 两个开源工程来迁移 intrinsic 函数。如果存在它们没能覆盖的部分就需要手动替换。
最后,华为还提供了 Porting Advisor 迁移工具来简化迁移过程。
Maven 是主流的 Java 开发工具之一,它有本地仓库、远程仓库和中央仓库三类软件仓。
远程软件仓一般基于 x86 架构,下载的 jar 包无法直接用在鲲鹏平台上。此时需要扫描软件依赖库,找出对应的 SO 库进行重编译和替换,之后重新构建项目直至不包含 x86 依赖项。
华为使用积累的 jar 包移植构建了鲲鹏的 Maven 软件仓,帮助开发者快速移植。为了让项目在编译时优先搜索这个仓,需要对搜索顺序做配置。
为激发行业创新、促进人才培养、加速产业融合,全国各鲲鹏生态创新中心联合举办了鲲鹏开发者大赛,正在面向全产业开发者开放报名通道,共同打造鲲鹏全栈解决方案,实现技术与商业创新应用。本次沙龙特别邀请到了中国 - 东盟信息港鲲鹏创新中心 COO 杨富强,为与会者介绍华为鲲鹏开发者大赛的具体内容。
2020 年鲲鹏开发者大赛是全国性赛事,分为 13 个赛区,各赛区第一名将代表本区域参加全国赛。作为 13 大赛区中的一环,广西赛区于 7 月 1 日启动报名,最终提交作品时间为 8 月 15 日,21 日决出胜负,8 月 24 日参加全国总决赛。总决赛胜出者将获得在上海举办的全球 HC 全连接大会上颁奖的荣誉机会。
广西赛区设置“金融”“政府”“大数据”“ARM 原生应用创新”和“开放命题”五大赛道,奖项激励总额最高达 50 万。各赛题奖项一致,按阶梯式进行奖励,详情如下:
(1)报名队伍数在 5 支以内(含 5 支)的赛题:分别选出优胜队伍 1 名,团队奖励 3 万奖金;
(2)报名队伍数在 6-10 支(含 10 支)的赛题:分别选出优胜队伍 2 名,第 1 名团队奖励 3 万奖金、第 2 名团队奖励 2 万奖金;
(3)报名队伍数在 10 支以上(不含 10 支)的赛题:分别选出优胜队伍 3 名,第 1 名团队奖励 5 万奖金、第 2 名团队奖励 3 万奖金、第 3 名团队奖励 2 万奖金。
每个赛道的冠军将会被推举参与全国赛事。全国共有 7 个赛道,还包括 openEuler 开源系统迁移和商业应用迁移两大赛道。每个赛道全国 13 支队伍角逐前三名,第一名奖励 20 万元 + 价值 10 万元的云资源,第二、三名为 10 万元 + 价值 5 万元云资源。
获奖队伍还会受邀参观华为松山湖基地,并推荐为"华为云 MVP"个人品牌,获得参加全连接大会的往返机票。获奖企业可以获得"联合举办专场鲲鹏技术沙龙"的机会,其方案将在下半年的 100 余场鲲鹏技术沙龙中获得宣讲议题,用于推广企业方案。华为还会为获奖企业免费录制和推广宣传视频,金奖作品有机会在全连接大会上展示。
参赛队伍要取得好成绩,需要注意以下几点:
1、选好作品,解决方案应该足够成熟、应用广泛、有鲜明特色;
2、软件适配鲲鹏平台时要改造彻底,并根据鲲鹏架构做针对性改进和创新;
3、需要准备完整的测试报告,展示报告中要清晰展示方案的架构、功能、价值、前景和优势等要素。
关于参赛队伍的要求,每个单位可以派出多支队伍,每个队伍可以参与多个赛道,每个赛道也可以提供多个作品参赛。唯一限制的是队伍人员,每支队伍最多 5 人。
即便参赛后没有获奖,华为也针对已完成适配的解决方案提供了每个产品 3 万元的激励,需要产品技术和商业价值评估达到目标,如果完成鲲鹏商业化部署更佳。企业每年可以申请三次这一激励,最高获得 9 万元奖励。