鲲鹏经典直播征文】快使用鲲鹏开发套件,哼哼哈嘿,开发之人切记,DevKit开发无敌

网友投稿 826 2022-05-29

一、计算领域的趋势与挑战

1.计算领域的趋势

根据最新的发展趋势统计,ARM架构在端侧已经占据了绝对统治的地位,达到了90%以上,其中,智能手机占比超过95%,平台超过98%,其他如智能TV、智能手表、手环等智能设备占比要超过了70%。

不但如此,ARM在PC测也获得了较大的发展,典型的如苹果基于ARM架构的M1芯片,已经应用与MacBook Air、MacBook Pro、Mac mini等多个系列的产品;微软也不甘示弱,发布了搭载Microsoft SQ1处理器的Surface Pro X,这个处理器是微软从高通定制的,也是基于ARM架构,总的来说,ARM已经从智能终端延伸到了PC市场。

比PC市场更火热的是服务器市场,基于ARM架构的处理器这些年来络绎不绝,甚至连超级计算机TOP500排名第一的服务器也是使用的ARM架构处理器。这里简单盘点一下ARM架构服务器芯片的编年史,除了国内知名的华为鲲鹏系列外,国外这些年也推出了不少典型的ARM架构服务器处理器。

ARMADA XP

【鲲鹏经典直播征文】快使用鲲鹏开发套件,哼哼哈嘿,开发之人切记,DevKit开发无敌

Marvell 公司于2010年发布,是业界第一颗4核心ARM处理器芯片,主频1.6GHz,兼容ARM V7。

EnergyCore ECX-1000

Calxeda公司于2011年发布,采用4核的ARM Cortex A9架构,每个核心有32KB的一级缓存,共享4MB的二级缓存,主频为1.1GHz至1.4GHz。

ThunderX

Cavium公司于2014年发布,采用28纳米工艺,基于ARMV8架构,支持最多48个核心,最高2.5GHz主频,具备78KB指令缓存和32KB数据缓存,共享的二级缓存容量为16MB。

Centriq 2400

高通(Qualcomm)公司于2017年发布,采用三星10纳米工艺,支持最多48颗高性能64位单线程Falkor自研内核(基于ARMV8),常规频率2.2GHz,加速模式最高达2.6GHz。

A64FX

富士通公司于2018年发布,采用7纳米工艺,基于ARMv8.2A架构,支持最多48+4颗核心,主要用在超级计算机领域。

ThunderX2

2017年Marvell 收购了Cavium,于2019年发布了ThunderX2,采用16纳米工艺,基于ARMV8.1架构,支持最多32个物理核心,每个物理核心4线程,最多128个逻辑核心;常规频率2.5GHz,加速模式最高达3.0GHz,每核心32KB数据和指令缓存、256KB二级缓存,共享32MB三级缓存。

在云计算时代,基于ARM架构的处理器具有更好的适应性,因为ARM架构处理器具有多核心的优势,并且端侧也是ARM架构为主,这样端云协同更容易,所以,云计算给ARM架构插上了一个快速腾飞的翅膀。

2.计算领域的挑战

虽然计算领域的大趋势对ARM架构的发展来说是一个很好的契机,但是,这也带来了严峻的挑战。因为X86作为事实上统治了PC和服务器领域几十年的霸主,各种软件也基本都是为适应X86平台而设计的,现在要把这些软件运行在ARM架构平台上,就需要解决指令差异的问题,如下图所示,即使一个简单的加法程序,在平台架构层次上,差别也是非常大的。

因为这些差异的存在,从X86架构到ARM架构的软件迁移,就要解决一系列的困难,回答从可行性到性能调优的多个问题:

这些都是实际迁移中会遇到的,也是一定要解决的问题,如果人工去处理的话,确实存在周期长、投入大、准确率低、效果差等情况,如果不能很好的解决,恐怕迁移过程也就成了劝退过程。

二、鲲鹏开发套件DevKit

