鯤鵬應(yīng)用開發(fā)——代碼歸一

      網(wǎng)友投稿 906 2025-03-31

      鯤鵬920系列芯片概覽

      鯤鵬920提供強(qiáng)大的計算能力,基于華為自研的具有完全知識產(chǎn)權(quán)的ARMv8架構(gòu),最多支持64 Core。

      通過片間Cache一致性接口Hydra可擴(kuò)展系統(tǒng)核數(shù),最多支持到256 Core,形成性能超強(qiáng)的板級計算節(jié)點(diǎn)。

      支持CPU Core虛擬化、內(nèi)存虛擬化、中斷虛擬化、IO虛擬化等多項虛擬化等技術(shù),使得系統(tǒng)的資源共享更加靈活、系統(tǒng)的遷移過程變得相對簡單。

      鯤鵬920具有豐富且強(qiáng)大的I/O能力。集成以太網(wǎng)控制器;提供SAS控制器;集成PCle控制器。

      芯片集成安全算法引擎、壓縮/解壓縮引擎、存儲算法引擎等加速引擎進(jìn)行業(yè)務(wù)加速。

      鯤鵬應(yīng)用開發(fā)——代碼歸一

      高性能、高集成、異構(gòu)加速

      高集成,高能效

      最強(qiáng)算力的產(chǎn)品必須要有最強(qiáng)勁的處理器。

      鯤鵬處理器采用了多合一的SoC芯片架構(gòu),它不僅僅是一顆CPU,還集成了RoCE網(wǎng)卡、SAS控制器、橋片等,單顆處理器實現(xiàn)了4顆芯片的功能,以一當(dāng)四!可有效提升主板的集成度,使服務(wù)器的體積更小,算力密度更高、功耗更低。

      華為研發(fā)的Cache一致性總線HCCS,可以實現(xiàn)CPU和CPU之間的高速互聯(lián),通信速率高達(dá)每秒30GT,是業(yè)界主流CPU互聯(lián)速率的2倍多。通過多CPU互聯(lián),我們率先實現(xiàn)256個物理核的NUMA架構(gòu),從而推出業(yè)界首款兼容ARM的最強(qiáng)算力4路服務(wù)器

      當(dāng)前處理器一般通過與外置網(wǎng)卡配合為服務(wù)器提供10GE、25GE的接口,在分布構(gòu)下,要完成一個高算力的集群組網(wǎng)爾f奧R100GE成為服務(wù)器的標(biāo)準(zhǔn)配置。從個推出內(nèi)置直出100GE網(wǎng)絡(luò)能力的通用處理器,讓100GE成為服務(wù)器的標(biāo)準(zhǔn)配置。從處理器到服務(wù)器,擴(kuò)展到整機(jī)柜和計算集群,實現(xiàn)全100GE的高速網(wǎng)絡(luò)互聯(lián),引領(lǐng)服務(wù)器邁入100GE時代,構(gòu)建最強(qiáng)算力的集群。

      更安全:鯤鵬加速引擎,數(shù)據(jù)安全加解密

      鯤鵬應(yīng)用開發(fā)代碼歸一問題

      鯤鵬服務(wù)器底層芯片架構(gòu)和傳統(tǒng)x86芯片有差異,業(yè)務(wù)軟件遷移過程中要對代碼進(jìn)行適配修改。修改后的代碼可能會維護(hù)2個代碼分支,增加了后期代碼維護(hù)成本,這種方法是不可取的。將2個分支的代碼合一到一套代碼的過程稱為代碼歸一。

      代碼歸一有三種方式實現(xiàn):

      代碼段編譯宏控制

      編譯文件Makefile控制

      運(yùn)行態(tài)自動適配

      解釋型語言編譯后生成平臺無關(guān)的中間代碼文件(例如,Java代碼編譯后會生成.class

      文件,python代碼編譯后會生成.pyc文件),由虛擬機(jī)解釋執(zhí)行,虛擬機(jī)完成平臺差異的屏蔽,所以基于解釋型語言開發(fā)的應(yīng)用程序,與底層芯片架構(gòu)無關(guān)的,無須遷移可以將同一套代碼放在鯤鵬和x86服務(wù)器上運(yùn)行。

      基于編譯型語言開發(fā)的應(yīng)用程序,其編譯后得到可執(zhí)行程序,可執(zhí)行程序執(zhí)行時依賴的指令是芯片架構(gòu)相關(guān)的。因此,軟件遷移后鯤鵬架構(gòu)上的代碼和x86架構(gòu)的代碼會不一致,代碼歸一需要使用合適的措施隔離不同架構(gòu)代碼,后面我們以編譯型語言代表C/C++語言為例,分別從代碼片段和文件兩個方面說明歸一方法。

      代碼段編譯宏控制

      通過編譯宏控制是C/C++中較為通用的代碼片段隔離方法,同樣適用于不同芯片架構(gòu)中的代碼歸一。一般方法是,在代碼中用不同的宏將對應(yīng)芯片的代碼包含起來,在編譯時選擇或者自動識別選用的宏類型,如果不是被啟用的宏,其代碼就不會被編譯。

      方法一:使用GCC預(yù)定義好的通用宏。C/C++語言中通過條件編譯#ifdef,#endif 等關(guān)鍵詞實現(xiàn)將代碼塊編譯區(qū)分,示例代碼中采用了_x86_64_宏控制x86環(huán)境下運(yùn)行的代碼,采用了_aarch64_宏控制ARM環(huán)境下運(yùn)行的代碼,這兩個宏是GCC預(yù)定義好的通用宏,GCC根據(jù)編譯所在服務(wù)器的架構(gòu)自行激活對應(yīng)的宏,用戶無需定義,使用比較方便。

      方法二:自定義宏,通過編譯命令行帶入傳遞到代碼編譯中。如,gcc通過添加–DDEFINES或 -DDEFINES=CONDITION參數(shù)來定義用戶的宏。

      編譯文件Makefile控制

      如果業(yè)務(wù)代碼中涉及不同架構(gòu)的代碼較多,使用代碼片段隔離方式操作繁瑣,易讀性差,推薦將統(tǒng)一架構(gòu)相關(guān)的代碼放到同一個文件中,使用文件隔離的方式并采用makefile分文件編譯方式實現(xiàn)代碼歸一。

      如果使用make x86執(zhí)行的為x86平臺編譯,如果執(zhí)行make kunpeng,執(zhí)行的為kunpeng平臺編譯

      可以使用shell腳本配合makefile的方式來實現(xiàn)自動識別芯片架構(gòu)類型并執(zhí)行不同的編譯命令,高效且不易出錯

      運(yùn)行態(tài)自動適配

      上層業(yè)務(wù)代碼如果要根據(jù)不同的芯片類型設(shè)置不同的參數(shù),或者走不同的代碼邏輯路徑,可以通過實時查詢芯片類型來判斷,這樣代碼實現(xiàn)了自動適配芯片類型。與編譯宏控制方法的區(qū)別是,這類代碼和編譯無關(guān),不同芯片架構(gòu)都可以編譯。

      ARM 鯤鵬

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:excel怎么全選圖片
      下一篇:excel使用鼠標(biāo)編輯公式
      相關(guān)文章
      亚洲中文字幕无码中文| 中中文字幕亚洲无线码| heyzo亚洲精品日韩| 亚洲国产精华液2020| 国产精品亚洲综合五月天| 亚洲国产av美女网站| 亚洲最大的视频网站| 亚洲中文字幕久在线| 亚洲人xxx日本人18| 77777亚洲午夜久久多喷| 亚洲日本乱码卡2卡3卡新区| 亚洲综合色丁香婷婷六月图片| 亚洲AV无码一区二区三区人| 在线精品亚洲一区二区| 亚洲国产精品成人AV在线| 日本系列1页亚洲系列| 亚洲高清最新av网站| 国产成人精品曰本亚洲79ren| 亚洲无人区午夜福利码高清完整版| 国产成人精品日本亚洲专区61| 亚洲色婷婷综合久久| 亚洲AV无码一区二区二三区软件| 久久精品国产亚洲av成人| 久久亚洲春色中文字幕久久久| 亚洲精品白色在线发布| 亚洲Av高清一区二区三区| 亚洲国产欧美国产综合一区 | 天堂亚洲免费视频| 亚洲日本一区二区一本一道| 亚洲人成人77777网站| 无码专区—VA亚洲V天堂| 亚洲毛片一级带毛片基地| 亚洲三级在线播放| 亚洲av综合日韩| 91麻豆国产自产在线观看亚洲 | 亚洲中文字幕乱码一区| 99亚洲乱人伦aⅴ精品| 伊人久久综在合线亚洲91| 久久亚洲精品成人综合| 亚洲国产精品人久久电影| 亚洲精品宾馆在线精品酒店|