作者:Arm 架構(gòu)與技術(shù)部產(chǎn)品管理總監(jiān) Martin Weidmann
隨著人工智能 (AI) 的興起和安全威脅的加劇,計算需求不斷提高。全球各種設(shè)備所依賴的基礎(chǔ)計算架構(gòu)也必須持續(xù)向前推進(jìn)。為此,我們的工程團(tuán)隊不斷地在應(yīng)用廣泛的 Arm 架構(gòu)中加入新的功能和技術(shù),同時我們的軟件團(tuán)隊也在努力讓軟件能夠順利地適配這些未來的功能和技術(shù)。
Arm 架構(gòu)是如何開發(fā)的
Arm 每年都會發(fā)布 Arm 指令集架構(gòu) (ISA) 的更新,這些更新是通過與 Arm 生態(tài)系統(tǒng)中的各類合作伙伴合作參與創(chuàng)建的。該流程涉及芯片合作伙伴、操作系統(tǒng)供應(yīng)商、OEM 廠商,以及 Arm 內(nèi)部的工程團(tuán)隊和多家標(biāo)準(zhǔn)組織。
經(jīng)過精心設(shè)計的 ISA 可確保軟件在未來數(shù)年內(nèi)持續(xù)兼容新舊硬件。Arm 與 Linaro 等眾多合作伙伴緊密協(xié)作,讓諸如 Linux 內(nèi)核和發(fā)行版等廣泛使用的軟件上游社區(qū)能支持 Arm ISA,以便建立龐大的開發(fā)者生態(tài)系統(tǒng)。
每年九月,我們都會發(fā)表一篇技術(shù)博客,分享該年度對 A-Profile 架構(gòu)所作的一些重要增添。同時,我們也會在 Arm 開發(fā)者網(wǎng)站上發(fā)布完整的指令集和系統(tǒng)寄存器文檔[1]。
完整的 Arm 架構(gòu)參考手冊[2] (Arm Architecture Reference Manual, Arm ARM) 也會每年更新一次。預(yù)計 2024 年初會發(fā)布包含 2023 年擴(kuò)展內(nèi)容的更新版?!皩W(xué)習(xí)架構(gòu) (Learn the Architecture)”[3]頁面同樣會在 2023 年和 2024 年更新。
技術(shù)博客和文檔的發(fā)布只是部署新架構(gòu)的一小步。接下來我們還要同生態(tài)合作伙伴一起努力,確保一旦硬件準(zhǔn)備就緒,開源軟件就能即刻支持新的架構(gòu)功能。
2023 年,Arm 推出新特性以加強(qiáng)對人工智能 (AI)、機(jī)器學(xué)習(xí) (ML) 和安全性的支持。Arm 架構(gòu)的首要任務(wù)之一是讓安全的 AI 無處不在,而神經(jīng)網(wǎng)絡(luò) (NN) 的訓(xùn)練是 AI 不斷進(jìn)步和發(fā)展的關(guān)鍵。因此,2023 年的架構(gòu)擴(kuò)展增加了已在神經(jīng)網(wǎng)絡(luò)中廣泛使用的新八位浮點格式,名為 FP8。為了提高安全性,我們還增加了“經(jīng)檢查的指令運(yùn)算 (Checked Pointer Arithmetic)”功能,該功能基于 Arm 內(nèi)存標(biāo)記擴(kuò)展 (MTE)[4] 的現(xiàn)有支持而打造,可以幫助開發(fā)者快速發(fā)現(xiàn)內(nèi)存安全違規(guī),節(jié)省應(yīng)用開發(fā)的成本和時間。
以下為今年新增的功能:
FP8
2022 年,Arm、Intel 和 Nvidia 宣布針對 FP8 展開合作。FP8 是一種交換格式,可以讓軟件生態(tài)系統(tǒng)輕松共享神經(jīng)網(wǎng)絡(luò)模型,并讓 AI 計算能力不斷提高。作為 2023 年擴(kuò)展的一部分,SME2、SVE2 和 Advanced SIMD (Neon) 增加了對 FP8 的支持。
FP8 支持兩種數(shù)據(jù)格式:E5M2 和 E4M3。這兩種格式在精度和范圍上有不同的取舍。
使用哪種格式由 FPMR 寄存器中的字段選擇。對于一條指令的不同輸入,可以選擇不同的格式,從而有效地處理各種格式的數(shù)據(jù)集。我們堅信,圍繞八位浮點格式的行業(yè)共創(chuàng)將帶來一系列好處,同時可使開發(fā)者專注于真正重要的創(chuàng)新和差異化。我們非常高興看到 FP8 將推動未來 AI 的發(fā)展。
熱遷移
熱遷移是指將虛擬機(jī) (VM) 從一臺主機(jī)移動到另一臺主機(jī)上,而不影響其可用性和狀態(tài)。能夠高效地進(jìn)行熱遷移對于大規(guī)模數(shù)據(jù)中心管理而言非常重要。
為了實現(xiàn)熱遷移,虛擬機(jī)管理程序要在 VM 仍在舊主機(jī)上運(yùn)行時,就把它所占用的頁面復(fù)制到新主機(jī)上。這個過程通常要反復(fù)進(jìn)行幾次,因為 VM 可能會修改已經(jīng)復(fù)制的頁面。解決這個問題有不同的方法,但都要面對三項挑戰(zhàn):
記錄:記錄 VM 修改過(污染過)的頁面。
調(diào)查:根據(jù)記錄判斷哪些頁面需要重新復(fù)制。
清理:每次迭代時重置記錄機(jī)制。
2023 年的擴(kuò)展增加了幾項功能,可以幫助優(yōu)化上述的三項挑戰(zhàn)。
FEAT_HDBSS 讓我們可以記錄日志,記錄 Stage 2 已被污染的頁面或塊。該機(jī)制解決了“記錄”成本問題,因為內(nèi)存管理單元 (MMU) 可以在不中斷 VM 執(zhí)行的情況下高效創(chuàng)建日志。日志也解決了“調(diào)查”成本問題,因為生成的數(shù)據(jù)是虛擬機(jī)管理程序可以有效使用的格式。
為了解決“清理”成本問題,F(xiàn)EAT_HACDBS 增加了一個加速器來清理 Stage 2 轉(zhuǎn)換表中的污染狀態(tài)。引擎利用污染頁面日志來定位需要更新的 Stage 2 轉(zhuǎn)換表描述符。
這些功能結(jié)合起來可以大幅提高熱遷移的性能和效率。
經(jīng)檢查的指令運(yùn)算
AArch64 支持多項功能,這些功能讓我們可以重新利用保存地址的寄存器高位。例如,Armv8.0-A 中引入的標(biāo)記指針 (Tagged Pointer) 和 Armv8.5-A 中引入的 MTE。
軟件經(jīng)常需要操作指針,比如給一個基地址加上一個偏移量。這通常是用加法或減法等常規(guī)算術(shù)運(yùn)算來完成的。如果地址計算出現(xiàn)溢出,就可能會破壞寄存器中非地址位的信息。例如,如果使用 MTE,地址操作則可能會改變指針中存儲的標(biāo)記。損壞的標(biāo)記可能會導(dǎo)致處理器無法檢測到內(nèi)存安全違規(guī),如下所示:
2023 年的擴(kuò)展引入了專門用于指針操作的新指令。這些指令包含多種針對指針的檢查,包括檢查 bits[63:56] 是否被修改并防止溢出。使用
以前面的 MTE 為例,新功能讓處理器能夠檢測指針的前八位是否已被修改。這意味著,如果 MTE 標(biāo)記損壞,則會向軟件發(fā)出報告。
其他功能
其他新引入的增強(qiáng)功能包括:
當(dāng)生成或檢查指針驗證 (PAC) 碼時,支持組合使用程序計數(shù)器 (Program Counter, PC) 和當(dāng)前選擇的堆棧指針 (Stack Pointer, SP) 作為修飾符。
支持啟用了機(jī)密領(lǐng)域管理擴(kuò)展 (RME)[5] 的設(shè)計,可以在 Granule Protection Tables 中支持 non-secure only,也可以禁用某些物理地址空間 (PAS)。
EL3 配置寫入陷阱。
斷點支持地址范圍和 mismatch 觸發(fā),而無需鏈接。
支持將 SError 從 EL3 高效委派給 EL2 或 EL1 處理。
在接下來的幾個月,Arm 將與合作伙伴一起努力,確保軟件生態(tài)系統(tǒng)能夠在未來處理器上市后盡快利用發(fā)揮這些功能的優(yōu)勢。
審核編輯:湯梓紅
-
ARM
+關(guān)注
關(guān)注
134文章
9098瀏覽量
367707 -
AI
+關(guān)注
關(guān)注
87文章
30947瀏覽量
269213 -
人工智能
+關(guān)注
關(guān)注
1791文章
47314瀏覽量
238648 -
ARM架構(gòu)
+關(guān)注
關(guān)注
14文章
177瀏覽量
36317
原文標(biāo)題:Arm A-Profile 架構(gòu) 2023 擴(kuò)展
文章出處:【微信號:Arm社區(qū),微信公眾號:Arm社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論