隨著人工智能(AI)的崛起和安全威脅加劇,計(jì)算的需求持續(xù)加強(qiáng)。因此,世界上各種設(shè)備核心的基礎(chǔ)計(jì)算架構(gòu)的持續(xù)演進(jìn)顯得尤為重要。這就是為什么我們的工程團(tuán)隊(duì)向Arm架構(gòu)中添加新的功能和技術(shù),然后軟件團(tuán)隊(duì)確保軟件盡可能無縫地利用這些未來的功能和技術(shù)。
Arm架構(gòu)是怎樣開發(fā)的
Arm每年發(fā)布對Arm指令集架構(gòu)(ISA)的更新,這些更新是與Arm生態(tài)系統(tǒng)的多樣化合作伙伴共同創(chuàng)建的。該過程涉及芯片合作伙伴、操作系統(tǒng)供應(yīng)商和OEMs、Arm的內(nèi)部工程團(tuán)隊(duì)和標(biāo)準(zhǔn)制定機(jī)構(gòu)。
經(jīng)過嚴(yán)格規(guī)劃的ISA可以確保軟件在新舊硬件上繼續(xù)工作很多年。Arm與Linaro以及其他眾多合作伙伴緊密合作,以便最廣泛使用的軟件上游社區(qū)(例如Linux內(nèi)核和發(fā)行版)可以利用Arm ISA,以幫助提供全球最廣泛的開發(fā)者生態(tài)系統(tǒng)。
每年九月,我們發(fā)布一篇博客,討論當(dāng)年A-Profile架構(gòu)的關(guān)鍵更新。然后我們通過開發(fā)者網(wǎng)頁發(fā)布完整的指令集和系統(tǒng)寄存器文檔。
完整的Arm架構(gòu)參考手冊(Arm ARM)也每年更新一次。預(yù)計(jì)將在2024年初發(fā)布包含2023擴(kuò)展的更新。在2023年和2024年,“Learn the Architecture”頁面也將更新。
發(fā)布博客和文檔只是部署新架構(gòu)的第一步。下一步我們將和生態(tài)系統(tǒng)伙伴合作,確保一旦硬件可用,開源軟件就能立即利用這一功能。
2023年,Arm引入新功能,以支持我們持續(xù)關(guān)注的人工智能(AI)、機(jī)器學(xué)習(xí)(ML)和安全性。讓安全的AI無處不在是Arm架構(gòu)的關(guān)鍵優(yōu)先任務(wù),神經(jīng)網(wǎng)絡(luò)(NNs)的訓(xùn)練對AI的持續(xù)發(fā)展和進(jìn)步至關(guān)重要。這就是為什么2023年的架構(gòu)擴(kuò)展包括FP8的新8位浮點(diǎn)格式的支持,此格式已在NNs中迅速被采納。在安全性方面,我們正在添加Checked Pointer Arithmetic,該功能基于Arm Memory Tagging Extension (MTE),允許開發(fā)人員快速檢測內(nèi)存安全性違規(guī),從而在應(yīng)用開發(fā)過程中節(jié)省成本和時(shí)間。
之前對A-Profile架構(gòu)的更新的詳細(xì)信息可以在這里找到:2014、2015、2016、2017、2018、2019、2020、2021和2022。
讓我們看看今年增加了哪些新功能。
Floating Point 8 (FP8)
2022年,Arm、Intel 和 Nvidia 宣布了他們在FP8上的合作,這是一個(gè)交換格式,允許軟件生態(tài)系統(tǒng)輕松地共享NN模型,并支持AI計(jì)算能力的持續(xù)進(jìn)步。作為2023年擴(kuò)展的一部分,SME2、SVE2 和 Advanced SIMD (Neon) 增加了對FP8的支持。
FP8支持兩種數(shù)據(jù)格式:E5M2 和 E4M3。這兩種格式在精度和范圍之間提供了不同的權(quán)衡。
由FPMR寄存器控制選擇使用那種格式。可以為一條指令的不同輸入選擇不同的格式,從而有效地處理不同格式的數(shù)據(jù)集。我們堅(jiān)信,行業(yè)共創(chuàng)的FP8帶來的好處,使開發(fā)者能夠集中精力在真正重要的創(chuàng)新和差異化上。我們很興奮地看到FP8如何推動(dòng)未來的AI發(fā)展.
實(shí)時(shí)遷移
實(shí)時(shí)遷移是將虛擬機(jī)(VM)從一個(gè)主機(jī)移動(dòng)到另一個(gè)主機(jī)的過程,同時(shí)保留其可用性和狀態(tài)。高效的實(shí)時(shí)遷移支持是大規(guī)模數(shù)據(jù)中心管理的重要工具。
為了實(shí)現(xiàn)實(shí)時(shí)遷移,hypervisor需要在VM仍在舊主機(jī)上運(yùn)行時(shí)將頁面復(fù)制到新主機(jī)。這通常需要一個(gè)迭代過程,因?yàn)閂M可能會(huì)“弄臟”已經(jīng)被復(fù)制的頁面。解決這個(gè)問題有不同的方法,但它們都必須面對三個(gè)挑戰(zhàn):
記錄(Recording):創(chuàng)建VM寫入(弄臟)的頁面的記錄。
調(diào)查(Surveying):處理記錄,以確定哪些頁面需要重新復(fù)制。
清理(Cleaning):在每次迭代上重置記錄機(jī)制。
2023年的擴(kuò)展引入了新特性,幫助優(yōu)化這三個(gè)過程。
FEAT_HDBSS增加了記錄被弄臟的stage 2頁面或塊日志的能力。這種機(jī)制減少了記錄成本,因?yàn)閮?nèi)存管理單元(MMU)可以有效地創(chuàng)建日志,而不中斷VM的執(zhí)行。該日志還減少了調(diào)查成本,因?yàn)樯傻臄?shù)據(jù)是hypervisor可以高效使用的格式。
為了解決清理成本,F(xiàn)EAT_HACDBS為清理 stage 2頁表中的臟狀態(tài)增加了一個(gè)加速器。該引擎使用臟頁面的日志來定位需要更新的stage 2頁表描述符。
這些特性一起為實(shí)時(shí)遷移帶來顯著的性能和效率提升。
Checked Pointer Arithmetic 檢驗(yàn)過的指針運(yùn)算
AArch64支持的特性可以重新利用保存地址的寄存器的高位。例如,Armv8.0-A中引入的Tagged Pointers和Armv8.5-A中引入的MTE。
軟件經(jīng)常需要操作指針,例如給基址加上一個(gè)偏移量。這通常使用常規(guī)的算術(shù)操作來完成,如加或減。地址計(jì)算上的溢出可能導(dǎo)致非地址位被損壞。例如,如果正在使用MTE,地址操作可能導(dǎo)致存儲(chǔ)在指針中的MTE Tag被更改。損壞的MTE Tag可能導(dǎo)致處理器無法檢測到內(nèi)存安全違規(guī),如下所示:
2023年的擴(kuò)展引入了專門用于操作指針的新指令。這些指令包含多個(gè)指針特定的檢查,包括檢查bits[63:56]是否被修改,并防止溢出。尋址模式的加載和存儲(chǔ)指令也可以被配置為保留bits[63:56]。
取之前的MTE例子,新的特性允許處理器檢測指針的前8位是否已經(jīng)被修改。這意味著,如果MTE標(biāo)簽被損壞,它將被報(bào)告回到軟件中。
其他功能
2023年擴(kuò)展部分引入的其他增強(qiáng)功能包括:
-
寄存器
+關(guān)注
關(guān)注
31文章
5343瀏覽量
120365 -
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4771瀏覽量
100766 -
人工智能
+關(guān)注
關(guān)注
1791文章
47279瀏覽量
238493 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8418瀏覽量
132634 -
ARM架構(gòu)
+關(guān)注
關(guān)注
14文章
177瀏覽量
36312
發(fā)布評論請先 登錄
相關(guān)推薦
評論