




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第8章
鯤鵬應(yīng)用遷移與開發(fā)鯤鵬智能計(jì)算導(dǎo)論8.1鯤鵬軟件遷移8.2鯤鵬軟件開發(fā)8.3鯤鵬軟件遷移實(shí)踐學(xué)習(xí)要點(diǎn)8.1.1 鯤鵬遷移概述計(jì)算機(jī)技術(shù)棧與程序執(zhí)行過程intmain(){inta=1;intb=2;intc=0;c=a+b;returnc;}上述這段C/C++代碼在不同處理器下的指令是不一樣的。8.1.1 鯤鵬遷移概述指令匯編代碼說明b9400fe1ldrx1,[sp,#12]從內(nèi)存中將變量a的值放入寄存器x1b9400be0ldrx0,[sp,#8]從內(nèi)存中將變量b的值放入寄存器x00b000020addx0,x1,x0將x1中的值加上x0中的值放入x0b90007e0strx0,[sp,#4]將x0中的值存入內(nèi)存(變量c)指令匯編代碼說明8b55fcmov-0x4(%rbp),%edx從內(nèi)存中將變量a的值放入寄存器edx8b45f8mov-0x8(%rbp),%eax從內(nèi)存中將變量b的值放入寄存器eax01d0add%edx,%eax將edx中的值加上eax中的值放入eax8945f4mov%eax,-0xc(%rbp)將eax中的值存入內(nèi)存(變量c)代碼在鯤鵬處理器中的處理過程代碼在x86處理器中的處理過程8.1.1 鯤鵬遷移概述檢查軟件棧兼容性檢索依賴庫編譯參數(shù)修改遷移匯編代碼遷移后性能調(diào)優(yōu)12345其主要問題是需要逐一查找編程相關(guān)資料確認(rèn)。其主要問題是反復(fù)進(jìn)行編譯才能檢測(cè)出所有依賴庫。其主要問題是部分錯(cuò)誤在運(yùn)行時(shí)才能發(fā)現(xiàn)。其主要問題是查找和修改需要替換的匯編代碼比較耗時(shí)。其主要問題是缺乏全量工具來分析性能瓶頸。傳統(tǒng)應(yīng)用遷移的流程8.1.1 鯤鵬遷移概述傳統(tǒng)應(yīng)用遷移流程的缺點(diǎn)在評(píng)估軟件遷移技術(shù)可行性時(shí),人工分析投入大、周期長,需要反復(fù)編譯、調(diào)試,準(zhǔn)確率低。在判定軟件功能是否可用時(shí),遷移專業(yè)技能不高的工程師需要反復(fù)定位、試錯(cuò),準(zhǔn)確率低。在性能調(diào)優(yōu)時(shí),依賴經(jīng)驗(yàn)進(jìn)行人工定位,調(diào)優(yōu)能力弱,優(yōu)化效果不佳。8.1.2 鯤鵬遷移工具鯤鵬開發(fā)套件的兩種模式Web瀏覽器模式該模式工具部署在服務(wù)器端,用戶可以通過Web瀏覽器訪問工具界面,以使操作更簡單、快捷。其主要工具有鯤鵬代碼遷移工具和鯤鵬性能分析工具。VisualStudioCode插件模式該模式沿襲開發(fā)者習(xí)慣,基于VisualStudioCode為開發(fā)者提供一站式開發(fā)套件(即IDE)入口,開發(fā)者無須在多個(gè)工具之間切換。其主要插件有鯤鵬代碼遷移插件、鯤鵬開發(fā)框架插件、鯤鵬編譯插件、鯤鵬性能分析插件。使用鯤鵬開發(fā)套件,鯤鵬遷移流程將會(huì)大大簡化,傳統(tǒng)流程中遇到的問題也將迎刃而解。首先,鯤鵬代碼遷移工具提供的自動(dòng)代碼遷移功能可以解決約90%的C/C++語言問題和約80%的依賴庫問題。其次,加速庫重編譯的編譯過程更智能,具備更優(yōu)的代碼運(yùn)行效率。最后,鯤鵬性能分析工具使性能數(shù)據(jù)可視化,可以進(jìn)行一鍵式優(yōu)化。8.1.2 鯤鵬遷移工具鯤鵬開發(fā)套件中的主要工具鯤鵬代碼遷移工具01OPTION可分析代碼可遷移性和遷移投入,也可以自動(dòng)分析需要修改的代碼內(nèi)容,并指導(dǎo)用戶如何修改。用戶軟件遷移到鯤鵬處理器上時(shí),可以先用該工具分析可遷移性和遷移投入。它既能解決用戶軟件遷移評(píng)估分析過程中人工分析投入大、準(zhǔn)確率低、整體效率低下的問題,又能解決用戶代碼兼容性人工排查困難、遷移經(jīng)驗(yàn)欠缺、反復(fù)依賴編譯調(diào)錯(cuò)定位等問題。8.1.2 鯤鵬遷移工具鯤鵬開發(fā)套件中的主要工具鯤鵬性能分析工具02OPTION調(diào)優(yōu)助手是針對(duì)基于鯤鵬處理器的調(diào)優(yōu)工具,能系統(tǒng)化地組織性能指標(biāo),引導(dǎo)用戶分析性能瓶頸,實(shí)現(xiàn)快速調(diào)優(yōu)。系統(tǒng)性能分析是針對(duì)基于鯤鵬處理器的性能分析工具,能收集處理器硬件、操作系統(tǒng)、進(jìn)程/線程、函數(shù)等各層次的性能數(shù)據(jù),分析系統(tǒng)性能指標(biāo),定位到系統(tǒng)瓶頸點(diǎn)及熱點(diǎn)函數(shù),并給出優(yōu)化建議。系統(tǒng)診斷是針對(duì)基于鯤鵬處理器的性能分析工具,提供內(nèi)存泄漏診斷(包括內(nèi)存未釋放和異常釋放)、內(nèi)存越界診斷、內(nèi)存消耗信息分析展示、網(wǎng)絡(luò)丟包分析展示等功能,幫助用戶識(shí)別出源碼中內(nèi)存使用的問題,提升程序可靠性。Java性能分析是針對(duì)基于鯤鵬處理器上運(yùn)行的Java程序的性能分析和優(yōu)化工具,可以圖形化顯示Java程序的堆、線程、鎖、垃圾回收等信息,收集熱點(diǎn)函數(shù),定位程序瓶頸點(diǎn),幫助用戶采取針對(duì)性優(yōu)化。8.1鯤鵬軟件遷移8.2鯤鵬軟件開發(fā)8.3鯤鵬軟件遷移實(shí)踐學(xué)習(xí)要點(diǎn)8.2.1 鯤鵬軟件開發(fā)模式鯤鵬原生開發(fā)01OPTION基于鯤鵬處理器進(jìn)行開發(fā),如TaiShan服務(wù)器,在對(duì)計(jì)算性能和資源要求較高時(shí)使用,如自建數(shù)據(jù)中心。這種開發(fā)和通用ARM服務(wù)器開發(fā)一樣,開發(fā)者要在物理機(jī)上安裝開發(fā)時(shí)需要的操作系統(tǒng)和開發(fā)工具?;邛H鵬處理器的云服務(wù)器進(jìn)行開發(fā),如ECS和BMS等。相對(duì)來說,云服務(wù)器開發(fā)更加靈活、簡單,選擇豐富,可彈性調(diào)整且按需計(jì)費(fèi)。鯤鵬處理器是基于ARMv8架構(gòu)開發(fā)的,所以當(dāng)使用ARMv8架構(gòu)的開發(fā)環(huán)境進(jìn)行軟件開發(fā)時(shí),稱為鯤鵬原生開發(fā)。物理服務(wù)器開發(fā)云服務(wù)器開發(fā)8.2.1 鯤鵬軟件開發(fā)模式鯤鵬交叉開發(fā)02OPTION除此以外,華為還為開發(fā)者提供云端開發(fā)環(huán)境CloudIDE。在云端開發(fā)環(huán)境中進(jìn)行的軟件開發(fā)稱為鯤鵬云端開發(fā)。鯤鵬交叉開發(fā)其實(shí)是開發(fā)環(huán)境和運(yùn)行環(huán)境不同時(shí)采用的開發(fā)模式。它的優(yōu)勢(shì)是可以在當(dāng)前的資源上搭建開發(fā)環(huán)境,不需要額外的開發(fā)成本。例如,如果現(xiàn)有x86架構(gòu)的服務(wù)器資源需要開發(fā)鯤鵬架構(gòu)服務(wù)器上運(yùn)行的軟件,那么只需要在x86服務(wù)器上搭建交叉編譯環(huán)境(主要是安裝交叉編譯器——Linaro)即可進(jìn)行編譯開發(fā)。對(duì)于基于容器的Web應(yīng)用開發(fā),可以使用鯤鵬云端開發(fā),它的好處是使用靈活、方便。CloudIDE是DevCloud的云端開發(fā)環(huán)境服務(wù),向開發(fā)者提供按需配置、快速獲取的工作空間(包含編輯器和運(yùn)行環(huán)境),支持完成環(huán)境配置、代碼閱讀、編寫代碼、構(gòu)建、運(yùn)行、調(diào)試、預(yù)覽等操作,并支持對(duì)接多種代碼倉庫。8.2.2 鯤鵬軟件開發(fā)實(shí)踐鯤鵬交叉開發(fā)01OPTION如果要在x86服務(wù)器上開發(fā)鯤鵬軟件,則可以搭建鯤鵬交叉開發(fā)環(huán)境,具體步驟如下(以CentOS為例)。(1)安裝標(biāo)準(zhǔn)的C開發(fā)環(huán)境。#yumgroupinstallDevelopmentTools(2)在/usr/local下建立名為ARM-toolchain的文件夾。#mkdir/usr/local/ARM-toolchain8.2.2 鯤鵬軟件開發(fā)實(shí)踐鯤鵬交叉開發(fā)01OPTION(3)使用wget命令下載gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu.tar.xz安裝包。#cd/usr/local/ARM-toolchain#wget/components/toolchain/binaries/latest-5/aarch64-linux-gnu/gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu.tar.xz使用wget命令下載軟件安裝包8.2.2 鯤鵬軟件開發(fā)實(shí)踐鯤鵬交叉開發(fā)01OPTION(4)解壓安裝包。#tar-xvfgcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu.tar.xz(5)配置環(huán)境變量。修改配置文件,在配置文件的最后一行加入路徑配置。#vim/etc/profileexportPATH=$PATH:/usr/local/ARM-toolchain/linaro/bin/(6)使環(huán)境變量生效。#source/etc/profile(7)安裝校驗(yàn)。#aarch64-linux-gnu-gcc-v8.2.2 鯤鵬軟件開發(fā)實(shí)踐鯤鵬交叉開發(fā)01OPTION若顯示下圖所示的信息,則表示配置正確。8.2.2 鯤鵬軟件開發(fā)實(shí)踐鯤鵬云端開發(fā)02OPTION(1)創(chuàng)建CloudIDE實(shí)例(2)啟動(dòng)CloudIDE實(shí)例(3)CloudIDE編碼(4)CloudIDE調(diào)試8.1鯤鵬軟件遷移8.2鯤鵬軟件開發(fā)8.3鯤鵬軟件遷移實(shí)踐學(xué)習(xí)要點(diǎn)8.3.1 鯤鵬軟件遷移流程對(duì)于鯤鵬軟件遷移的整個(gè)流程而言,華為提供端到端的服務(wù),具體如下。應(yīng)用遷移評(píng)估遷移方案設(shè)計(jì)應(yīng)用改造支持測(cè)試驗(yàn)證支持遷移實(shí)施保障鯤鵬軟件遷移流程8.3.1 鯤鵬軟件遷移流程應(yīng)用遷移評(píng)估流程首先分析源碼編程語言類型,如果是解釋型語言且不涉及編譯型類庫,則可直接使用源碼在鯤鵬環(huán)境中進(jìn)行安裝;如果涉及編譯型類庫,則需要遷移類庫重新打包安裝。如果源碼編程語言是編譯型語言且不是Linux軟件包,則無法進(jìn)行遷移。如果是Linux軟件包,但是包含x86匯編代碼,則需要將x86匯編代碼替換為ARM匯編代碼。如果不包含x86匯編代碼,但是包含圖形用戶界面(GraphicalUserInterface,GUI),則需要進(jìn)行具體分析。如果不包含x86匯編代碼且不包含GUI,則需要對(duì)char類型數(shù)據(jù)變量、浮點(diǎn)數(shù)精度以及是否包含多線程的情況進(jìn)行具體處理,并重新編譯遷移。8.3.2 編譯與遷移鯤鵬遷移流程軟件編譯的基礎(chǔ)知識(shí)Maven就是最主流的依賴管理開發(fā)工具之一。它是Apache下的一個(gè)純Java開發(fā)的開源項(xiàng)目,基于項(xiàng)目對(duì)象模型,可以對(duì)Java項(xiàng)目進(jìn)行構(gòu)建、依賴管理。在Java中,可以用groupId、artifactId、version組成的Coordination(坐標(biāo))唯一標(biāo)識(shí)一個(gè)依賴。pom.xml文件中一個(gè)典型的依賴引用如圖所示,Maven編譯時(shí)會(huì)自動(dòng)拼接路徑和文件名,以在本地倉庫或遠(yuǎn)程倉庫中進(jìn)行查找。8.3.2 編譯與遷移Maven倉庫遠(yuǎn)程倉庫一般使用國內(nèi)鏡像或者企業(yè)自己搭建私服,可以加快JAR包的下載速度。中央倉庫aven團(tuán)隊(duì)維護(hù)的JAR包倉庫。本地倉庫存儲(chǔ)在本地磁盤中,默認(rèn)在${user.home}/.m2下。010203Maven倉庫中部分JAR包依賴x86so庫文件,需要在華為鯤鵬上重新編譯,部分JAR包已編譯好放在華為鯤鵬Maven倉庫內(nèi),可以直接使用。8.3.2 編譯與遷移常見的Linux發(fā)行版在類RedHat系列中,軟件包的格式為rpm;在類Debian系列中,軟件包的格式為deb。在類RedHat系列中,軟件包的格式為rpm;在類Debian系列中,軟件包的格式為deb。類RedHat系列類Debian系列類RedHat系列提供RPM命令來安裝、卸載和升級(jí)RPM軟件包;類Debian系列提供dpkg命令來安裝、卸載、升級(jí)deb軟件包。8.3.2 編譯與遷移RPM軟件包文件組成RPM軟件包通常包含二進(jìn)制文件、so庫文件、JAR包、配置文件等。鯤鵬通用計(jì)算平臺(tái)RPM軟件包獲取渠道主要有5個(gè):操作系統(tǒng)本地源操作系統(tǒng)遠(yuǎn)端源華為云鯤鵬鏡像x86RPM重構(gòu)下載源碼編譯123458.3.2 編譯與遷移需要重構(gòu)的RPM軟件包可以使用鯤鵬開發(fā)套件來快速構(gòu)建,具體分為以下4步。(4)重新掃描,確認(rèn)是否還有x86依賴文件,并進(jìn)行安裝驗(yàn)證。(1)使用鯤鵬代碼遷移工具掃描x86RPM軟件包,識(shí)別x86依賴文件。(3)解壓x86RPM軟件包并將x86依賴文件替換成在鯤鵬Maven倉庫中查找到的文件或在鯤鵬上重新編譯的文件,重新打包。(2)如果是JAR依賴文件,則可在鯤鵬Maven倉庫中查找或者在鯤鵬上重新編譯。如果是so庫文件或其他二進(jìn)制依賴文件,則可在鯤鵬上重新編譯。#yuminstallrpmdevtools#rpmdev-setuptree8.3.3 典型遷移實(shí)踐準(zhǔn)備環(huán)境。具體環(huán)境要求如下(以華為云ECS為例)。01OPTION①CPU:鯤鵬920。②操作系統(tǒng):CentOS7.6。③遠(yuǎn)程SSH登錄工具已經(jīng)在本地安裝。④本地yum源已經(jīng)配置。⑤安裝rpmbuild。⑥安裝rpmrebuild。#mkdirrpmrebuild#cdrpmrebuild#wget/projects/rpmrebuild/files/rpmrebuild/2.14/rpmrebuild-2.14.tar.gz#tarxvfzrpmrebuild-2.14.tar.gz#make;makeinstall⑦安裝rpm2cpio。CentOS7.6自帶rpm2cpio,無須安裝。8.3.3 典型遷移實(shí)踐準(zhǔn)備環(huán)境。具體環(huán)境要求如下(以華為云ECS為例)。01OPTION⑧安裝鯤鵬代碼遷移工具。鯤鵬代碼遷移工具可以在“鯤鵬社區(qū)>開發(fā)者>鯤鵬開發(fā)套件>
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 車險(xiǎn)查勘員工作總結(jié)
- 除數(shù)是兩位數(shù)的除法單元測(cè)試?yán)}大全附答案
- 運(yùn)動(dòng)會(huì)表彰發(fā)言稿
- 小學(xué)三年級(jí)數(shù)學(xué)三位數(shù)乘以一位數(shù)綜合考核練習(xí)題大全附答案
- 醫(yī)院感染防控知識(shí)
- 2025三月企業(yè)團(tuán)建踏青月度暖場(chǎng)(美好鷺湖 元?dú)獯阂馓ご涸轮黝})活動(dòng)策劃方案
- 鐵路信號(hào)基礎(chǔ)知識(shí)
- 中華茶文化知到課后答案智慧樹章節(jié)測(cè)試答案2025年春浙江農(nóng)業(yè)商貿(mào)職業(yè)學(xué)院
- 人教河南 九年級(jí) 下冊(cè) 語文 期末專題訓(xùn)練《 專題四 語段綜合(含病句、補(bǔ)寫)》習(xí)題課 課件
- 人教遼寧 九年級(jí) 下冊(cè) 語文 第三單元《 唐雎不辱使命》習(xí)題課 課件
- 教師招聘新課程小學(xué)語文教材教法考試題2
- 浙江省2018版計(jì)價(jià)依據(jù)建筑面積計(jì)算規(guī)則解讀變化
- 頸椎骨折伴脊髓損傷護(hù)理查房
- 廣州國際創(chuàng)新城南岸起步區(qū)控制性詳細(xì)規(guī)劃
- 氣胸醫(yī)學(xué)課件
- 新BOOK3-Unit-4-Imagination-and-Creativity想象力和創(chuàng)造力
- YY/T 0285.5-2018血管內(nèi)導(dǎo)管一次性使用無菌導(dǎo)管第5部分:套針外周導(dǎo)管
- GB/T 28799.2-2020冷熱水用耐熱聚乙烯(PE-RT)管道系統(tǒng)第2部分:管材
- 新教科版五下科學(xué)2-2《用浮的材料造船》課件
- 《電子商務(wù)》教學(xué)課件-第二章-EC框架體系
- 考研數(shù)學(xué)歷年真題(1987-2004)年數(shù)學(xué)一-可直接打印(純?cè)囶})
評(píng)論
0/150
提交評(píng)論