昇騰處理器硬體架構與關鍵技術

本文介紹了昇騰處理器的硬體架構與關鍵技術;更多昇騰技術,參考文章“昇騰AI全棧框架深度介紹”,“國內AI算力:昇騰一馬當先,各家競相發展”,“昇騰AI框架:全棧深度知識介紹”。
提醒:請之前購買過全店打包架構師技術全店資料打包彙總(全)”的讀者,請憑藉購買記錄在微店留言免費獲取更新(傳送更新打包連結),後續所有更新均免費發放目前44本資料
獲取清單:
(持續更新中…)
資料中心網路知識全解(PPT)
人工智慧基礎知識全解(含實踐)
CPU基礎知識全解(PPT)
GPU基礎知識全解(PPT)

引言

隨著人工智慧技術的飛速發展,深度神經網路(DNN)已成為多個領域中不可或缺的計算模型,特別是在影像識別、語音處理、自然語言處理(NLP)以及智慧駕駛等領域。為了有效處理大規模的DNN計算任務,傳統的計算架構(如CPU和GPU)已經不能滿足日益增長的計算需求。此時,專用的AI加速器——尤其是神經網路處理單元(NPU)成為AI計算的重要組成部分。華為昇騰(Ascend)架構,作為華為自研的AI加速平臺,以其高效的計算能力、靈活的硬體設計以及強大的擴充套件性,已成為最先進AI加速器之一。昇騰架構不僅適用於資料中心和雲端的深度學習任務,還能夠廣泛應用於邊緣計算、物聯網(IoT)和智慧硬體等場景。華為昇騰系列晶片,包括Ascend 310、Ascend 910及其升級版本(Ascend 910B),透過採用創新的計算單元和記憶體架構,在AI計算領域展現出了顯著的優勢。

昇騰架構設計原理與技術創新

昇騰架構的設計從多個方面進行創新,包括計算單元的異構設計、記憶體架構的最佳化、任務排程以及與軟體棧的深度整合。

圖1. Ascend架構圖.

異構計算單元與達芬奇架構

Ascend NPU的設計採用了達芬奇架構(DaVinci Architecture)。達芬奇架構集成了標量計算單元(Scalar unit)、向量計算單元(Vector unit)和立方體計算單元(Cube unit)等多種計算單元,這些計算單元的設計旨在最大化DNN任務的計算吞吐量,並克服傳統計算架構在處理深度學習任務時的瓶頸。

標量計算單元

標量計算單元類似於經典RISC處理器中的整數ALU單元,主要負責控制流操作和一些簡單的計算操作,如加法、減法、乘法等。儘管這些計算單元的計算能力較為有限,但它們在昇騰架構中主要承擔控制任務和管理簡單計算操作,確保任務排程和控制流程的高效執行。

圖2. 標量計算單元.

向量計算單元

向量單元在昇騰架構中發揮著重要作用,類似於傳統CPU和GPU中的SIMD(單指令多資料)單元,廣泛應用於高效能計算(HPC)和計算機視覺(CV)領域。它可以執行推理和訓練任務中的大部分計算操作(例如歸一化、啟用函式)。然而,使用向量單元並不能充分利用DNN模型中的資料重用。因此,它會導致高密度ALU和本地記憶體之間的頻寬受限資料路徑,該路徑受到物理佈局和路由 (P&R) 的限制。因此,一維向量單元不足以滿足對計算能力要求不斷提高的DNN應用。

圖3. 向量計算.

立方體計算單元

