伙伴分享|如何快速開發(fā)一個(gè)AppCube標(biāo)準(zhǔn)頁面
1039
2022-05-29
一、計(jì)算領(lǐng)域的趨勢(shì)與挑戰(zhàn)
1.計(jì)算領(lǐng)域的趨勢(shì)
根據(jù)最新的發(fā)展趨勢(shì)統(tǒng)計(jì),ARM架構(gòu)在端側(cè)已經(jīng)占據(jù)了絕對(duì)統(tǒng)治的地位,達(dá)到了90%以上,其中,智能手機(jī)占比超過95%,平臺(tái)超過98%,其他如智能TV、智能手表、手環(huán)等智能設(shè)備占比要超過了70%。
不但如此,ARM在PC測也獲得了較大的發(fā)展,典型的如蘋果基于ARM架構(gòu)的M1芯片,已經(jīng)應(yīng)用與MacBook Air、MacBook Pro、Mac mini等多個(gè)系列的產(chǎn)品;微軟也不甘示弱,發(fā)布了搭載Microsoft SQ1處理器的Surface Pro X,這個(gè)處理器是微軟從高通定制的,也是基于ARM架構(gòu),總的來說,ARM已經(jīng)從智能終端延伸到了PC市場。
比PC市場更火熱的是服務(wù)器市場,基于ARM架構(gòu)的處理器這些年來絡(luò)繹不絕,甚至連超級(jí)計(jì)算機(jī)TOP500排名第一的服務(wù)器也是使用的ARM架構(gòu)處理器。這里簡單盤點(diǎn)一下ARM架構(gòu)服務(wù)器芯片的編年史,除了國內(nèi)知名的華為鯤鵬系列外,國外這些年也推出了不少典型的ARM架構(gòu)服務(wù)器處理器。
ARMADA XP
Marvell 公司于2010年發(fā)布,是業(yè)界第一顆4核心ARM處理器芯片,主頻1.6GHz,兼容ARM V7。
EnergyCore ECX-1000
Calxeda公司于2011年發(fā)布,采用4核的ARM Cortex A9架構(gòu),每個(gè)核心有32KB的一級(jí)緩存,共享4MB的二級(jí)緩存,主頻為1.1GHz至1.4GHz。
ThunderX
Cavium公司于2014年發(fā)布,采用28納米工藝,基于ARMV8架構(gòu),支持最多48個(gè)核心,最高2.5GHz主頻,具備78KB指令緩存和32KB數(shù)據(jù)緩存,共享的二級(jí)緩存容量為16MB。
Centriq 2400
高通(Qualcomm)公司于2017年發(fā)布,采用三星10納米工藝,支持最多48顆高性能64位單線程Falkor自研內(nèi)核(基于ARMV8),常規(guī)頻率2.2GHz,加速模式最高達(dá)2.6GHz。
A64FX
富士通公司于2018年發(fā)布,采用7納米工藝,基于ARMv8.2A架構(gòu),支持最多48+4顆核心,主要用在超級(jí)計(jì)算機(jī)領(lǐng)域。
ThunderX2
2017年Marvell 收購了Cavium,于2019年發(fā)布了ThunderX2,采用16納米工藝,基于ARMV8.1架構(gòu),支持最多32個(gè)物理核心,每個(gè)物理核心4線程,最多128個(gè)邏輯核心;常規(guī)頻率2.5GHz,加速模式最高達(dá)3.0GHz,每核心32KB數(shù)據(jù)和指令緩存、256KB二級(jí)緩存,共享32MB三級(jí)緩存。
在云計(jì)算時(shí)代,基于ARM架構(gòu)的處理器具有更好的適應(yīng)性,因?yàn)锳RM架構(gòu)處理器具有多核心的優(yōu)勢(shì),并且端側(cè)也是ARM架構(gòu)為主,這樣端云協(xié)同更容易,所以,云計(jì)算給ARM架構(gòu)插上了一個(gè)快速騰飛的翅膀。
2.計(jì)算領(lǐng)域的挑戰(zhàn)
雖然計(jì)算領(lǐng)域的大趨勢(shì)對(duì)ARM架構(gòu)的發(fā)展來說是一個(gè)很好的契機(jī),但是,這也帶來了嚴(yán)峻的挑戰(zhàn)。因?yàn)閄86作為事實(shí)上統(tǒng)治了PC和服務(wù)器領(lǐng)域幾十年的霸主,各種軟件也基本都是為適應(yīng)X86平臺(tái)而設(shè)計(jì)的,現(xiàn)在要把這些軟件運(yùn)行在ARM架構(gòu)平臺(tái)上,就需要解決指令差異的問題,如下圖所示,即使一個(gè)簡單的加法程序,在平臺(tái)架構(gòu)層次上,差別也是非常大的。
因?yàn)檫@些差異的存在,從X86架構(gòu)到ARM架構(gòu)的軟件遷移,就要解決一系列的困難,回答從可行性到性能調(diào)優(yōu)的多個(gè)問題:
這些都是實(shí)際遷移中會(huì)遇到的,也是一定要解決的問題,如果人工去處理的話,確實(shí)存在周期長、投入大、準(zhǔn)確率低、效果差等情況,如果不能很好的解決,恐怕遷移過程也就成了勸退過程。
二、鯤鵬開發(fā)套件DevKit
難道就沒有辦法簡化遷移過程,減小遷移難度嗎?當(dāng)然是有的,華為推出了鯤鵬開發(fā)套件DevKit,這是幫助開發(fā)者把應(yīng)用從X86架構(gòu)遷移到鯤鵬架構(gòu)的工具集,可以解決上面提到的一系列問題,就像武者手中的雙截棍,柔中帶剛,既可以遷移,又可以調(diào)優(yōu),甚至可以診斷調(diào)試,堪稱開發(fā)者手中的大殺器。
鯤鵬開發(fā)套件作為工具集,包含了多個(gè)子工具,下面我們來逐個(gè)介紹一下。
1.遷移工具
遷移工具具有掃描快、檢出全、指導(dǎo)精、構(gòu)建易的特點(diǎn),主要包括分析掃描、源代碼遷移、軟件包重構(gòu)、專項(xiàng)軟件遷移等功能。
2.加速庫
要提高在鯤鵬架構(gòu)下的應(yīng)用性能,有時(shí)候幾乎不用修改代碼,直接替換鯤鵬加速庫就可以了。鯤鵬開發(fā)套件提供了多種加速庫,可以充分利用鯤鵬架構(gòu)優(yōu)良的設(shè)計(jì)性能,實(shí)現(xiàn)鯤鵬架構(gòu)下的軟加速和硬加速,在特定領(lǐng)域性能可以平均提高10%,要知道這可是基本“零代碼”修改下達(dá)到的效果呀。
3.編譯器
隨著軟硬件越來越復(fù)雜,應(yīng)用程序執(zhí)行性能的影響因素也越來越多,而編譯器在其中扮演著一個(gè)比較關(guān)鍵的角色。因?yàn)闅v史的原因,大部分編譯器是在X86架構(gòu)居于統(tǒng)治地位的情況下產(chǎn)生并發(fā)展起來的,或多或少受X86架構(gòu)的影響,所以,默認(rèn)情況下,通過傳統(tǒng)編譯器編譯的應(yīng)用,在鯤鵬架構(gòu)的系統(tǒng)中,并不能發(fā)揮出最高效的性能。為了解決這個(gè)問題,華為推出了多個(gè)針對(duì)鯤鵬微架構(gòu)和指令進(jìn)行了優(yōu)化的高性能編譯器,包括畢昇編譯器、畢昇JDK、鯤鵬GCC。
這三種編譯器有各自適用的領(lǐng)域,是鯤鵬平臺(tái)下應(yīng)用程序高效運(yùn)行、發(fā)揮鯤鵬指令集和架構(gòu)優(yōu)勢(shì)的有效保證。
4.性能分析工具
在軟件運(yùn)行過程中遇到的性能瓶頸,如果通過傳統(tǒng)的手動(dòng)方式來分析和調(diào)優(yōu),存在定位困難、手段單一、對(duì)人員技能要求高、效率和準(zhǔn)確率低下的情況;為了便于鯤鵬開發(fā)人員解決這些問題,華為推出了鯤鵬性能分析工具,能夠在軟件運(yùn)行狀態(tài)下,自動(dòng)采集系統(tǒng)數(shù)據(jù),分析出系統(tǒng)性能指標(biāo),定位到瓶頸點(diǎn)及熱點(diǎn)函數(shù),給出調(diào)優(yōu)建議,從而達(dá)到軟件和鯤鵬平臺(tái)融合的最佳性能。
性能分析工具按照對(duì)象分為系統(tǒng)性能優(yōu)化和JAVA性能優(yōu)化,如下圖所示:
性能分析工具內(nèi)置了多種常用分析工具的支持,可以一站式在多個(gè)維度對(duì)系統(tǒng)軟硬件性能進(jìn)行分析,并且可以提供圖形化的友好界面,的確稱得上秀外慧中,內(nèi)外兼修,是一款不可多得的生產(chǎn)力倍增器。
5.ExaGear
先看一個(gè)小場景。
甲方:我們?cè)赬86平臺(tái)下有個(gè)應(yīng)用要在鯤鵬平臺(tái)上運(yùn)行;
程序員:沒問題,你把源碼給我,我們按照鯤鵬架構(gòu)特點(diǎn)遷移一下就可以了;
甲方:沒有源碼
程序員:鯤鵬架構(gòu)和X86架構(gòu)還是有不少區(qū)別的...(此處省略4096個(gè)字),所以,我們需要源碼;
甲方:道理我都懂,就是沒源碼;
程序員:#$%^&@$%
要是以前,就我這個(gè)暴脾氣,當(dāng)時(shí)就和甲方扛起來了,大不了提桶跑路!
現(xiàn)在,我只是微微一笑:“甲方爸爸,這些都是小事,沒源碼就沒源碼,我們公司技術(shù)實(shí)力你還不了解,沒源碼照樣給您在鯤鵬平臺(tái)上跑起來!”
說完,默默祭起我的法寶,就是ExGear,在鯤鵬平臺(tái)上運(yùn)行起來,相當(dāng)于搭建了一個(gè)X86的環(huán)境,然后把原封不動(dòng)的X86應(yīng)用啟動(dòng),就可以正常運(yùn)行了,分分鐘完成了無源碼的快速應(yīng)用遷移!
ExGear是華為自研的二進(jìn)制動(dòng)態(tài)指令翻譯軟件,能夠在運(yùn)行時(shí)將x86應(yīng)用的指令翻譯成ARM指令,使得大部分Linux x86-64應(yīng)用無需重新編譯即可運(yùn)行在ARM64服務(wù)器上,從而屏蔽底層平臺(tái)差異,低成本解決應(yīng)用的平滑遷移,釋放鯤鵬平臺(tái)澎湃算力。
三、亮點(diǎn)優(yōu)勢(shì)
作為助力開發(fā)者高效完成應(yīng)用遷移與調(diào)優(yōu)的工具,鯤鵬開發(fā)套件具有無以比擬的亮點(diǎn)和優(yōu)勢(shì)。
1.入門簡單:不改變開發(fā)者開發(fā)習(xí)慣,快速上手
鯤鵬開發(fā)套件同時(shí)支持IDE插件模式和Web瀏覽器模式,適用多種應(yīng)用場景。
特別是IDE插件模式,基于VS Code/Intellij/MindStudio插件形式,提供一站式開發(fā)套件,是重度開發(fā)者的首選。
2.自動(dòng)化:遷移內(nèi)容自動(dòng)識(shí)別,匯編代碼自動(dòng)翻譯
自動(dòng)化是鯤鵬開發(fā)套件生產(chǎn)力提高的關(guān)鍵所在,原先需要幾個(gè)月才能干完的工作,現(xiàn)在只需要幾天就能完成,這里面的秘密就是遷移內(nèi)容自動(dòng)識(shí)別以及匯編代碼自動(dòng)翻譯。
通過這些自動(dòng)化功能,把最繁瑣的任務(wù)交給工具來完成,節(jié)省了大量的時(shí)間,而且準(zhǔn)確性、有效性更是得到了一個(gè)飛躍,妥妥的外星黑科技。
3.高效:代碼修改建議自動(dòng)生成,開發(fā)效率倍增
鯤鵬開發(fā)套件高效還體現(xiàn)在如下方面:
可以識(shí)別C/C++/Fortran/匯編源代碼,提供修改建議;Make、CMake、Automake編譯選項(xiàng)、編譯宏的解析及遷移建議;
支持100%Intrinsic函數(shù)轉(zhuǎn)換(6000+個(gè)),包括MMX 、SSE及AVX Intrinsic 等;
快速64位檢查與結(jié)構(gòu)體字節(jié)對(duì)齊修改建議;
套件特有的一鍵替換功能,可以快速、準(zhǔn)確、高效的自動(dòng)完成代碼的遷移。
4.便捷:遠(yuǎn)程調(diào)測,提供更便捷的調(diào)測能力
傳統(tǒng)ARM應(yīng)用開發(fā)過程中,開發(fā)者需要在開發(fā)工具、調(diào)測工具不同的工具中來回切換,操作復(fù)雜,效率低;鯤鵬DevKit提供遠(yuǎn)程調(diào)測能力,基于遠(yuǎn)程調(diào)測插件,在IDE中一站式完成應(yīng)用的開發(fā)與調(diào)試。
5.全場景性能分析可視,性能瓶頸一目了然、調(diào)優(yōu)盡在掌握
正如前文介紹,性能分析不但可以采集各種性能參數(shù),更方便的是以圖形形式展示,并給出優(yōu)化建議,讓問題一目了然,調(diào)優(yōu)盡在掌握!
四、成功案例
鯤鵬開發(fā)套件在實(shí)際的鯤鵬平臺(tái)開發(fā)中得到了大量的應(yīng)用,這里有兩個(gè)典型的成功案例。
1.MSP視頻整體解決方案
該案例是關(guān)于視頻整體解決方案的,原先的設(shè)計(jì)中網(wǎng)絡(luò)性能成為了比較大的瓶頸,在使用鯤鵬開發(fā)套件進(jìn)行方案的遷移與調(diào)優(yōu)后,通過修改內(nèi)核代碼、升級(jí)網(wǎng)卡驅(qū)動(dòng),Bond模式一系列的提優(yōu)手段,達(dá)到了網(wǎng)絡(luò)性能提升10倍,最終網(wǎng)絡(luò)性能逼近理論最大值流量,且性能指標(biāo)穩(wěn)定的效果。
2.某省氣象局的氣象預(yù)測方案
客戶需求:
業(yè)務(wù)范圍包括省天氣預(yù)報(bào)、氣候預(yù)測、災(zāi)害天氣預(yù)警、旅游天氣,環(huán)境氣象等。在實(shí)際工作中氣象預(yù)測的精度與性能意義十分重大,10分鐘的提前預(yù)報(bào)就可極大降低人民群眾的財(cái)產(chǎn)和生命損失。省局氣象預(yù)測由IBM小型機(jī)承載主要計(jì)算,準(zhǔn)備進(jìn)行國產(chǎn)化替代。
解決方案:
采用基于鯤鵬的全國產(chǎn)化方案,硬件采用基于鯤鵬920處理器的TaiShan 200 2480四路高性能服務(wù)器;基于鯤鵬DevKit開發(fā)套件通過編譯器參數(shù)優(yōu)化、數(shù)學(xué)庫優(yōu)化、WRF配置優(yōu)化等方式,優(yōu)化WRF場景性能。
客戶收益:
氣象預(yù)測性能提升150%!
這么優(yōu)秀的鯤鵬開發(fā)套件如何獲取呢?需要多少費(fèi)用?
聽好了啊,不要998,不要98,一分錢不要,在這里就可以免費(fèi)獲取!
二維碼:
鯤鵬開發(fā)套件官網(wǎng):
https://www.hikunpeng.com/zh/developer/devkit
鯤鵬論壇:
https://bbs.huaweicloud.com/forum/forum-923-1.html
甚至,華為還提供了預(yù)裝鯤鵬開發(fā)套件的專屬遠(yuǎn)程云環(huán)境,也可以免費(fèi)申請(qǐng):
https://ic-openlabs.huawei.com/devkit-env/#/home?lang=zh-cn
不要猶豫,不要等待,快使用鯤鵬開發(fā)套件,哼哼哈嘿,開發(fā)之人切記,DevKit開發(fā)無敵!
鯤鵬
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。