精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

為什么越來越多企業(yè)正在往ARM平臺遷移?

科訊視點 ? 2020-04-22 14:12 ? 次閱讀

作者簡介:知乎大V OwlLite,中科院自動化所 模式識別與智能系統(tǒng)學博士,現(xiàn)任圖像算法工程師

1.架構變遷

說到CPU架構,我們可能必然會提到CISC(復雜指令集,比如桌面端采用的X86系列)和RISC(精簡指令集,比如移動端廣泛采用的ARM系列)。理論上,RISC 相比于 CISC(IntelAMD) 處理器,指令譯碼和流水線的實現(xiàn)精簡化,可以在芯片上使用更少的三極管,換取更多的寄存器和流水線性能 ( 多線程 / 并發(fā)能力,高吞吐 ) 。過去,由于應用主要是跑在對功耗不敏感的X86架構CPU上,人們對該架構下的應用進行了大量的優(yōu)化,ARM平臺的性能優(yōu)勢并沒有充分的發(fā)揮出來。最近數年,轉機出現(xiàn)了,ARM平臺在移動端(比如手機)和物聯(lián)網終端(比如家用智能設備)的大規(guī)模使用,使得對該平臺算法和軟件的性能優(yōu)化變得越來越充分(近年來,開源社區(qū)對ARM平臺的支持已經足夠用戶將X86應用在合理的投入下遷移到ARM平臺,LLVM等基礎工具大部分可以找到支持ARM平臺的版本)。結合既有的并發(fā)能力優(yōu)勢,使得ARM 平臺的服務器在一些應用場景下顯得頗有吸引力。另外,對于移動應用,在云端采用ARM平臺服務器,還可以做到端云同構,節(jié)省開發(fā)調試成本。

在這樣的背景下,業(yè)界大廠紛紛推出ARM平臺服務器CPU. ARM平臺服務器CPU在云端服務器啃下一塊市場也是必然。2019年,華為推出了第二代ARM平臺數據中心處理器鯤鵬920芯片(預期今年推出其升級版鯤鵬930),采用7nm制程,最高支持64個內核,工作頻率高達2.6 GHz,支持8通道DDR4,以及一對100G RoCE端口。并且推出就自產自銷上華為云。從配置來看,其設計特別強調高吞吐能力,目前性能仍處于ARM平臺服務器CPU的第一梯隊。

2.為什么需要做服務遷移

越來越多的服務轉向ARM云平臺是一個趨勢。ARM架構芯片核的面積僅為X86核的1/7,這也意味著在單位面積下,ARM可以集成更多的核心——實際數據是四倍以上。這意味著ARM架構CPU 的眾核架構橫向擴展的方式會更符合分布式業(yè)務的需求。如果是新的應用,可以直接選擇鯤鵬云平臺進行開發(fā),充分利益ARM云平臺的優(yōu)勢。但是當前,絕大部分云平臺應用都跑在于X86架構CPU上,需要將服務進行某種形式的“重構”才能運行在ARM云平臺上。其主要原因在于,用戶在往ARM平臺遷移時需要處理指令集上的差異,才能使得原來運行在x86架構下的程序能夠平穩(wěn)運行于ARM平臺,完成遷移。

<指令集差異>

這些指令集的差異,使得像C/C++, Go 等編譯型語言寫的應用程序,需要采用ARM64(aarch64)編譯器重新編譯后才能運行。這是因為編譯型語言先要被“翻譯”成匯編,然后轉換成二進制指令。而ARM平臺的鯤鵬處理器和X86架構的處理器,其匯編和二進制指令不一樣,導致一方的可執(zhí)行程序不能直接移植到另一個平臺運行。像Java, Python 等本身支持跨平臺的解釋型語言,如果原應用不依賴C/C++語言編譯的公共組件(大部分情況下),則可以直接運行在ARM平臺上。對于剩下的極少部分的匯編語言,則需使用ARM指令集改寫一遍。比如在X86架構下,128位按位做and運算:

PAND xmm1 , xmm2/m128

對于ARM架構處理器,可以替換為NEON指令:

AND Vd., Vn., Vm.

<三類語言的服務遷移路徑>

以上這些遷移路徑說明,傳統(tǒng)X86架構服務的遷移雖然會帶來潛在的優(yōu)勢,但遷移也是有成本的,需要投入時間對軟件/服務進行對應的更改和測試。

3.鯤鵬社區(qū)助力服務遷移