难道就没有办法简化迁移过程,减小迁移难度吗?当然是有的,华为推出了鲲鹏开发套件DevKit,这是帮助开发者把应用从X86架构迁移到鲲鹏架构的工具集,可以解决上面提到的一系列问题,就像武者手中的双截棍,柔中带刚,既可以迁移,又可以调优,甚至可以诊断调试,堪称开发者手中的大杀器。

鲲鹏开发套件作为工具集,包含了多个子工具,下面我们来逐个介绍一下。

1.迁移工具

迁移工具具有扫描快、检出全、指导精、构建易的特点,主要包括分析扫描、源代码迁移、软件包重构、专项软件迁移等功能。

2.加速库

要提高在鲲鹏架构下的应用性能,有时候几乎不用修改代码,直接替换鲲鹏加速库就可以了。鲲鹏开发套件提供了多种加速库,可以充分利用鲲鹏架构优良的设计性能,实现鲲鹏架构下的软加速和硬加速,在特定领域性能可以平均提高10%,要知道这可是基本“零代码”修改下达到的效果呀。

3.编译器

随着软硬件越来越复杂,应用程序执行性能的影响因素也越来越多,而编译器在其中扮演着一个比较关键的角色。因为历史的原因,大部分编译器是在X86架构居于统治地位的情况下产生并发展起来的,或多或少受X86架构的影响,所以,默认情况下,通过传统编译器编译的应用,在鲲鹏架构的系统中,并不能发挥出最高效的性能。为了解决这个问题,华为推出了多个针对鲲鹏微架构和指令进行了优化的高性能编译器,包括毕昇编译器、毕昇JDK、鲲鹏GCC。

这三种编译器有各自适用的领域,是鲲鹏平台下应用程序高效运行、发挥鲲鹏指令集和架构优势的有效保证。

4.性能分析工具

在软件运行过程中遇到的性能瓶颈,如果通过传统的手动方式来分析和调优,存在定位困难、手段单一、对人员技能要求高、效率和准确率低下的情况;为了便于鲲鹏开发人员解决这些问题,华为推出了鲲鹏性能分析工具,能够在软件运行状态下,自动采集系统数据,分析出系统性能指标,定位到瓶颈点及热点函数,给出调优建议,从而达到软件和鲲鹏平台融合的最佳性能。

性能分析工具按照对象分为系统性能优化和JAVA性能优化,如下图所示:

性能分析工具内置了多种常用分析工具的支持,可以一站式在多个维度对系统软硬件性能进行分析,并且可以提供图形化的友好界面,的确称得上秀外慧中,内外兼修,是一款不可多得的生产力倍增器。

5.ExaGear

先看一个小场景。

甲方:我们在X86平台下有个应用要在鲲鹏平台上运行;

程序员:没问题,你把源码给我,我们按照鲲鹏架构特点迁移一下就可以了;

甲方:没有源码

程序员:鲲鹏架构和X86架构还是有不少区别的...(此处省略4096个字),所以,我们需要源码;

甲方:道理我都懂,就是没源码;

程序员:#$%^&@$%

要是以前,就我这个暴脾气,当时就和甲方扛起来了,大不了提桶跑路!

现在,我只是微微一笑:“甲方爸爸,这些都是小事,没源码就没源码,我们公司技术实力你还不了解,没源码照样给您在鲲鹏平台上跑起来!”

说完,默默祭起我的法宝,就是ExGear,在鲲鹏平台上运行起来,相当于搭建了一个X86的环境,然后把原封不动的X86应用启动,就可以正常运行了,分分钟完成了无源码的快速应用迁移!

ExGear是华为自研的二进制动态指令翻译软件,能够在运行时将x86应用的指令翻译成ARM指令,使得大部分Linux x86-64应用无需重新编译即可运行在ARM64服务器上,从而屏蔽底层平台差异,低成本解决应用的平滑迁移,释放鲲鹏平台澎湃算力。

三、亮点优势

作为助力开发者高效完成应用迁移与调优的工具,鲲鹏开发套件具有无以比拟的亮点和优势。

