![一分鐘遷移匯編代碼:鯤鵬DevKit中匯編翻譯特性的應(yīng)用和實(shí)現(xiàn)_第1頁](http://file4.renrendoc.com/view/93d26367f93d0755e5294309271669af/93d26367f93d0755e5294309271669af1.gif)
![一分鐘遷移匯編代碼:鯤鵬DevKit中匯編翻譯特性的應(yīng)用和實(shí)現(xiàn)_第2頁](http://file4.renrendoc.com/view/93d26367f93d0755e5294309271669af/93d26367f93d0755e5294309271669af2.gif)
![一分鐘遷移匯編代碼:鯤鵬DevKit中匯編翻譯特性的應(yīng)用和實(shí)現(xiàn)_第3頁](http://file4.renrendoc.com/view/93d26367f93d0755e5294309271669af/93d26367f93d0755e5294309271669af3.gif)
![一分鐘遷移匯編代碼:鯤鵬DevKit中匯編翻譯特性的應(yīng)用和實(shí)現(xiàn)_第4頁](http://file4.renrendoc.com/view/93d26367f93d0755e5294309271669af/93d26367f93d0755e5294309271669af4.gif)
![一分鐘遷移匯編代碼:鯤鵬DevKit中匯編翻譯特性的應(yīng)用和實(shí)現(xiàn)_第5頁](http://file4.renrendoc.com/view/93d26367f93d0755e5294309271669af/93d26367f93d0755e5294309271669af5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
一分鐘遷移匯編代碼:鯤鵬DevKit中匯編翻譯特性的應(yīng)用和實(shí)現(xiàn)?待遷移的匯編代碼?匯編翻譯的意義和挑戰(zhàn)?匯編翻譯的應(yīng)用和實(shí)現(xiàn)?總結(jié)和展望鯤鵬DevKit:一站式開發(fā)套件分布式存儲(chǔ)Web數(shù)據(jù)庫虛擬化大數(shù)據(jù)(分布式存儲(chǔ)Web數(shù)據(jù)庫虛擬化大數(shù)據(jù)(openLooKeng)云手機(jī)鯤鵬開發(fā)套件KunpengDevKit應(yīng)用開發(fā)系統(tǒng)軟件開發(fā)硬件開放…使能代碼遷移工具編譯器性能分析工具 處理器SSD鯤鵬主板網(wǎng)卡代碼遷移工具編譯器性能分析工具移速庫插件高效遷移工具移速庫插件高效遷移工具全面分析精準(zhǔn)調(diào)優(yōu)試工具快速診斷準(zhǔn)確定位有源碼遷移工具化插件與IDE開發(fā)環(huán)境集成鯤鵬DevKit:全流程開發(fā)效率提升一站式遷移、編譯、測(cè)試、分析試插件鯤鵬親和性能更高無源碼遷移平滑遷移、業(yè)務(wù)無損華為動(dòng)態(tài)二進(jìn)制翻譯工具(ExaGear)難懂難懂難調(diào)匯編代碼?匯編語言(Assemblylanguage)是任何一種計(jì)算機(jī)或其他可編程器件的低級(jí)語言。在不同的設(shè)備中,匯編語言對(duì)應(yīng)著不同的機(jī)器語言指令集。一種匯編語言專用于某種計(jì)算機(jī)系統(tǒng)結(jié)構(gòu),如x86_64或AArch64匯編。?為何仍使用匯編性能匯編樣式簡(jiǎn)單嵌入?yún)R編(單指令)復(fù)雜嵌入?yún)R編(多指令)語法格式錯(cuò)綜復(fù)雜全匯編文件工具化翻譯匯編樣式多樣性工具化翻譯匯編樣式多樣性能衰減控制意義和挑戰(zhàn)?匯編代碼:軟件跨平臺(tái)的“攔路虎”?x86到鯤鵬平臺(tái)匯編自動(dòng)翻譯的挑戰(zhàn)平臺(tái)差平臺(tái)差異巨大嵌入?yún)R編:使用都較簡(jiǎn)單,指令也比較集中嵌入?yún)R編:使用都較簡(jiǎn)單,指令也比較集中使用場(chǎng)景全全匯編文件:SIMD指令占大多數(shù),指令相對(duì)集中總體思路 (大多數(shù)場(chǎng)景且性能盡量不衰減)基于特征規(guī)則的自動(dòng)轉(zhuǎn)換基于規(guī)則的快速匯編轉(zhuǎn)換(簡(jiǎn)單嵌入?yún)R編)二進(jìn)制代碼 (x86- 64)二進(jìn)制代碼 (AArch64)總體設(shè)計(jì)?匯編樣式復(fù)雜?平臺(tái)間差異大?目標(biāo)要求很高能用則用需改盡改?當(dāng)快則快?曲折前行基于編譯技術(shù)的自動(dòng)轉(zhuǎn)換匯編源代碼 (匯編源代碼 (x86-64) (AArch64)編譯器中間表示翻譯 (SIMD為主)x86=>ARMOutputListGCCAsmstatAsmStringInputListOutputListGCCAsmstatAsmStringInputListAST關(guān)鍵節(jié)點(diǎn)?Clang-Tidy:基于LLVM的靜態(tài)語法檢查框架,提供語法(AST)解析能力?基于Clang-Tidy拓展匯編識(shí)別和替換規(guī)則CVariableSymbolOperandE0->[arg]->vCVariableSymbolOperandE0->[arg]->vE1->[storage]-s簡(jiǎn)單嵌入?yún)R編翻譯待轉(zhuǎn)換x待轉(zhuǎn)換x86嵌入式匯編__asm__volatile__(“l(fā)ock;orq%[arg],%[storage]\n\t”:[stoarge]“+m”(s):“memory”);規(guī)則庫模板Instwidth:q(64bit)Prefix:lockCFlags:null轉(zhuǎn)換規(guī)則庫匹配TRANS_RULE(OR)TRANS_RULE(LOCK_OR)TRANS_RULE(LOCK_OR_NZ)__atomic_fetch_or(&s,v,__ATOMIC_SEQ_CET);1.指令操作數(shù)映射2.匯編語句特征分析(綁定步驟1)3.規(guī)則庫規(guī)則匹配(綁定步驟2)4.根據(jù)規(guī)則進(jìn)行代碼翻譯指令語義:對(duì)E0和E1兩個(gè)操作數(shù)按位或運(yùn)算,結(jié)果寫入E1基于編譯技術(shù)的自動(dòng)轉(zhuǎn)換基于特征規(guī)則的自動(dòng)轉(zhuǎn)換匯編源代基于編譯技術(shù)的自動(dòng)轉(zhuǎn)換基于特征規(guī)則的自動(dòng)轉(zhuǎn)換匯編源代碼 (x86-64)匯編源代碼 (AArch64)基于規(guī)則的快速匯編轉(zhuǎn)換(簡(jiǎn)單嵌入?yún)R編)二進(jìn)制代碼 (x86- 64)編譯器中間表示翻譯 (SIMD為主)二進(jìn)制代碼 (AArch64)1.指令組合無法窮舉2.匯編模塊引用外部變量3.消除平臺(tái)間調(diào)用差異4.SIMD指令對(duì)等翻譯翻譯步驟對(duì)挑戰(zhàn)局部異構(gòu)反編譯譯優(yōu)化4指令直接翻譯4代碼生成2x86機(jī)器狀態(tài)的抽象x86機(jī)器狀態(tài)的抽象:structState{VectorRegvec[kNumVecRegisters];//向量寄存器xmm/ymm/zmm結(jié)構(gòu)定義GPRgpr;//通用寄存器rax/rbx…結(jié)構(gòu)定義X87Stackst;MMXmmx;FPUx87;FPUStatusFlagssw;}__.ttribute__((packed));復(fù)雜匯編翻譯:指令語義轉(zhuǎn)譯x86機(jī)器模型抽象?機(jī)器狀態(tài)抽象為數(shù)據(jù)結(jié)構(gòu),內(nèi)存被抽象為一段大數(shù)空間?所有匯編指令語義,都被翻譯成對(duì)機(jī)器模型的操作x86指令的轉(zhuǎn)譯過程?每條指令對(duì)應(yīng)語義函數(shù)(用高級(jí)語言編程),經(jīng)編譯器編譯為編譯器中間表示?輸入?yún)R編指令解碼后,生成對(duì)語義函數(shù)調(diào)用,經(jīng)編譯器優(yōu)化為最優(yōu)代碼paddwpaddw指C++語義函數(shù)引入vectorextension描述SIMD指令語義xx86匯編指令串其他指令SIMD指令使用Vectorextension描述SIMD指令的操作數(shù)變量Vectorextension普通C++接口語義實(shí)現(xiàn)x86匯編翻譯后的翻譯后的SIMD指令語義編譯器編譯復(fù)雜匯編翻譯:參數(shù)化翻譯主主要是為了解決C語言變量和匯編代碼的關(guān)聯(lián)x86嵌入?yún)R編指令串高級(jí)語言變量列表逐條翻譯指令串,引用參數(shù)化的虛擬寄存器被翻譯的x86指令串(函數(shù)聲明)參數(shù)ARG0_64被翻譯的x86指令串(函數(shù)定義)引導(dǎo)代碼(關(guān)聯(lián)C變量和函數(shù)參數(shù))被翻譯的x86指令串 (函數(shù)定義)引導(dǎo)代碼生成參數(shù)化翻譯參數(shù)ARG1_64x86嵌入?yún)R編入實(shí)例參數(shù)化入實(shí)例模擬寄存器 (模擬寄存器 (State結(jié)構(gòu))x86-64模擬環(huán)境棧底棧頂模擬棧 (內(nèi)存結(jié)構(gòu))0x00000x00080x0010lee返回地址x86-64AArch64入?yún)⒓拇嫫鱎DIRSI,RDX,RCX,R8,R9x0-x7返回值寄存器xx30//C函數(shù)Caller()調(diào)用匯編函數(shù)Callee()Caller(){…res=Callee(i1,i2,i3,…,i8);…}復(fù)雜匯編翻譯:函數(shù)跳轉(zhuǎn)和調(diào)用約定主要解決C語言接口和匯編接口之間的調(diào)用問題C函數(shù)調(diào)用匯編模塊中的函數(shù)Callee時(shí)的狀態(tài)切換AArch64物理環(huán)境寄存器程序棧棧底棧頂xX30Callee返原始x86匯編截圖翻譯后鯤鵬匯編截圖x86結(jié)果原始x86匯編截圖翻譯后鯤鵬匯編截圖x86結(jié)果X86X86匯編代碼自動(dòng)翻譯:一分鐘搞定x86匯編代碼遷移到鯤鵬平臺(tái)?指令語義的眾籌?更多場(chǎng)景的支持?新硬件指令支持you.把數(shù)字世界帶入每個(gè)人、每個(gè)家庭、每個(gè)組織,構(gòu)建萬物互聯(lián)的智能世界。Bringdigitaltoeveryperson,homeandorganizationforafullyconnected,intelligentworld.Copyright?2020HuaweiTechnologiesCo.,Ltd.AllRightsReserved.Theinformationinthisdocumentmaycontainpredictivestatementsincluding,withoutlimitation,statementsregardingthefuturefinancialandoperatingresults,futureproductportfolio,newtechnology,etc.Thereareanumberoffactorsthatcouldcauseactualresultsanddevelopmentstodiffermateriallyfromthoseexpressedorimpliedinthepredictivestatements.T
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度新型城鎮(zhèn)化建設(shè)項(xiàng)目合同管理規(guī)范
- 2025年度酒水飲料電商合作與推廣合同范本2篇
- 2025年度地鐵隧道施工合同安全管理規(guī)范詳解
- 2025年度屋頂隔熱保溫材料供應(yīng)與施工合同
- 2025年度會(huì)議場(chǎng)地租賃合同(含技術(shù)支持)
- 2025年度商品混凝土行業(yè)聯(lián)盟采購合同范本
- 2025年度建筑垃圾資源化利用施工勞務(wù)分包合同范本
- 2025年度建筑工程信息化建設(shè)與智能化改造合同
- 2025年度工礦產(chǎn)品購銷合同工業(yè)0智能制造合同
- 2025年度健身俱樂部健身器材租賃與維修服務(wù)合同
- Unit 2 Know your body(說課稿)-2024-2025學(xué)年外研版(三起)(2024)英語三年級(jí)下冊(cè)
- 跨學(xué)科主題學(xué)習(xí)2-探索太空逐夢(mèng)航天 說課稿-2024-2025學(xué)年粵人版地理七年級(jí)上冊(cè)
- 《電子技術(shù)應(yīng)用》課程標(biāo)準(zhǔn)(含課程思政)
- 電力儲(chǔ)能用集裝箱技術(shù)規(guī)范
- 小學(xué)生雪豹課件
- 《課標(biāo)教材分析》課件
- 《信號(hào)工程施工》課件 項(xiàng)目一 信號(hào)圖紙識(shí)讀
- 基礎(chǔ)護(hù)理常規(guī)制度
- 針灸治療動(dòng)眼神經(jīng)麻痹
- 傾聽幼兒馬賽克方法培訓(xùn)
- 設(shè)備日常維護(hù)及保養(yǎng)培訓(xùn)
評(píng)論
0/150
提交評(píng)論