ARM平臺的性能優(yōu)勢和特點是幫助其從巨大的云計算市場中吃下一塊的基礎。至于能以多快的速度吃下多大的市場,其決定性因素的可能并不是這些架構和制程決定技術優(yōu)勢,而是用戶的選擇,具體地,也就是用戶的遷移成本相對于可能帶來的優(yōu)勢的比較——如果只需要修改少量的代碼就可以將服務轉換到支持更高并發(fā)的ARM云平臺上,這對于那些對吞吐量尤其敏感的后端服務來說,何樂而不為呢。

為了降低用戶的遷移成本,華為花費了相當的力量建設了華為云學院和鯤鵬社區(qū),指導和幫助用戶進行應用遷移方面的工作。并且推出了鯤鵬開發(fā)套件(包括掃描評估工具Dependency Advisor, 遷移工具Porting Advisor, 和性能優(yōu)化工具Tuning Kit https://support.huaweicloud.com/ug-pa-kunpengdevps/kunpengpt_06_0004.html)幫助用戶評估工程的可移植性,檢查用戶軟件 C/C++ 源碼,識別需要修改的部分并提供修改建議和性能調優(yōu)。而且這些內容中的絕大部分對用戶來說是免費獲取的。在注冊華為云之后,用戶可以在華為云端實驗室(https://lab.huaweicloud.com/)免費使用華為云資源(ECS等)進行應用往ARM云平臺遷移的實驗。

以相對更耗時更復雜的C/C++應用遷移為例,可選擇云端實驗室中的“通過鯤鵬工具鏈將X86 C/C++代碼遷移到鯤鵬平臺”實驗進行體驗。用戶在該實驗中首先預置實驗環(huán)境,免費獲取實驗所需的鯤鵬ECS、EIP, VPC, 安全組等資源(可以通過開發(fā)者免費試用區(qū)https://activity.huaweicloud.com/free_test/index.html?#individual 獲取更多更長時間的資源試用)。

然后可以依照提示,在網頁端中通過公網EIP登錄分配的ECS之后,修改教程中提供的C/C++應用包的編譯腳本和相關代碼段,重新編譯即可完成安裝、驗證和測試。

<實驗體驗環(huán)境>

4.服務遷移實戰(zhàn)

在上文的體驗例子中,可以完整的經歷如下典型的C/C++工程遷移過程的關鍵部分:

包括修改編譯腳本;修改宏定義,增加aarch64 架構的宏定義;修改編譯宏分支,確保 aarch64 架構下使能 SIMD 的 NEON 特性;修改aarch64 架構下的內聯(lián)匯編指令;重新編譯源碼并安裝測試。

對于C/C++工程遷移的鯤鵬ARM平臺移植,可能會碰到如下的典型問題:

1.編譯時gcc參數設置需要調整,這方面的問題可以參考gcc官方文檔(https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html)

2.編譯時找不到函數、缺少庫文件等。可以通過安裝鯤鵬ARM平臺兼容的依賴庫來解決。目前來看,隨著ARM平臺的發(fā)展,這種情況下的問題解決不了的可能性越來越小。如果你的C/C++工程本身是在Linux平臺編寫/編譯的,那這種情況還會相比于從windows平臺遷移少很多

3.開源項目庫不支持 ARM 架構,這種情況較就更少了,一般發(fā)生在較舊的項目代碼。面對這種情況可能不得不尋找替代組建或者修改自己的代碼以消除依賴。

4. 編譯時提示代碼錯誤,比如在上面的體驗例子中如果不修改相關類型的宏定義就會出現(xiàn),解決方法于上面體驗例子中類似。

5. 需要重寫內聯(lián)匯編語句,如上文所述,這是由于ARM與X86架構指令集不同導致的。可能需要使用ARM指令修改每一條相關代碼才能解決。

至于云端常見但由于Java的跨平臺性,遷移更為容易的Java Web應用,可以通過云學院提供的“基于華為云鯤鵬彈性云服務器部署Web應用”教程體驗,其過程中不涉及對代碼的修改,這類應用的遷移相比于C/C++類應用要容易得多。

對于將軟件遷移到ARM平臺來說,大部分情況下只要建立軟件開發(fā)編譯環(huán)境-編譯軟件-出現(xiàn)錯誤-修復bug的流程就可以解決問題,這跟很多人碰到過的將Windows平臺軟件遷移到Linux平臺運行差不多。對于更復雜的應用軟件,比如數據庫、翻譯程序,可能需要修改匯編語言。當然現(xiàn)在很多數據庫采用的是開源軟件的或者本身支持多平臺的軟件,這類問題也變得越來越容易解決。

當然,實際的業(yè)務遷移到鯤鵬ARM云平臺,涉及的程序語言和軟件依賴會相當復雜。比如某大叔據搜索系統(tǒng)的業(yè)務軟件棧:

這里的mysql, redis, Apache和Hadoop都可以通過鯤鵬代碼遷移工具找到鯤鵬ARM平臺兼容的版本,其遷移自然不是問題。對于其他暫不兼容的,比如kudu, Impala和Ceph,其官方發(fā)布已經提供了完整的或者大部分功能的aarch64平臺支持(https://issues.apache.org/jira/browse/KUDU-3007, https://issues.apache.org/jira/browse/IMPALA-9376), 如果升級到支持aarch64的新版后調試通過,那移植到aarch64平臺也不會有問題。對于剩下的不兼容的,則需要找替代或者修改代碼了。

從上面的實例可以看出,如果你的業(yè)務軟件棧大量采用開源軟件并且保持了版本的更新(大家都意識到aarch64平臺變得越來越流行,需求越來越多,順勢推出了該平臺的版本),那么遷移的成本就會比較低。相反,如果采用了較老的軟件或者不支持aarch64的商業(yè)軟件,那就需要花費比較多的精力,甚至不得不采取繞過依賴的方案。這也就意味著,僅從實際業(yè)務軟件棧的情況來看,就有部分業(yè)務并不適合遷移,企業(yè)需要根據自己的實際情況量力而行。因此,企業(yè)業(yè)務遷往ARM云平臺雖然是一個趨勢,但X86云平臺在未來相當長一段時間并不會消失,而是會繼續(xù)占有相當的市場,與ARM云平臺并駕齊驅。

鯤鵬開發(fā)者系列課程傳送門在此,良心知識不付費,參與回帖互動還有獎品拿,吐槽建議都闊以:http://suo.im/5X8M85

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
收藏 人收藏

    評論

    相關推薦

    為什么越來越多的視頻監(jiān)控AI分析做到了攝像頭上?

    ,人們越來越希望利用AI計算機的運算能力和算法對視頻監(jiān)控畫面進行分析,然后分析拍攝結果并自主反饋,以提高視頻監(jiān)控的功能和利用效率。比如我們目前可以使用AI的技術進行人臉識別、物體識別、火焰識別,安全帽識別,高空拋物識別,工服識別,離港識別等等,可以實現(xiàn)的識別算法非常豐富。
    的頭像 發(fā)表于 10-10 16:12 ?253次閱讀
    為什么<b class='flag-5'>越來越多</b>的視頻監(jiān)控AI分析做到了攝像頭上?

    IT資源遷移到云服務器的關鍵因素

    隨著云計算技術的不斷成熟和普及,越來越多企業(yè)選擇將他們的IT資源遷移到云服務器上。這種轉變不僅可以降低成本、提高靈活性,還可以提升安全性和效率。本文將深入探討將IT資源遷移到云服務器
    的頭像 發(fā)表于 09-18 11:21 ?290次閱讀

    從STM32到基于Arm的MSPM0的遷移指南

    電子發(fā)燒友網站提供《從STM32到基于Arm的MSPM0的遷移指南.pdf》資料免費下載
    發(fā)表于 09-07 11:31 ?0次下載
    從STM32到基于<b class='flag-5'>Arm</b>的MSPM0的<b class='flag-5'>遷移</b>指南

    遷移到基于Arm STM32的MSPMO指南

    電子發(fā)燒友網站提供《從遷移到基于Arm STM32的MSPMO指南.pdf》資料免費下載
    發(fā)表于 09-07 11:17 ?0次下載
    從<b class='flag-5'>遷移</b>到基于<b class='flag-5'>Arm</b> STM32的MSPMO指南

    越來越多的領域都用到了USB頻譜儀

    科技是不斷進步的,越來越多的領域都用到了USB頻譜儀。一款值得信賴的產品。
    的頭像 發(fā)表于 05-07 15:28 ?514次閱讀
    <b class='flag-5'>越來越多</b>的領域都用到了USB頻譜儀

    越來越多的領域都用到了USB頻譜儀

    usb頻譜儀
    puxincy
    發(fā)布于 :2024年05月06日 10:07:54

    隨著非車規(guī)器件在汽車上泛濫FPGA會不會越來越多的出現(xiàn)在汽車上?

    隨著非車規(guī)器件在汽車上泛濫FPGA會不會越來越多的出現(xiàn)在汽車上?
    發(fā)表于 04-23 14:50

    分布式運維管理平臺在云計算環(huán)境中的實施案例分析

    一、案例背景 隨著云計算技術的快速發(fā)展,越來越多企業(yè)開始將業(yè)務遷移到云上,以實現(xiàn)資源的靈活調配和成本的降低。然而,云計算環(huán)境的復雜性和動態(tài)性給運維管理帶來了巨大的挑戰(zhàn)。為了應對這些挑戰(zhàn),某
    的頭像 發(fā)表于 03-26 16:16 ?519次閱讀

    分布式運維管理平臺在跨地域企業(yè)中的部署與運維案例

    一、案例背景 隨著全球化進程的加速和市場競爭的加劇,越來越多企業(yè)開始拓展跨地域業(yè)務,形成多分支機構、多數據中心的運營模式。然而,這種跨地域運營模式也給企業(yè)的運維管理帶來了極大的挑戰(zhàn)。為了解決這些
    的頭像 發(fā)表于 03-26 16:11 ?428次閱讀

    嵌入式會越來越卷嗎?

    ,嵌入式系統(tǒng)能夠實現(xiàn)更快速、更穩(wěn)定的通信。 這使得嵌入式系統(tǒng)能夠更好地與其他設備或系統(tǒng)進行交互和協(xié)作。 安全性增強:隨著網絡安全問題的日益嚴重,嵌入式系統(tǒng)的安全性也受到了越來越多的關注。 通過采用各種安全
    發(fā)表于 03-18 16:41

    IC datasheet為什么越來越薄了?

    剛畢業(yè)的時候IC spec動則三四百頁甚至一千頁,這種設置和使用方法很詳盡,但是這幾年IC datasheet為什么越來越薄了,還分成了IC功能介紹、code設置、工廠量產等等規(guī)格書,很多東西都藏著掖著,想了解個IC什么東西都要發(fā)郵件給供應商,大家有知道這事為什么的嗎?
    發(fā)表于 03-06 13:55

    為什么越來越多企業(yè)會用到 NTP網絡時間服務器

    ? ? ? 越來越多企業(yè)使用 NTP網絡時間服務器 是為了確保其計算機網絡中的所有設備都具有精確的時間。網絡 時間服務器 是一種網絡設備,它通過從原子鐘等準確時間源獲取時間信號并向網絡中的設備廣播
    的頭像 發(fā)表于 01-23 14:17 ?339次閱讀
    為什么<b class='flag-5'>越來越多</b>的<b class='flag-5'>企業(yè)</b>會用到 NTP網絡時間服務器

    國產網卡為什么受到越來越多企業(yè)青睞了?

    國產網卡同樣取得了優(yōu)異成績,并已成為眾多企業(yè)的重要選擇。相比于使用進口芯片開發(fā)的網卡,國產網卡對本土企業(yè)來說可謂獨具優(yōu)勢
    的頭像 發(fā)表于 01-07 10:27 ?412次閱讀

    如何用萬界星空科技低代碼平臺快速開發(fā)一個MES系統(tǒng)?

    如今,越來越多企業(yè)選擇低代碼開發(fā)平臺,讓企業(yè)實現(xiàn)數字化轉型。但是你好奇“低代碼開發(fā)平臺”能做什么嗎?“低代碼開發(fā)
    的頭像 發(fā)表于 12-08 11:39 ?550次閱讀
    如何用萬界星空科技低代碼<b class='flag-5'>平臺</b>快速開發(fā)一個MES系統(tǒng)?

    EPO企業(yè)生產運營平臺:智能制造的得力助手

    隨著中國工業(yè)4.0的和智能制造逐步推進,越來越多的制造企業(yè)開始準備邁入智能制造、智慧制造的領域。為了提升企業(yè)的生產效率,智能制造生產管理系統(tǒng)已經成為了不可或缺的解決方案。那么,不妨來了解一下EPO
    的頭像 發(fā)表于 12-04 15:18 ?864次閱讀
    EPO<b class='flag-5'>企業(yè)</b>生產運營<b class='flag-5'>平臺</b>:智能制造的得力助手