演講嘉賓 | 曾建江
回顧整理 | 廖 濤
排版校對 | 李萍萍
嘉賓簡介
曾建江,亞琛工業(yè)大學(xué)博士,華為畢昇編譯器首席架構(gòu)師、芯片軟件協(xié)同設(shè)計(jì)部部長,擁有多年編譯器與芯片軟件協(xié)同設(shè)計(jì)經(jīng)驗(yàn),負(fù)責(zé)探索先進(jìn)軟硬件協(xié)同設(shè)計(jì)技術(shù)、工具以及方法。
文章內(nèi)容來源
第一屆開放原子開源基金會(huì)OpenHarmony技術(shù)峰會(huì)——開發(fā)者工具分論壇
視頻回顧
正 文 內(nèi) 容
由C、C++、Java等高級(jí)語言編碼的人類可讀源代碼需要通過編譯器編譯,才能夠被翻譯成計(jì)算機(jī)可執(zhí)行的目標(biāo)代碼。在特定硬件平臺(tái)和編程語言的雙重約束條件下,應(yīng)用程序的性能主要依賴于程序員編寫并行代碼的能力和編譯器的優(yōu)化能力。華為多年自研的畢昇編譯器做了哪些優(yōu)化工作,又如何賦能OpenHarmony開源生態(tài)呢?華為畢昇編譯器首席架構(gòu)師曾建江在第一屆OpenHarmony技術(shù)峰會(huì)上,分享了幾點(diǎn)思考。
01?
畢昇編譯器介紹
畢昇編譯器是華為自主開發(fā)的一款專注于C和C++代碼構(gòu)建的系統(tǒng)底層組件,旨在發(fā)揮自研芯片的最佳性能。在鯤鵬服務(wù)器中,畢昇編譯器能夠與鯤鵬芯片協(xié)同,通過編譯器技術(shù)充分發(fā)揮芯片的性能。目前,畢昇編譯器for鯤鵬2.4.0版本的SPEC2017性能已經(jīng)比GCC9.3提升了30%(測試環(huán)境及配置見https://www.spec.org/cpu2017/results/res2021q4/cpu2017-20211012-29727.html)。經(jīng)過畢昇編譯器優(yōu)化的超算領(lǐng)域HPC TOP應(yīng)用的性能平均提升了10%,讓用戶在鯤鵬硬件平臺(tái)上能夠體驗(yàn)到更好的業(yè)務(wù)性能。此外,畢昇編譯器與鯤鵬攜手已在政府、運(yùn)營商、氣象、水利等多個(gè)國計(jì)民生行業(yè)落地商用,并持續(xù)在更多行業(yè)中拓展。今天,開發(fā)者可以方便地從鯤鵬套件中獲取到最新版的畢昇編譯器for鯤鵬(https://www.hikunpeng.com/zh/developer/devkit/compiler/bisheng)。
畢昇2.4.0版本與GCC的性能比較
畢昇編譯器團(tuán)隊(duì)很早就加入到RISC-V社區(qū)的開發(fā)中,形成深度協(xié)同。目前,畢昇編譯器已經(jīng)基于RISC-V開發(fā)了MCU處理器,賦能穿戴智能終端,持續(xù)提升產(chǎn)品競爭力。此外,還積極參與OpenHarmony的生態(tài)建設(shè)工作,將MCU處理器上積累的Codesize和性能優(yōu)化等編譯優(yōu)化技術(shù)能力賦能到OpenHarmony生態(tài)的眾多其他設(shè)備上。
畢昇編譯器協(xié)同RISC-V
02?
Codesize和性能優(yōu)化
在RISC-V的應(yīng)用當(dāng)中,特別是面向MCU成本特別得敏感,而Codesize的壓縮優(yōu)化是節(jié)省MCU成本的有效方法之一。畢昇編譯器采用了函數(shù)跳轉(zhuǎn)壓縮、跳轉(zhuǎn)表壓縮和Global Propagation增強(qiáng)等技術(shù),進(jìn)一步精簡了編譯的代碼量。在函數(shù)跳轉(zhuǎn)中,畢昇編譯器基于RISC-V對整個(gè)跳轉(zhuǎn)過程進(jìn)行優(yōu)化,將原先兩條指令合成一條指令,每一次跳轉(zhuǎn)能夠節(jié)省32 Bytes的Codesize。在跳轉(zhuǎn)表中,畢昇編譯器采取基線地址偏移值代替絕對值的方法,保存表中相鄰元素的地址差值(8 Bytes)而非元素本身(32 Bytes),從而達(dá)到壓縮跳轉(zhuǎn)表的目的。此外,畢昇編譯器也通過全局變量傳遞的方法對其重復(fù)加載問題進(jìn)行了優(yōu)化。
在性能方面,由于函數(shù)調(diào)用涉及頻繁的壓棧和出棧操作,造成了不必要的性能開銷。畢昇編譯器采取了Shrink wrap增強(qiáng)技術(shù),通過重新安排函數(shù)prologue和epilogue的位置以減少函數(shù)的棧保存操作。
畢昇編譯器Shrink wrap增強(qiáng)
除了上述純編譯優(yōu)化技術(shù)外,畢昇MCU編譯器還與華為自研的RISC-V擴(kuò)展指令相配合,讓相關(guān)產(chǎn)品的軟件獲得領(lǐng)先的代碼體積與性能收益。即使只使能RISC-V社區(qū)標(biāo)準(zhǔn)的IMFADC等擴(kuò)展的指令,在不使用自研擴(kuò)展指令的前提下,畢昇MCU編譯器依舊能為開發(fā)者提供優(yōu)秀的軟件性能與代碼體積。隨著華為MCU類產(chǎn)品的商用交付的推進(jìn),華為和RISC-VMCU的開發(fā)者將很快就能用上畢昇MCU編譯器。
03?
總結(jié)
未來,華為畢昇編譯器團(tuán)隊(duì)將把畢昇編譯器的優(yōu)化技術(shù)和能力通過開源貢獻(xiàn)到OpenHarmony社區(qū),以此促進(jìn)OpenHarmony軟件生態(tài)的發(fā)展,讓整個(gè)OpenHarmony生態(tài)都能夠獲得有競爭力的編譯技術(shù)支撐。
E N D
點(diǎn)擊下方閱讀原文獲取演講PPT。
關(guān)注我們,獲取更多精彩。
審核編輯黃宇
-
編譯器
+關(guān)注
關(guān)注
1文章
1634瀏覽量
49133 -
RISC-V
+關(guān)注
關(guān)注
45文章
2277瀏覽量
46159 -
OpenHarmony
+關(guān)注
關(guān)注
25文章
3722瀏覽量
16320
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
評(píng)論