數(shù)字經(jīng)濟時代,市場既需要通用計算算力也需要異構(gòu)計算算力。以ARM架構(gòu)為代表的非x86體系架構(gòu)正以其先進工藝、低功耗、多核等優(yōu)勢,在云服務(wù)、存儲、網(wǎng)絡(luò)等主要場景得到了越來越多的應(yīng)用。
從x86架構(gòu)遷移到 ARM 架構(gòu)的過程并不簡單,不僅架構(gòu)不同,而且指令集也不兼容。如何快速遷移已有軟件就是用戶需要解決的第一個問題。華為在2020年發(fā)布鯤鵬開發(fā)套件DevKit,給開發(fā)者提供面向鯤鵬處理器進行應(yīng)用軟件遷移與調(diào)優(yōu)的系列化工具,助力用戶無憂遷移程序。
對癥下藥,鯤鵬DevKit對于應(yīng)用遷移采取的策略是:根據(jù)不同的軟件開發(fā)語言,采用不同的方式進行遷移。通常,編譯型語言編寫的程序遷移難度大。在編寫程序時,開發(fā)者通常通過宏定義指定程序片段的有效范圍,在編譯階段通過宏定義選擇需要的代碼進行編譯。
跨平臺遷移軟件時,用戶需要檢視源碼中所有與平臺架構(gòu)相關(guān)的宏定義是否需要修改。在大型軟件項目遷移過程中,往往需要有一個龐大的遷移工程團隊審查源代碼,找到需要改動的地方,進而做出手工改動。這樣的遷移方法占用了大量的人力資源,而使用鯤鵬開發(fā)套件DevKit可以大大提高軟件遷移效率。
直擊痛點,鯤鵬DevKit
有效解決源代碼遷移3大挑戰(zhàn)
1 編譯器檢查項眾多,難以面面俱到
一般情況下,編譯器或者解釋器屏蔽了底層硬件平臺的差異。以常用的GCC編譯器為例,GCC編譯器為x86平臺提供了近100個宏定義、超過300個編譯選項、超過1000個built-in函數(shù)和超過300個attributes屬性。在C/C++軟件遷移過程中,上述編譯器相關(guān)內(nèi)容都需要檢查。
同時,在軟件編譯鏈接過程中會依賴第三方組件,而這些組件在鯤鵬平臺是否有兼容版本,也是需要檢查判斷,而鯤鵬開發(fā)套件DevKit就可以快速完成上述檢查。例如,開發(fā)者在軟件構(gòu)建文件中使用了“-march”、“-mcpu”、“-m64”等參數(shù);或者在源碼中使用了“__x86_64__”這類平臺架構(gòu)相關(guān)的宏定義,DevKit都可以快速檢出并提供適用鯤鵬平臺的修改建議。
2軟件構(gòu)建依賴庫龐大,開發(fā)者獲取兼容庫難
開發(fā)者在軟件構(gòu)建文件中通常通過命令參數(shù)“-l”指定需要鏈接的庫文件。由于ARM架構(gòu)軟件生態(tài)相比x86架構(gòu)還存在差異,存在某些庫文件在鯤鵬平臺上不兼容的情況。
DevKit匯聚了主流的Linux發(fā)行版超過160萬個so庫文件,能夠方便的檢查“-l”參數(shù)指定的庫文件在鯤鵬平臺是否兼容,向用戶提供檢查報告。
3匯編語言程序復(fù)雜,需要專業(yè)技術(shù)知識,開發(fā)者學(xué)習(xí)成本高
為了提升軟件運行效率,用戶軟件中可能存在匯編程序。由于鯤鵬平臺與x86平臺的ISA完全不兼容而且差異巨大,這部分代碼的遷移是非常困難的。目前鯤鵬開發(fā)套件DevKit提供了兩種遷移方法。
一種是基于語法和語義分析的異構(gòu)平臺源代碼遷移,通過對x86匯編程序的語法、語義分析,轉(zhuǎn)換為鯤鵬平臺匯編程序;一種是基于翻譯規(guī)則的源代碼跨平臺翻譯,對常用功能的x86匯編程序提供對應(yīng)的鯤鵬匯編程序。
匯編自動翻譯總體方案
簡單高效,使用二進制指令
進行無源碼遷移
如果用戶軟件過于陳舊沒有源碼,鯤鵬開發(fā)套件DevKit也提供了無源碼軟件遷移工具Exagear。用戶可以在Exagear之上直接運行x86二進制可執(zhí)行文件,通過指令動態(tài)翻譯,在鯤鵬平臺上正常運行該程序,避免了軟件的任何修改。 鯤鵬開發(fā)套件DevKit提供了Web瀏覽器訪問和IDE插件等多種使用方式,不改變開發(fā)者使用習(xí)慣,大大降低學(xué)習(xí)使用鯤鵬DevKit的難度。Web瀏覽器模式下,開發(fā)者可以通過Web瀏覽器直接訪問即可便捷的進行應(yīng)用遷移與調(diào)優(yōu);IDE插件模式下,鯤鵬提供了VSCode和IntelliJ兩種主流IDE插件,開發(fā)者可以直接訪問應(yīng)用商店搜索“Kunpeng DevKit”下載并使用。
現(xiàn)在,開發(fā)者可以從鯤鵬開發(fā)社區(qū)免費獲取并安裝使用鯤鵬開發(fā)套件DevKit,實現(xiàn)軟件從x86向鯤鵬平臺的無憂遷移。
編輯:jq
-
華為
+關(guān)注
關(guān)注
216文章
34530瀏覽量
252753 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4345瀏覽量
62911 -
編譯器
+關(guān)注
關(guān)注
1文章
1642瀏覽量
49251 -
解釋器
+關(guān)注
關(guān)注
0文章
103瀏覽量
6557 -
鯤鵬
+關(guān)注
關(guān)注
1文章
131瀏覽量
8990
原文標題:直擊遷移痛點,鯤鵬開發(fā)套件DevKit助力應(yīng)用無憂遷移
文章出處:【微信號:gh_3a181fa836b6,微信公眾號:華為計算】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論