2019年科技行業(yè)有一個熱點(diǎn)“華為開源方舟編譯器”,編譯器這個名詞開始不斷的進(jìn)入國人的視野。作為民族自主品牌的驕傲,華為為什么投入巨大的人力開發(fā)方舟編譯器并將它開源,編譯器在華為乃至整個業(yè)界中到底處于什么樣的地位呢?
撇開編譯器,我們先談?wù)勑酒?。提到芯片,一直是國人痛心的地方,國?nèi)的媒體一直提到芯無力。2018年中國進(jìn)口總額為14.09萬億元,在這14.09萬億元的進(jìn)口商品中,進(jìn)口芯片的金額近2.06萬億元(具體為20584.1億人民幣),約為全國進(jìn)口商品總額的14.62%;進(jìn)口石油的總金額是15881.7億人民幣(約為1.59萬億元),約為全國進(jìn)口商品總額的11.28%,進(jìn)口芯片的金額是石油的1.3倍。在最近十年的進(jìn)口數(shù)額統(tǒng)計中,芯片進(jìn)口的價值均超過了石油,缺芯已經(jīng)緊緊的扼住了中國發(fā)展的咽喉。
為什么需要編譯器
以當(dāng)前最主流的芯片來看,桌面端CPU被Intel、AMD占據(jù),移動端被ARM、Apple統(tǒng)治,即使我們有新的性能相當(dāng)?shù)腃PU出現(xiàn)了,真的就能立即替代這些霸主嗎?
以日常使用的手機(jī)為例。從用戶的角度來說,用戶并不關(guān)注手機(jī)里面使用的是什么CPU。評價手機(jī)好用與否的第一標(biāo)準(zhǔn)是手機(jī)打開APP是否足夠快、網(wǎng)絡(luò)是否足夠順暢等,當(dāng)然如果這個手機(jī)里面搭載的是中國芯就更讓我們驕傲了。甚至對于部分用戶,如果手機(jī)內(nèi)搭載的是國產(chǎn)CPU,即使性能稍微差一點(diǎn),優(yōu)先也會選擇國產(chǎn)CPU的手機(jī)。但是很少用戶會選擇一款手機(jī):使用國產(chǎn)CPU、無法運(yùn)行當(dāng)前主流的APP(想象一下無法使用微信、支付寶、抖音的生活吧)。
當(dāng)然也許有人會說可以讓阿里、騰訊等這樣的公司針對國產(chǎn)CPU進(jìn)行專門的開發(fā)。但是針對特定的硬件架構(gòu)進(jìn)行代碼開發(fā)維護(hù)、性能調(diào)試等會有巨大的開銷,大公司也許可以做到,但是還有更多的小公司呢,日常生活中總會有一些APP屬于比較小眾的那一款,在國產(chǎn)CPU平臺上如果無法支持,或許就會成為你放棄這個平臺的理由。公眾對國產(chǎn)CPU平臺的熱情被千千萬萬個小的APP消耗殆盡后,平臺將會不可避免的走向滅亡。
這就是現(xiàn)在經(jīng)常說的芯片的生態(tài)系統(tǒng)的可怕之處。硬件不再是以單打獨(dú)斗的形式出現(xiàn),而是會與軟件進(jìn)行捆綁,最終形成自己的生態(tài)系統(tǒng),外來者很難闖入,這其中最出名的大概就是微軟和Intel組成的Wintel聯(lián)盟了。
什么是編譯器
解開生態(tài)系統(tǒng)難題的其中一個重要的環(huán)節(jié)就是編譯器了。眾所周知,所有應(yīng)用軟件都是使用相應(yīng)編程語言(C/C++/Java等等)進(jìn)行開發(fā)的,工程師使用編程語言中固定的詞匯和格式編寫,之后使用編譯器識別代碼中的詞匯、句子以及各種特定格式,將它們轉(zhuǎn)換成計算機(jī)能夠識別并執(zhí)行的二進(jìn)制形式。
編譯也可以理解為“翻譯”,類似于將中文翻譯成英文,它是一個復(fù)雜的過程,首先編譯器進(jìn)行語法分析,也就是要把那些字符串分離出來。然后進(jìn)行語義分析,就是把各個由語法分析分析出的語法單元的意義搞清楚。然后是性能優(yōu)化、生成可執(zhí)行文件。期間涉及到復(fù)雜的算法和硬件架構(gòu)。之所以復(fù)雜, 是由于它們具有處理多種問題以及相關(guān)數(shù)據(jù)集的能力。
通過編譯器,開發(fā)人員可以很方便的實(shí)現(xiàn)業(yè)務(wù)平臺的遷移,不需要修改業(yè)務(wù)代碼,僅需要修改編譯平臺的配置,做到業(yè)務(wù)邏輯的一致。同時編譯器內(nèi)部根據(jù)業(yè)務(wù)執(zhí)行的平臺,對業(yè)務(wù)代碼進(jìn)行特定的優(yōu)化,保證代碼在硬件平臺上性能達(dá)到最優(yōu)。同時編譯器不斷升級維護(hù)也不會對上層運(yùn)行的業(yè)務(wù)代碼產(chǎn)生沖擊,這樣所有的APP廠商針對新平臺的工作量會降到比較低的程度,大家的接受意愿才會更強(qiáng)烈,編譯器最終的目標(biāo)是幫助開發(fā)人員實(shí)現(xiàn)一次代碼編寫,跨平臺運(yùn)行。
國內(nèi)現(xiàn)狀
當(dāng)前,隨著國內(nèi)手機(jī)廠商對系統(tǒng)優(yōu)化的不斷深入,頭部廠商紛紛開始針對編譯器進(jìn)行優(yōu)化。華為最早開源了方舟編譯器,vivo有ART++,OPPO也推出了端云智能編譯等。
隨著國內(nèi)芯片產(chǎn)業(yè)重視程度越來越高,越來越多的廠商開始真正重視芯片的研發(fā)并且意識到芯片生態(tài)系統(tǒng)的重要性,編譯器作為其中的重要一環(huán),為未來自主操作系統(tǒng)的推出起到重要的基礎(chǔ)作用,也越來越被重視。而且國內(nèi)計算行業(yè)的領(lǐng)頭羊華為在516事件后,將打造鯤鵬、昇騰系列芯片的生態(tài)作為重中之重,在可以預(yù)期的未來,國內(nèi)的計算行業(yè)將會迎來一場變革,也許在這一波變革中我們會真正建立起自己的生態(tài),在我們這一代人手中徹底打破芯無力的現(xiàn)狀。
-
芯片
+關(guān)注
關(guān)注
462文章
53181瀏覽量
453744 -
cpu
+關(guān)注
關(guān)注
68文章
11187瀏覽量
221292 -
編譯器
+關(guān)注
關(guān)注
1文章
1665瀏覽量
50854
發(fā)布評論請先 登錄
TLC2578芯片中FS與SDI到底有什么作用?
24位或者說高分辨率的AD到底有什么用呢?
Triton編譯器與GPU編程的結(jié)合應(yīng)用
Triton編譯器如何提升編程效率
Triton編譯器在高性能計算中的應(yīng)用
Triton編譯器的優(yōu)化技巧
Triton編譯器的優(yōu)勢與劣勢分析
Triton編譯器在機(jī)器學(xué)習(xí)中的應(yīng)用
Triton編譯器支持的編程語言
Triton編譯器與其他編譯器的比較
Triton編譯器功能介紹 Triton編譯器使用教程
C7000優(yōu)化C/C++編譯器

評論