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