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