多樣性計算時代,跨平臺的應(yīng)用遷移和開發(fā)不簡單數(shù)字經(jīng)濟(jì)時代,自動駕駛、智能制造、電子政務(wù)、智慧金融等新型行業(yè)應(yīng)用場景和多元化的數(shù)據(jù)結(jié)構(gòu)驅(qū)動計算架構(gòu)向多樣性發(fā)展。鯤鵬架構(gòu)因其多核多并發(fā)、低功耗等特點能夠有效解決行業(yè)數(shù)字化轉(zhuǎn)型中海量數(shù)據(jù)的高算力需求,在多樣性計算場景下具備顯著優(yōu)勢。目前,鯤鵬已成為政府、金融、電信、能源等各行業(yè)IT基礎(chǔ)設(shè)施的主流平臺,為行業(yè)應(yīng)用提供高效強(qiáng)勁的算力支撐。然而,由于指令集的差異,從傳統(tǒng)X86到鯤鵬平臺的應(yīng)用遷移和開發(fā)的過程并不簡單:X86 上的程序必須經(jīng)過適配遷移才能運(yùn)行,過程中涉及大量的代碼修改、重新編譯和試錯,人工分析投入大、準(zhǔn)確率低;另外,X86平臺的開發(fā)經(jīng)驗和兼容生態(tài)相比鯤鵬平臺也有很多不同之處。因此,如何快速實現(xiàn)跨平臺的應(yīng)用遷移,以及在開發(fā)過程中便捷地引導(dǎo)用戶熟悉和充分利用鯤鵬架構(gòu)優(yōu)勢成為了開發(fā)人員亟需解決的問題。
鯤鵬開發(fā)套件DevKit 2.0,加速應(yīng)用遷移、使能極簡開發(fā)基于上述挑戰(zhàn),2019年鯤鵬面向合作伙伴和廣大開發(fā)者提供了鯤鵬開發(fā)套件DevKit 1.0,聚焦有源碼與無源碼兩大場景下的無憂遷移。隨著應(yīng)用遷移的不斷深入,基于鯤鵬進(jìn)行軟件開發(fā)的需求也越來越多,鯤鵬DevKit全新升級為2.0版本,從加速“應(yīng)用遷移”走向使能“原生開發(fā)”,該版本已經(jīng)于2021年12月31日在鯤鵬社區(qū)正式上線。2022年2月23日的 “鯤鵬DevKit新版本推介會”上,來自鯤鵬DevKit產(chǎn)品研發(fā)專家們向廣大開發(fā)者詳細(xì)解讀了新版本的最新特性?!蚌H鵬DevKit 2.0面向開發(fā)者全面升級,提供面向研發(fā)作業(yè)流的全流程開發(fā)工具鏈,包括鯤鵬開發(fā)框架、原生編程語言和編譯器、云上自動測試平臺、全場景性能調(diào)優(yōu)端到端工具等,為開發(fā)者提供更優(yōu)的體驗?!宾H鵬DevKit項目經(jīng)理馬德強(qiáng)對新版本的整體框架和版本規(guī)劃做了詳細(xì)解讀:
在開發(fā)階段,全新上線的鯤鵬開發(fā)框架能夠幫助開發(fā)者便捷學(xué)習(xí)鯤鵬架構(gòu)知識,充分應(yīng)用鯤鵬架構(gòu)優(yōu)勢,高效開發(fā)高性能應(yīng)用;
遷移階段,代碼遷移工具在原有的軟件遷移評估、源代碼遷移、軟件包重構(gòu)、專項軟件遷移基礎(chǔ)之上進(jìn)一步能力增強(qiáng),豐富了專項軟件遷移和HPC應(yīng)用遷移的能力,同時新增鯤鵬親和檢查等能力,提升軟件在鯤鵬平臺的運(yùn)行效率。
在編譯調(diào)試階段,提供基于鯤鵬平臺優(yōu)化后的GCC foropenEuler、畢昇編譯器、畢昇JDK等全套編譯工具,屏蔽硬件架構(gòu)差異,充分發(fā)揮鯤鵬架構(gòu)優(yōu)勢。
在測試階段,7*24小時的云測服務(wù),幫助用戶快速檢測程序在鯤鵬平臺上的兼容性、可靠性、安全、功能、性能等能力。
在調(diào)優(yōu)&診斷階段,性能調(diào)優(yōu)工具在原有的系統(tǒng)性能分析、Java性能分析基礎(chǔ)之上,新增調(diào)優(yōu)助手功能,指導(dǎo)用戶快速掌握調(diào)優(yōu)方法、降低調(diào)優(yōu)難度。此外,系統(tǒng)診斷在內(nèi)存和網(wǎng)絡(luò)診斷基礎(chǔ)上完善了存儲診斷能力,能夠快速定位相關(guān)部件異常點,準(zhǔn)確度大于90%。
馬德強(qiáng)表示“2022年,我們將持續(xù)迭代開發(fā)鯤鵬DevKit,為開發(fā)者提供更多更好用的原生開發(fā)能力,包括場景化SDK,以及簡單易用的Demo示例等,打造最佳的鯤鵬親和原生開發(fā)體驗,讓開發(fā)者零成本學(xué)習(xí)開發(fā)?!?/p>
基于鯤鵬開發(fā)框架,高效開發(fā)鯤鵬架構(gòu)親和的高性能應(yīng)用“目前,鯤鵬開發(fā)套件DevKit的軟件遷移效率已實現(xiàn)2人天/應(yīng)用,并初步提供了對鯤鵬原生開發(fā)的支持。”鯤鵬計算架構(gòu)與設(shè)計技術(shù)專家張汝濤解讀了DevKit代碼遷移工具的增強(qiáng)功能、并重點介紹了最新上線的鯤鵬開發(fā)框架的主要能力。新版本中進(jìn)一步增強(qiáng)了遷移能力:新增10余款主流HPC專項軟件的快速遷移能力;新增了鯤鵬親和檢查,包括程序運(yùn)行模式、結(jié)構(gòu)體字節(jié)對齊、Cacheline對齊、內(nèi)存一致性(靜態(tài)檢查&編譯器自動修復(fù))等檢查功能,幫助用戶軟件更好地適配鯤鵬架構(gòu),產(chǎn)生更優(yōu)的鯤鵬親和代碼。鯤鵬開發(fā)框架是面向鯤鵬原生開發(fā)打造的全新工具,“我們通過廣泛的調(diào)研,了解到開發(fā)者基于鯤鵬開發(fā)應(yīng)用的主要痛點是不知道鯤鵬架構(gòu)的特點是什么,也不知道如何最大程度釋放鯤鵬算力。因此我們?nèi)峦瞥隽琐H鵬開發(fā)框架,幫助開發(fā)者降低學(xué)習(xí)成本、降低學(xué)習(xí)難度,提高開發(fā)效率?!睆埲隄榻B道。目前,鯤鵬開發(fā)框架主要提供新手成長路徑、鯤鵬工程向?qū)Аl(fā)式編程、和鯤鵬親和檢查等能力。
通過新手成長路徑開發(fā)者能夠快速獲取豐富的鯤鵬架構(gòu)賦能材料,包括原生開發(fā)指導(dǎo)文檔、代碼樣例和實踐案例、培訓(xùn)課程、實驗沙箱等,系統(tǒng)學(xué)習(xí)鯤鵬處理器架構(gòu)知識,建立系統(tǒng)完整的知識體系,占領(lǐng)技術(shù)的制高點。
在項目的初始階段,鯤鵬工程管理向?qū)В蜷_發(fā)者推薦親和鯤鵬架構(gòu)的選項、參數(shù)和優(yōu)選的鯤鵬加速庫,開發(fā)者可以快速創(chuàng)建鯤鵬應(yīng)用項目。
在開發(fā)階段,通過啟發(fā)式編程提高開發(fā)效率和質(zhì)量。啟發(fā)式編程提供了編碼智能補(bǔ)全功能,用戶在編寫 makefile/cmakelists.txt構(gòu)建文件時,智能聯(lián)想鯤鵬親和的宏定義和編譯選項;編輯C/C++源碼時,智能聯(lián)想鯤鵬親和的GCC built-in函數(shù)、intrinsic指令函數(shù)和5大類鯤鵬加速庫函數(shù)。此外,開發(fā)者在編輯完構(gòu)建文件時還可以快速檢查依賴文件兼容性,并提供獲取方式。目前提供了20+ Linux版本的鯤鵬兼容性檢查及獲取。
鯤鵬親和檢查功能幫助開發(fā)者進(jìn)行鯤鵬加速優(yōu)化檢查,推薦使用更高效的鯤鵬加速庫,提升軟件運(yùn)行性能;同時提供4種鯤鵬架構(gòu)親和檢查功能(64位運(yùn)行模式檢查、內(nèi)存一致性檢查、結(jié)構(gòu)體字節(jié)對齊和變量cache line對齊檢查),給出優(yōu)化修改建議。
由此可見,鯤鵬開發(fā)框架從學(xué)習(xí)資料的獲取、到軟件工程構(gòu)建、軟件源碼開發(fā),再到軟件編譯構(gòu)建,提供了全方位的輔助能力,幫助開發(fā)者快速上手,高效編程,硬件架構(gòu)差異無感,打造極簡開發(fā)過程。
多重優(yōu)化技術(shù)全面提升編譯性能,屏蔽硬件差異,發(fā)揮鯤鵬架構(gòu)優(yōu)勢鯤鵬DevKit提供一鍵式部署的全套編譯軟件,滿足不同場景下的編譯需求,并結(jié)合鯤鵬架構(gòu)的優(yōu)勢提升編譯性能,讓軟件運(yùn)行效率更佳。華為畢昇編譯器架構(gòu)師魏偉針對畢昇編譯器和畢昇JDK的主要特性及關(guān)鍵優(yōu)化技術(shù)做了詳細(xì)解讀:畢昇編譯器是華為編譯器實驗室針對鯤鵬等通用處理器架構(gòu)場景,打造的高性能、高可信及易擴(kuò)展的編譯器工具鏈。支持C/C++/Fortran等編程語言,增強(qiáng)和引入了多種編譯優(yōu)化技術(shù):
高性能編譯算法:編譯深度優(yōu)化,增強(qiáng)多核并行化,自動矢量化等,大幅提升指令和數(shù)據(jù)呑吐量。
加速指令集:結(jié)合NEON/SVE等內(nèi)嵌指令技術(shù),深度優(yōu)化指令編譯和運(yùn)行時庫,發(fā)揮鯤鵬架構(gòu)最佳表現(xiàn)。
AI迭代調(diào)優(yōu):內(nèi)置AI自學(xué)習(xí)模型,自動優(yōu)化編譯配置,迭代提升程序性能,完成最優(yōu)編譯。
此外,畢昇編譯器在2021年版本中還重點引入了包括:SLP矢量化增強(qiáng)、數(shù)組數(shù)據(jù)流分析優(yōu)化實現(xiàn)、數(shù)據(jù)軟件預(yù)取、浮點精度調(diào)優(yōu)等關(guān)鍵優(yōu)化技術(shù),通過上述優(yōu)化使其編譯性能相比開源編譯軟件有25%+的提升。畢昇JDK是華為基于openJDK定制開發(fā)的開源版本,并針對鯤鵬架構(gòu)上進(jìn)行了優(yōu)化,包括快速序列化、AppCDS、G1GC 堆內(nèi)存伸縮、KAEProvider 等,是一款高性能、可用于生產(chǎn)環(huán)境的OpenJDK發(fā)行版。而鯤鵬原生的開發(fā)語言畢昇C++是一門面向多樣算力的編程語言,它以C++為基礎(chǔ),基于SYCL異構(gòu)編程行業(yè)標(biāo)準(zhǔn),增加矩陣編程、張量編程等特色的編程抽象,支持鯤鵬、昇騰、GPU等業(yè)界常用算力,并簡化多算力編程,為開發(fā)者提供高效、簡潔的編程體驗。據(jù)悉,畢昇C++第一個版本將于2022年三季度正式上線。魏偉表示,畢昇編譯器將結(jié)合鯤鵬架構(gòu)特點,針對不同場景,不同應(yīng)用特點,使用不同的編譯優(yōu)化手段,通過深度優(yōu)化指令編譯,引入或增強(qiáng)優(yōu)化算法等,發(fā)揮鯤鵬極致算力。
快速引導(dǎo)式性能調(diào)優(yōu)和診斷,消除性能瓶頸、提升軟件性能軟件運(yùn)行時,性能瓶頸可能存在于任何層次,設(shè)備、內(nèi)核、系統(tǒng)調(diào)用、系統(tǒng)庫、應(yīng)用程序等某一配置和指標(biāo)出現(xiàn)問題,都可能導(dǎo)致系統(tǒng)運(yùn)行緩慢。當(dāng)前業(yè)界的性能分析工具眾多且分散,不僅帶來大量的學(xué)習(xí)成本、效率低下,更重要的是數(shù)據(jù)不能互通,無法全局分析。鯤鵬DevKit性能分析工具能夠幫助開發(fā)者綜合、全面的了解系統(tǒng)軟硬件的相關(guān)信息,分析其配置和運(yùn)行情況,調(diào)節(jié)各模塊之間的系統(tǒng)資源占用關(guān)系,實現(xiàn)整個系統(tǒng)的性能最大化。華為鯤鵬性能分析技術(shù)專家金垚針對本次版本新增的調(diào)優(yōu)助手、HPC場景性能分析、系統(tǒng)診斷等主要功能進(jìn)行了詳細(xì)介紹:
首先,缺乏調(diào)優(yōu)經(jīng)驗的用戶能夠通過調(diào)優(yōu)助手快速掌握調(diào)優(yōu)方法:通過系統(tǒng)化組織和分析性能指標(biāo)、熱點函數(shù)、系統(tǒng)配置等信息,形成系統(tǒng)資源消耗鏈條,引導(dǎo)用戶根據(jù)優(yōu)化路徑分析性能瓶頸,并針對每條優(yōu)化路徑給出優(yōu)化建議和操作指導(dǎo),降低調(diào)優(yōu)難度。
其次,增強(qiáng)了HPC場景的性能分析,能夠快速獲取HPC應(yīng)用運(yùn)行時的CPU流水線使用情況、以及每個函數(shù)、模塊、parallel-region、barrier-to-barrier-segment的微架構(gòu)信息,確定性能瓶頸,并提供優(yōu)化建議指導(dǎo)用戶調(diào)優(yōu)。
第三,系統(tǒng)診斷能夠快速定位內(nèi)存、網(wǎng)絡(luò)、存儲等部件的異常,主動解決軟件運(yùn)行中出現(xiàn)的常見問題,包括識別內(nèi)存泄漏、越界、OOM等問題點,優(yōu)化源代碼中內(nèi)存使用的問題;以及測試網(wǎng)絡(luò)和存儲的最大能力,為性能優(yōu)化提供基礎(chǔ)參考數(shù)據(jù)等。
目前鯤鵬DevKit已成功運(yùn)用于運(yùn)營商、數(shù)字政府、金融、互聯(lián)網(wǎng)、HPC等眾多行業(yè),支撐近千家伙伴進(jìn)行遷移適配和性能優(yōu)化。未來,鯤鵬DevKit始終聚焦開發(fā)者的需求,持續(xù)優(yōu)化開發(fā)者體驗,幫助開發(fā)者更加便捷的基于鯤鵬平臺進(jìn)行極簡開發(fā),共同推動鯤鵬生態(tài)繁榮發(fā)展。
原文標(biāo)題:快速遷移、極簡開發(fā),探索鯤鵬開發(fā)套件DevKit2.0的價值密碼
文章出處:【微信公眾號:華為開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
審核編輯:湯梓紅
-
互聯(lián)網(wǎng)
+關(guān)注
關(guān)注
54文章
11184瀏覽量
103710 -
編譯器
+關(guān)注
關(guān)注
1文章
1642瀏覽量
49246 -
性能
+關(guān)注
關(guān)注
0文章
271瀏覽量
19022
原文標(biāo)題:快速遷移、極簡開發(fā),探索鯤鵬開發(fā)套件DevKit2.0的價值密碼
文章出處:【微信號:Huawei_Developer,微信公眾號:華為開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論