作者:Arm 架構(gòu)與技術(shù)部產(chǎn)品管理總監(jiān) Martin Weidmann
Arm CPU 是當(dāng)今人工智能 (AI) 賦能軟件的關(guān)鍵,它可解釋、處理和執(zhí)行指令。Arm 指令集架構(gòu) (ISA) 作為硬件和軟件的接口,指示處理器做什么和怎么做。Arm ISA 持續(xù)演進以滿足現(xiàn)代計算的需求,包括 AI 的興起、機器學(xué)習(xí) (ML) 和芯粒 (chiplet) 技術(shù)的使用,以及應(yīng)對高級安全威脅。持續(xù)創(chuàng)新確保了 Arm 架構(gòu)的普及性、普適性能、出色能效、安全性和開發(fā)者靈活性。
為了確保開發(fā)工作能緊跟快速發(fā)展的市場步伐,Arm 投入了大量時間來審視未來的計算需求,并與其龐大且獨特的生態(tài)系統(tǒng)明確其理解。在打造和發(fā)布更新的 ISA 時,結(jié)合專業(yè)知識與反饋意見,以確保能有針對性地滿足需求。
此系列文章每年發(fā)布一次,概述了當(dāng)年度 Arm A 系列架構(gòu)的主要新增功能,并隨附完整的指令集和系統(tǒng)寄存器文檔,2024 年為 Armv9.6-A。
想要了解去年的架構(gòu)擴展,可閱讀《Arm A 系列架構(gòu) 2023 擴展》。接下來,就讓我們一同來了解今年的一些新增功能。
利用結(jié)構(gòu)化稀疏性和
四分塊操作提高 SME 效率
矩陣運算用于加權(quán)特征和計算預(yù)測值,是當(dāng)今許多重要工作負載(包括 AI 和 ML)的基礎(chǔ)。Armv9-A 中的可伸縮矩陣擴展 (SME) 大大提高了 Arm CPU 上矩陣乘法的處理速度和效率。借助 SME,可以同時對多個值進行計算,數(shù)據(jù)整理和重用的效率更高,而且還支持更多的數(shù)據(jù)類型和更有效的數(shù)據(jù)壓縮。
SME 通過使用量化技術(shù),降低了 ML 模型的計算復(fù)雜度。這不僅減少了內(nèi)存需求,降低了能耗,還使模型可適用于移動設(shè)備。SME2 在量化方面又更進一步,它為在 CPU 上運行需要以吞吐量為導(dǎo)向操作的各類應(yīng)用引入了 Streaming 模式。2024 擴展基于 SME2 構(gòu)建,新增了對 2:4 結(jié)構(gòu)化稀疏性 (structured sparsity) 和四分塊 (quarter tile) 操作的支持。
從四分塊操作開始,這些操作旨在提高 SME 處理小矩陣時的效率?,F(xiàn)有的 SME 運算支持外積運算,使用一對輸入向量來計算結(jié)果矩陣:
為了更好地支持較小的矩陣,四分運算允許將輸入視為來自四個不同的矩陣:
2024 擴展帶來的另一項改進與稀疏性有關(guān)。在下面的示例中,一個包含激活數(shù)據(jù)的輸入矩陣與另一個包含權(quán)重的矩陣相乘。權(quán)重矩陣中的一些元素是未使用的(零),不會影響輸出。
這帶來了兩個效率低下的問題:
獲取不需要的數(shù)據(jù)
執(zhí)行不改變結(jié)果的乘法累加
新的結(jié)構(gòu)化稀疏性指令可以解決這以上兩個問題。在前面的例子中,權(quán)重可以用元數(shù)據(jù)標(biāo)簽進行壓縮,它描述如何解壓縮數(shù)據(jù)。
這種方法的優(yōu)點是既能優(yōu)化權(quán)重的內(nèi)存占用,又能優(yōu)化獲取權(quán)重進行處理所需的帶寬。權(quán)重可以在處理器中解壓縮,然后用于計算。不過,為了避免不必要的多重累積,新指令允許將壓縮數(shù)據(jù)直接用作輸入。
利用 MPAM Domain 支持芯粒
和多芯片 SoC 上的共享內(nèi)存系統(tǒng)
芯粒具有更高的系統(tǒng)可組合性和性能擴展性,因此可適用于 AI 和加速計算。要想大規(guī)模采用芯粒技術(shù),互操作性必不可少,這需要通過芯粒接口和協(xié)議的標(biāo)準(zhǔn)化來實現(xiàn)。
Arm 正在通過旨在提供通用語言和降低碎片化風(fēng)險的標(biāo)準(zhǔn),加速生態(tài)系統(tǒng)向基于芯粒的系統(tǒng)級芯片 (SoC) 演進。Arm 的芯粒系統(tǒng)架構(gòu) (Chiplet System Architecture, CSA)將基于 Arm 架構(gòu)的系統(tǒng)劃分為多個芯粒,包括其高級屬性,以定義可標(biāo)準(zhǔn)化和復(fù)用的芯粒類型。AMBA CHI C2C 利用了現(xiàn)有的片上 AMBA CHI 協(xié)議,并定義了其打包方式,使其能夠在芯粒間傳輸。
這些舉措將加速向提供專用和可互操作芯粒的多供應(yīng)商市場發(fā)展。開放的芯粒市場將使 OEM 能夠?qū)崿F(xiàn)更高水平的定制和集成,而無需承擔(dān)開發(fā)和制造單芯片設(shè)計所帶來的成本。目前,芯粒的優(yōu)勢是通過垂直集成設(shè)計實現(xiàn)的。Armv9-A 的 2024 擴展考慮了這種新的芯片方法以及如何在它們之間管理資源。
當(dāng)今的許多計算需求都是通過共享內(nèi)存計算機系統(tǒng)來獲得滿足的,在這些系統(tǒng)中,多個應(yīng)用或多個虛擬機 (VM) 同時運行。為支持此類系統(tǒng),Armv8.4-A 引入了內(nèi)存系統(tǒng)資源分區(qū)和監(jiān)控 (Memory System Resource Partitioning and Monitoring, MPAM) 擴展。MPAM 可以控制對共享資源使用情況進行監(jiān)控和分區(qū)。
MPAM 使用分區(qū)編號 (PARTID) 來識別每次內(nèi)存訪問與哪個軟件實體相關(guān)聯(lián)。該 PARTID 與內(nèi)存訪問一起傳輸,以便下游內(nèi)存系統(tǒng)組件 (MSC) 實施分區(qū)策略。
2024 年增加了 MPAM Domain,以更好地支持多芯粒和多芯片系統(tǒng)上的共享內(nèi)存計算機系統(tǒng)。MPAM Domain 允許系統(tǒng)的不同部分使用不同的 PARTID 命名空間,并在訪問跨越域邊界時進行 PARTID 轉(zhuǎn)換。
整個系統(tǒng)無需具有統(tǒng)一的 PARTID 寬度,系統(tǒng)因而更容易組成。由于系統(tǒng)的每個部分都可以只支持所需數(shù)量的 PARTID,MPAM Domain 還有助于降低成本。
虛擬機上用于 Trace 和統(tǒng)計分析的
虛擬機管理程序內(nèi)存控制
Armv9-A 的 Trace(ETE 和 TRBE)和統(tǒng)計分析擴展 (Statistical Profiling Extensions, SPE) 為開發(fā)者提供了了解軟件性能所需的信息,使其能最大限度地利用硬件平臺。
Trace 和 SPE 數(shù)據(jù)可以在系統(tǒng)運行時以非侵入方式收集,數(shù)據(jù)寫入虛擬內(nèi)存中軟件分配的緩沖區(qū)。運行虛擬機時,重要的是這些緩沖區(qū)的內(nèi)存頁不能被虛擬機管理程序換出去,否則會丟失分析數(shù)據(jù)。同時,通常也不希望虛擬機管理程序?qū)⑻摂M機的所有內(nèi)存都 Pin 進來。
2024 擴展為 TRBE 和 SPE 引入了虛擬機接口。這些接口允許虛擬機和虛擬機管理程序就分析緩沖區(qū)的大小和位置達成一致。這確保了虛擬機的分析數(shù)據(jù)不會丟失,同時允許虛擬機管理程序控制虛擬機內(nèi)存中需要 Pin 的內(nèi)存大小。
改進緩存和數(shù)據(jù)放置
2024 的 A 系列擴展引入了兩項增強功能,以提高緩存效率。第一個功能是生產(chǎn)者-消費者數(shù)據(jù)放置提示。新的寫提示指令允許生產(chǎn)線程向處理器提示寫或原子操作的數(shù)據(jù)將被不同的線程使用。而對于消費線程,則有一條新的預(yù)取指令,提示數(shù)據(jù)是由另一個線程生成的,可能還不存在。這些提示共同顯著提高了并行軟件的可擴展性,增強了消息傳遞、鎖傳遞和線程 barrier 的性能。例如:
系統(tǒng)可能包括連接到不同高速緩存層次結(jié)構(gòu)級別的設(shè)備或加速器。例如,在下面的系統(tǒng)中,設(shè)備 A 可以訪問系統(tǒng)級高速緩存 (System Level Cache, SLC),而設(shè)備 B 則繞過 SLC。
為了讓設(shè)備 A 或設(shè)備 B 能夠看到數(shù)據(jù),CPU 上運行的軟件需要將數(shù)據(jù)推送到內(nèi)存系統(tǒng)中。當(dāng)前,軟件會使用緩存操作將數(shù)據(jù)推送到一致性點 (Point of Coherency, PoC),在示例系統(tǒng)中,一致性點位于 SLC 之外。這對設(shè)備 B 來說是正確的,但對設(shè)備 A 來說,將數(shù)據(jù)推送到 SLC 就足夠了。
2024 擴展增加了針對 outer cache 的高速緩存維護操作。這為知道高速緩存拓撲結(jié)構(gòu)的軟件提供了更大的靈活性,使開發(fā)者能夠根據(jù)使用該數(shù)據(jù)的設(shè)備的需求,將數(shù)據(jù)推送到系統(tǒng)的合適位置。
利用粒度數(shù)據(jù)隔離基于機密計算進行構(gòu)建
Armv9-A 為開發(fā)者提供了編程工具和環(huán)境,使他們能夠在快速發(fā)展的 AI 市場中加快創(chuàng)新步伐。此類應(yīng)用所使用的模型和數(shù)據(jù)尤為寶貴,因此安全性至關(guān)重要。Arm 機密計算架構(gòu) (Confidential Compute Architecture, CCA) 利用硬件和軟件來保護使用中的數(shù)據(jù)和應(yīng)用。
Armv9.1-A 引入了機密領(lǐng)域管理擴展 (Realm Management Extension, RME),在設(shè)備上創(chuàng)建了一個獨立的計算世界,用于運行和保護應(yīng)用和數(shù)據(jù)。使用機密領(lǐng)域可以防止來自以更高權(quán)限級別運行的軟件的攻擊。機密領(lǐng)域的內(nèi)容或進程無法訪問。數(shù)據(jù)在使用、傳輸和復(fù)位時均保持加密。Armv9.4-A 引入了一項更新,使機密領(lǐng)域可以與加速器交互并保持其完整性。
粒度數(shù)據(jù)隔離 (Granular Data Isolation, GDI) 建立在 Armv9-A 的 RME 基礎(chǔ)之上,并增加了兩個新的物理地址空間 (Physical Address Space, PAS),可將內(nèi)存位置分配到這些空間:
非安全保護 (Non-Secure Protected, NSP)
系統(tǒng)代理 (System Agent, SA)
這兩個新的 PAS 與現(xiàn)有選項的不同之處在于,處理器無法訪問它們。如此一來,軟件就可以將內(nèi)存緩沖區(qū)分配給其他設(shè)備,而硬件則維護這些緩沖區(qū)內(nèi)數(shù)據(jù)的機密性。例如,可信加速器可以使用 NSP PAS 來處理數(shù)據(jù),同時保證軟件無法訪問這些數(shù)據(jù)。
其他功能
2024 擴展中引入的其他增強功能包括:
對 EL1 系統(tǒng)寄存器進行位鎖定 (Bitwise Locking)。
針對大型內(nèi)存系統(tǒng)改進了粒度保護表 (Granular Protect Tables, GPT) 的可伸縮性。
用于擴展/壓縮和查找第一個/最后一個 active 元素的新 SVE 指令。
新增非特權(quán)讀取和存儲指令,使操作系統(tǒng)能與應(yīng)用內(nèi)存交互。
新的比較和分支指令。
從 EL3 注入 Undefined 指令異常。
新一代中斷控制器即將推出
通用中斷控制器 (Generic Interrupt Controller, GIC) 是 Arm A 系列系統(tǒng)的標(biāo)準(zhǔn)解決方案,在整個 Arm 生態(tài)系統(tǒng)中被廣泛使用。當(dāng)前版本 GICv3 和 GICv4 于 2013 年與 Armv8-A 一起推出。從那時起,系統(tǒng)的結(jié)構(gòu)和運行工作負載都發(fā)生了變化。Arm 正在開發(fā)新版本的 GIC 架構(gòu),我們期待在 2025 年初分享預(yù)覽版。
總結(jié)
本文簡要介紹了 Arm 架構(gòu) Armv9.6-A 中的最新功能。在接下來的幾個月中,Arm 將與合作伙伴共同致力于確保軟件生態(tài)系統(tǒng)能夠在未來處理器上市后盡快利用這些功能。
-
處理器
+關(guān)注
關(guān)注
68文章
19370瀏覽量
230419 -
ARM
+關(guān)注
關(guān)注
134文章
9116瀏覽量
368192 -
寄存器
+關(guān)注
關(guān)注
31文章
5358瀏覽量
120771 -
AI
+關(guān)注
關(guān)注
87文章
31225瀏覽量
269579 -
人工智能
+關(guān)注
關(guān)注
1792文章
47469瀏覽量
239137
原文標(biāo)題:Armv9 技術(shù)講堂 | Arm A 系列架構(gòu) 2024 進展
文章出處:【微信號:Arm社區(qū),微信公眾號:Arm社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論