為了克服向量單元的限制,二維計算單元已被用於通用矩陣-矩陣乘法(GEMM)。從數學上講,在2D單元中,有兩種加速GEMM的方法。一種是基於點積的方法,它將GEMM作為多重通用矩陣向量乘法(GEMV)執行。另一種是基於外積的方法,它將GEMM轉換為多個向量外積的累加。為了進一步獲得更好的計算效率,引入了3D(立方體)計算單元來提供大量計算能力。Cube單元專用於DNN應用,以實現更高的資料重用。它可以幫助緩解DNN加速器的計算吞吐量和有限記憶體頻寬之間的不匹配。3D計算中矩陣的典型尺寸是16*16*16。因此,整個立方體配備了4096個乘法器和4096個累加器。此外,矩陣計算中的每個運算元都被重複使用16次。因此,與向量單元相比,將運算元載入/饋送到立方體計算單元的能耗減少到1/16,並且能夠在DNN應用中實現更高的資料重用,進而提高計算吞吐量。這種設計特別適用於大規模矩陣運算,如卷積和矩陣乘法(GEMM)等基礎AI計算操作。相比於傳統的二維向量單元,立方體單元透過增加維度,實現了更高的計算密度和更高的資料複用,從而顯著提升了計算效能。

圖4. 立方體計算單元.

記憶體架構與資料路徑最佳化

如圖5所示,昇騰架構的記憶體系統採用了多級快取結構,包括L0快取、L1快取和高頻寬記憶體(HBM)。這種設計旨在減少記憶體頻寬的瓶頸並提高計算效率。透過最佳化記憶體的訪問路徑,昇騰架構能夠有效提升資料傳輸效率,特別是在處理大規模AI任務時,能夠保持高速的資料傳輸和處理能力。

圖5. 昇騰記憶體架構.

記憶體傳輸引擎(MTE)

記憶體傳輸引擎(MTE)是昇騰架構中的關鍵元件,負責在不同記憶體層級之間傳輸資料。MTE支援壓縮解壓縮、矩陣轉換等功能,以提高記憶體的訪問效率。MTE中的多個功能模組,包括解壓縮模組、影像轉換模組(img2col)和矩陣轉置模組,都有效地提升了資料在不同計算單元之間的傳輸效率,減少了資料傳輸的延遲。

高頻寬記憶體(HBM)

昇騰架構還採用了高頻寬記憶體(HBM)技術,提供比傳統記憶體更高的頻寬。這對於大規模資料集的處理尤為重要,尤其是在深度學習訓練和推理任務中,資料訪問的瓶頸往往會顯著影響系統性能。昇騰晶片透過高頻寬記憶體與片上快取的結合,有效解決了這一問題,確保計算單元能夠快速訪問所需的資料。

任務排程與通訊佇列

在昇騰架構中,通訊佇列用於控制資料傳輸和同步,它是透過協調計算單元之間的資料流動和任務執行順序來實現的。具體來說,佇列用於儲存待處理的資料包,並透過一系列的同步機制確保資料在不同計算單元之間正確有序地傳輸。每當一個計算單元完成其操作後,滴哦會將結果傳遞給下一個計算單元,確保各個任務按照預定的依賴關係執行。佇列不僅負責資料的傳輸,還起到控制計算單元的執行節奏和任務排程的作用,從而最佳化整體計算效能並避免資源衝突。此外,昇騰架構中的Queue設計還支援動態調整和優先順序控制,以適應不同應用場景下的需求。

圖6.通訊佇列控制資料同步.

程式設計模型

昇騰架構採用的程式語言Ascend C是SPMD(Single-Program Multiple-Data)正規化。SPMD是一種常用的平行計算的方法,是提高計算速度的有效手段。假設,從輸入資料到輸出資料需要經過3個階段任務的處理(T1、T2、T3)。如圖7所示,SPMD模式下,系統會啟動一組程序,並行處理待處理的資料:首先待處理資料會被切分成多個數據分片,切分後的資料分片隨後被分發給不同程序處理,每個程序接收到一個或多個數據分片,並獨立地對這些分片進行3個任務的處理。

圖7. Ascend C的SPMD正規化.

SPMD程式設計模型將需要處理的資料拆分並同時在多個計算核心(類比於上文介紹中的多個程序)上執行,從而獲取更高的效能。多個AI Core共享相同的指令程式碼,每個核上的執行例項唯一的區別是block_idx不同,每個核透過不同的block_idx來識別自己的身份。block的概念類似於上文中程序的概念,block_idx就是標識程序唯一性的程序ID。

圖8. AI Core並行處理不同資料.

軟體棧的支援與編譯最佳化