1.入门简单:不改变开发者开发习惯,快速上手

鲲鹏开发套件同时支持IDE插件模式和Web浏览器模式,适用多种应用场景。

特别是IDE插件模式,基于VS Code/Intellij/MindStudio插件形式,提供一站式开发套件,是重度开发者的首选。

2.自动化:迁移内容自动识别,汇编代码自动翻译

自动化是鲲鹏开发套件生产力提高的关键所在,原先需要几个月才能干完的工作,现在只需要几天就能完成,这里面的秘密就是迁移内容自动识别以及汇编代码自动翻译。

通过这些自动化功能,把最繁琐的任务交给工具来完成,节省了大量的时间,而且准确性、有效性更是得到了一个飞跃,妥妥的外星黑科技。

3.高效:代码修改建议自动生成,开发效率倍增

鲲鹏开发套件高效还体现在如下方面:

可以识别C/C++/Fortran/汇编源代码,提供修改建议;Make、CMake、Automake编译选项、编译宏的解析及迁移建议;

支持100%Intrinsic函数转换(6000+个),包括MMX 、SSE及AVX Intrinsic 等;

快速64位检查与结构体字节对齐修改建议;

套件特有的一键替换功能,可以快速、准确、高效的自动完成代码的迁移。

4.便捷:远程调测,提供更便捷的调测能力

传统ARM应用开发过程中,开发者需要在开发工具、调测工具不同的工具中来回切换,操作复杂,效率低;鲲鹏DevKit提供远程调测能力,基于远程调测插件,在IDE中一站式完成应用的开发与调试。

5.全场景性能分析可视,性能瓶颈一目了然、调优尽在掌握

正如前文介绍,性能分析不但可以采集各种性能参数,更方便的是以图形形式展示,并给出优化建议,让问题一目了然,调优尽在掌握!

四、成功案例

鲲鹏开发套件在实际的鲲鹏平台开发中得到了大量的应用,这里有两个典型的成功案例。

1.MSP视频整体解决方案

该案例是关于视频整体解决方案的,原先的设计中网络性能成为了比较大的瓶颈,在使用鲲鹏开发套件进行方案的迁移与调优后,通过修改内核代码、升级网卡驱动,Bond模式一系列的提优手段,达到了网络性能提升10倍,最终网络性能逼近理论最大值流量,且性能指标稳定的效果。

2.某省气象局的气象预测方案

客户需求:

业务范围包括省天气预报、气候预测、灾害天气预警、旅游天气,环境气象等。在实际工作中气象预测的精度与性能意义十分重大,10分钟的提前预报就可极大降低人民群众的财产和生命损失。省局气象预测由IBM小型机承载主要计算,准备进行国产化替代。

解决方案:

采用基于鲲鹏的全国产化方案,硬件采用基于鲲鹏920处理器的TaiShan 200 2480四路高性能服务器;基于鲲鹏DevKit开发套件通过编译器参数优化、数学库优化、WRF配置优化等方式,优化WRF场景性能。

客户收益:

气象预测性能提升150%!

这么优秀的鲲鹏开发套件如何获取呢?需要多少费用?

听好了啊,不要998,不要98,一分钱不要,在这里就可以免费获取!

二维码:

鲲鹏开发套件官网:

https://www.hikunpeng.com/zh/developer/devkit

鲲鹏论坛:

https://bbs.huaweicloud.com/forum/forum-923-1.html

甚至,华为还提供了预装鲲鹏开发套件的专属远程云环境,也可以免费申请:

https://ic-openlabs.huawei.com/devkit-env/#/home?lang=zh-cn

不要犹豫,不要等待,快使用鲲鹏开发套件,哼哼哈嘿,开发之人切记,DevKit开发无敌!

鲲鹏

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:15 位学神争霸!2019 清华本科生特奖答辩入围名单公布
下一篇:华为云首席架构师独家分享:云原生2.0架构设计的8大关键趋势
相关文章