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

89元起!開源國(guó)產(chǎn)FPGA開發(fā)套件,提供原理圖及配套參考例程的源代碼

云平臺(tái)連接(SC171開發(fā)套件V3)
SC171開發(fā)套件V3 技術(shù)資料
平臺(tái)介紹及基本使用(SC171開發(fā)套件V3)
AI功能(SC171開發(fā)套件V3)
科達(dá)KCloudStor云存儲(chǔ)系統(tǒng)與鯤鵬攜手推進(jìn)原生開發(fā)技術(shù)創(chuàng)新
【正點(diǎn)原子STM32H7R3開發(fā)套件試用體驗(yàn)】開發(fā)套件開箱報(bào)告
稅友股份攜手鯤鵬原生開發(fā)稅務(wù)行業(yè)應(yīng)用

AM243x LaunchPad?開發(fā)套件用戶指南

TPS63802HDKEVM-硬件開發(fā)套件

潤(rùn)和軟件啟動(dòng)鯤鵬原生開發(fā)合作
【xG24 Matter開發(fā)套件試用體驗(yàn)】power specification電源規(guī)格參數(shù)配置
中科創(chuàng)達(dá)旗下創(chuàng)通聯(lián)達(dá)Qualcomm RB3 Gen 2 Lite開發(fā)套件上市銷售
JH-7110 RISC-V開發(fā)套件正式開源

評(píng)論