昇騰架構的軟硬體協同設計使得其能夠支援主流的AI開發框架,如TensorFlow、PyTorch和MindSpore等。特別是MindSpore,作為華為自研的深度學習框架,已經與昇騰架構深度整合,能夠最大化地發揮昇騰晶片的計算效能。此外,昇騰架構還配備了高效的編譯器,能夠針對不同硬體配置自動最佳化計算圖,生成高效的執行程式碼。昇騰架構的編譯器支援多種最佳化策略,包括計算圖最佳化、運算子融合和資料佈局轉換等。透過這些最佳化,昇騰能夠顯著提升AI模型的執行效率,減少記憶體頻寬和計算吞吐量之間的不匹配,從而提升整個系統的計算能力。

昇騰晶片系列

昇騰架構包括多個不同型號的AI加速晶片,每款晶片針對不同的應用場景,提供不同的計算效能和功耗特性。

Ascend 310

Ascend 310晶片是昇騰系列中的入門級產品,主要面向邊緣計算和物聯網(IoT)裝置。該晶片採用了8個達芬奇AI核心和4個ARM A73核心,支援深度學習推理任務。Ascend 310具備低功耗特性,非常適合在低功耗裝置上使用,如智慧家居、智慧監控和車載計算等場景。Ascend 310提供相對較低的計算能力,約為16 TFLOPS的FP16效能,但其低功耗和高效的計算能力使其在邊緣裝置上得到了廣泛應用。該晶片能夠處理影像識別、語音識別等基本AI任務,並能夠在高效能與低功耗之間實現良好的平衡。

Ascend 910

Ascend 910是昇騰架構中的旗艦產品,專為資料中心和雲計算環境設計,支援高併發、多工的訓練和推理工作負載。Ascend 910提供256 TFLOPS的FP16效能,並支援大規模平行計算。Ascend 910具有32個達芬奇AI核心,支援超大規模的AI模型訓練和推理任務。在AI推理和深度學習訓練中,Ascend 910展現了強大的計算能力,特別適合高負載、高併發的AI任務。其高頻寬記憶體和先進的記憶體架構進一步提升了系統性能,使其在雲計算和大資料處理領域佔據了重要地位。

未來發展與挑戰

儘管昇騰架構已經取得了顯著成績,但在未來的發展中仍面臨一些挑戰,特別是在全球市場的拓展和軟體生態的完善方面。昇騰架構在中國市場取得了良好成績,但在國際市場上,昇騰仍需面對NVIDIA等競爭對手的強大壓力。昇騰架構需要進一步最佳化其軟體生態,並加強與主流AI框架的相容性,在全球市場佔據一席之地。隨著AI技術的不斷進步,昇騰架構在硬體和軟體方面需要不斷創新,以應對越來越複雜的AI任務。例如,昇騰在支援多模態AI和強化學習方面還有很大的提升空間。

總結

華為昇騰架構憑藉其創新的硬體設計、靈活的計算單元和高效的記憶體架構,已經成為AI加速領域的重要力量。透過深入分析昇騰架構的各項技術和效能,我們可以看出,昇騰在提供高效計算支援的同時,也在推動AI技術的普及和應用。隨著技術的不斷進步,昇騰架構有望在全球範圍內發揮更大的影響力,並推動AI技術的發展。
請之前購買過全店打包架構師技術全店資料打包彙總(全)”的讀者,請憑藉購買記錄在微店留言免費獲取(PDF閱讀版本)。後續所有更新均免費發放目前44本資料)。


免責申明:本號聚焦相關技術分享,內容觀點不代表本號立場,可追溯內容均註明來源,釋出文章若存在版權等問題,請留言聯絡刪除,謝謝。
推薦閱讀
更多架構相關技術知識總結請參考“架構師全店鋪技術資料打包(全)”相關電子書(44本技術資料打包彙總詳情可透過“閱讀原文”獲取)。
溫馨提示:
掃描二維碼關注公眾號,點選閱讀原文連結獲取架構師技術全店資料打包彙總(全)電子書資料詳情



相關文章