电子说
2019年科技行业有一个热点“华为开源方舟编译器”,编译器这个名词开始不断的进入国人的视野。作为民族自主品牌的骄傲,华为为什么投入巨大的人力开发方舟编译器并将它开源,编译器在华为乃至整个业界中到底处于什么样的地位呢?
撇开编译器,我们先谈谈芯片。提到芯片,一直是国人痛心的地方,国内的媒体一直提到芯无力。2018年中国进口总额为14.09万亿元,在这14.09万亿元的进口商品中,进口芯片的金额近2.06万亿元(具体为20584.1亿人民币),约为全国进口商品总额的14.62%;进口石油的总金额是15881.7亿人民币(约为1.59万亿元),约为全国进口商品总额的11.28%,进口芯片的金额是石油的1.3倍。在最近十年的进口数额统计中,芯片进口的价值均超过了石油,缺芯已经紧紧的扼住了中国发展的咽喉。
为什么需要编译器
以当前最主流的芯片来看,桌面端CPU被Intel、AMD占据,移动端被ARM、Apple统治,即使我们有新的性能相当的CPU出现了,真的就能立即替代这些霸主吗?
以日常使用的手机为例。从用户的角度来说,用户并不关注手机里面使用的是什么CPU。评价手机好用与否的第一标准是手机打开APP是否足够快、网络是否足够顺畅等,当然如果这个手机里面搭载的是中国芯就更让我们骄傲了。甚至对于部分用户,如果手机内搭载的是国产CPU,即使性能稍微差一点,优先也会选择国产CPU的手机。但是很少用户会选择一款手机:使用国产CPU、无法运行当前主流的APP(想象一下无法使用微信、支付宝、抖音的生活吧)。
当然也许有人会说可以让阿里、腾讯等这样的公司针对国产CPU进行专门的开发。但是针对特定的硬件架构进行代码开发维护、性能调试等会有巨大的开销,大公司也许可以做到,但是还有更多的小公司呢,日常生活中总会有一些APP属于比较小众的那一款,在国产CPU平台上如果无法支持,或许就会成为你放弃这个平台的理由。公众对国产CPU平台的热情被千千万万个小的APP消耗殆尽后,平台将会不可避免的走向灭亡。
这就是现在经常说的芯片的生态系统的可怕之处。硬件不再是以单打独斗的形式出现,而是会与软件进行捆绑,最终形成自己的生态系统,外来者很难闯入,这其中最出名的大概就是微软和Intel组成的Wintel联盟了。
什么是编译器
解开生态系统难题的其中一个重要的环节就是编译器了。众所周知,所有应用软件都是使用相应编程语言(C/C++/Java等等)进行开发的,工程师使用编程语言中固定的词汇和格式编写,之后使用编译器识别代码中的词汇、句子以及各种特定格式,将它们转换成计算机能够识别并执行的二进制形式。
编译也可以理解为“翻译”,类似于将中文翻译成英文,它是一个复杂的过程,首先编译器进行语法分析,也就是要把那些字符串分离出来。然后进行语义分析,就是把各个由语法分析分析出的语法单元的意义搞清楚。然后是性能优化、生成可执行文件。期间涉及到复杂的算法和硬件架构。之所以复杂, 是由于它们具有处理多种问题以及相关数据集的能力。
通过编译器,开发人员可以很方便的实现业务平台的迁移,不需要修改业务代码,仅需要修改编译平台的配置,做到业务逻辑的一致。同时编译器内部根据业务执行的平台,对业务代码进行特定的优化,保证代码在硬件平台上性能达到最优。同时编译器不断升级维护也不会对上层运行的业务代码产生冲击,这样所有的APP厂商针对新平台的工作量会降到比较低的程度,大家的接受意愿才会更强烈,编译器最终的目标是帮助开发人员实现一次代码编写,跨平台运行。
国内现状
当前,随着国内手机厂商对系统优化的不断深入,头部厂商纷纷开始针对编译器进行优化。华为最早开源了方舟编译器,vivo有ART++,OPPO也推出了端云智能编译等。
随着国内芯片产业重视程度越来越高,越来越多的厂商开始真正重视芯片的研发并且意识到芯片生态系统的重要性,编译器作为其中的重要一环,为未来自主操作系统的推出起到重要的基础作用,也越来越被重视。而且国内计算行业的领头羊华为在516事件后,将打造鲲鹏、昇腾系列芯片的生态作为重中之重,在可以预期的未来,国内的计算行业将会迎来一场变革,也许在这一波变革中我们会真正建立起自己的生态,在我们这一代人手中彻底打破芯无力的现状。
全部0条评论
快来发表一下你的评论吧 !