Ampere 路線圖經(jīng)過精心設(shè)計(jì),以滿足數(shù)據(jù)中心和云計(jì)算環(huán)境不斷變化的需求,尤其是隨著 AI 推理應(yīng)用程序在幾乎每個(gè)領(lǐng)域的增長。Ampere 云原生處理器將性能、可擴(kuò)展性和能效完美結(jié)合,是現(xiàn)代工作負(fù)載的理想之選。在 Ampere 2024 年度路線圖更新視頻中,我們展示了超過 192 個(gè)內(nèi)核和 8 個(gè)內(nèi)存通道的產(chǎn)品計(jì)劃,并在 7 月下旬向媒體透露了更多路線圖相關(guān)的信息,以及 AmpereOne 的各種架構(gòu)細(xì)節(jié)。
然而,對于軟件開發(fā)人員來說,CPU 的創(chuàng)新有時(shí)會(huì)讓人感覺很抽象,與他們沒有直接的關(guān)系。在本文中,我們想分享這些硬件級(jí)功能如何與云原生應(yīng)用程序的開發(fā)人員和運(yùn)營商直接相關(guān)。讓我們探討一下 AmpereOne 處理器的一些架構(gòu)創(chuàng)新是如何向用戶空間的開發(fā)人員展示的,以及這對新開發(fā)人員和經(jīng)驗(yàn)豐富的開發(fā)人員有何影響。
內(nèi)存標(biāo)記
內(nèi)存標(biāo)記擴(kuò)展(MTE)是 一項(xiàng) Arm 架構(gòu)功能,現(xiàn)可在 AmpereOne CPU 上使用。它在芯片硬件中實(shí)現(xiàn),作為一種防御機(jī)制來檢測兩種類型的內(nèi)存安全入侵。
Arm64 上內(nèi)存標(biāo)記的好處
內(nèi)存標(biāo)記旨在通過幫助檢測和緩解內(nèi)存錯(cuò)誤來提高內(nèi)存安全性和可靠性,例如:
?緩沖區(qū)溢出:識(shí)別并阻止越界內(nèi)存訪問。
?釋放后使用 (UAF):檢測程序何時(shí)嘗試訪問已釋放的內(nèi)存塊,從而減少安全漏洞。
?內(nèi)存損壞錯(cuò)誤:有助于在開發(fā)周期的早期發(fā)現(xiàn)細(xì)微問題,從而提高軟件穩(wěn)定性。
?調(diào)試效率:提供硬件級(jí)標(biāo)記,與執(zhí)行類似功能的基于軟件的工具相比,可以減少性能開銷。
利用內(nèi)存標(biāo)記
內(nèi)存標(biāo)記是一項(xiàng)硬件功能,它要求系統(tǒng)和系統(tǒng) C 庫支持此功能并將其開放給用戶應(yīng)用程序。如果您的 system C 庫實(shí)現(xiàn)(例如 glibc)支持內(nèi)存標(biāo)記,則可以按如下方式啟用:
確保硬件和內(nèi)核支持
? 內(nèi)存標(biāo)記需要 AmpereOne CPU 或其他支持 Armv8.5-A 或更高版本的 CPU,以及使用內(nèi)存標(biāo)記支持 (CONFIG_ARM64_MTE) 編譯的 Linux 內(nèi)核。
? 您可以通過檢查 /proc/cpuinfo 中的MTE支持和內(nèi)核配置來檢查您的Linux內(nèi)核是否已經(jīng)支持內(nèi)存標(biāo)記。
? 默認(rèn)情況下,內(nèi)存標(biāo)記在某些 Linux 發(fā)行版(包括 Fedora 39 或更高版本)中可用。
在 glibc 中啟用內(nèi)存標(biāo)記
? 除了內(nèi)核支持之外,您的內(nèi)存分配庫 (通常是系統(tǒng) C 庫) 還應(yīng)支持在分配時(shí)進(jìn)行內(nèi)存標(biāo)記。2.38 版引入了對 GNU C 庫 (glibc) 中內(nèi)存標(biāo)記的支持,包含在最近 Linux 發(fā)行的版本中,包括 Fedora 39 及更高版本,以及 Ubuntu 24.04 及更高版本。
? 使用 glibc.mem.tagging 可調(diào)參數(shù)啟用內(nèi)存標(biāo)記 – 默認(rèn)情況下處于禁用狀態(tài):export GLIBC_TUNABLES=glibc.mem.tagging=3 啟用對所有支持的內(nèi)存標(biāo)簽檢查的支持。
? 這會(huì)將標(biāo)記應(yīng)用于通過 malloc 和相關(guān)函數(shù)分配的內(nèi)存。沒有適當(dāng)標(biāo)記的未授權(quán)內(nèi)存訪問將導(dǎo)致程序停止,并顯示未經(jīng)授權(quán)的內(nèi)存訪問錯(cuò)誤。
調(diào)試和測試
? 在啟用內(nèi)存標(biāo)記的情況下運(yùn)行應(yīng)用程序可能是在開發(fā)過程中識(shí)別內(nèi)存訪問沖突的有用工具。
? 您可以在運(yùn)行時(shí)使用 gdb 等調(diào)試工具檢查內(nèi)存標(biāo)簽。
在生產(chǎn)環(huán)境中運(yùn)行(可選)
? 內(nèi)存標(biāo)記可用于生產(chǎn)中,以檢測和緩解內(nèi)存安全問題,而且不會(huì)對性能造成重大影響,但用例將取決于應(yīng)用程序要求。
實(shí)際用例
最終用戶和開發(fā)人員可以利用內(nèi)存標(biāo)記來:
? 通過主動(dòng)捕獲內(nèi)存錯(cuò)誤來構(gòu)建更安全的應(yīng)用程序。
? 運(yùn)行具有增強(qiáng)內(nèi)存安全性的大規(guī)模部署。
? 以較低的運(yùn)行時(shí)間開銷補(bǔ)充其他內(nèi)存安全工具。
內(nèi)存標(biāo)記擴(kuò)展對于內(nèi)存安全和調(diào)試效率至關(guān)重要的應(yīng)用程序開發(fā)和部署來說,它改變了游戲規(guī)則。潛在的應(yīng)用領(lǐng)域包括汽車、醫(yī)療、電信等領(lǐng)域。
系統(tǒng)級(jí)緩存的服務(wù)質(zhì)量實(shí)施
系統(tǒng)級(jí)緩存 (SLC) 是單個(gè)緩存內(nèi)存池,其延遲高于 L2 緩存,但低于系統(tǒng) RAM 的延遲。服務(wù)質(zhì)量實(shí)施(QoS 實(shí)施,也稱為內(nèi)存分區(qū)和訪問管理)允許系統(tǒng)用戶聲明特定租戶只能訪問該 SLC 的上限數(shù)量。
使用此功能可幫助應(yīng)用程序作員和系統(tǒng)管理員管理不同進(jìn)程和應(yīng)用程序訪問內(nèi)存的方式,從而提供對內(nèi)存分區(qū)和隔離的精細(xì)控制。
在 Arm64 上強(qiáng)制實(shí)施 QoS 的好處
?安全性:通過提供對內(nèi)存訪問進(jìn)行分區(qū)的功能,內(nèi)存分區(qū)有助于降低側(cè)信道攻擊或試圖訪問其他進(jìn)程內(nèi)存的惡意應(yīng)用程序帶來的風(fēng)險(xiǎn)。這提高了運(yùn)行不受信任或各種工作負(fù)載的系統(tǒng)的整體安全性,因?yàn)槊總€(gè)應(yīng)用程序的內(nèi)存都可以與其他應(yīng)用程序的內(nèi)存安全隔離。
?資源管理:內(nèi)存分區(qū)提供了用于在粒度級(jí)別管理和跟蹤內(nèi)存訪問的工具。操作員可以針對系統(tǒng)的不同部分如何訪問內(nèi)存設(shè)置策略,確保關(guān)鍵應(yīng)用程序始終能夠訪問所需的資源,同時(shí)限制較低優(yōu)先級(jí)任務(wù)的內(nèi)存使用。
?多租戶系統(tǒng):在云計(jì)算和多租戶環(huán)境中,QoS 實(shí)施特別有用。它使操作員能夠在不同的虛擬機(jī)(VM) 或容器之間實(shí)施內(nèi)存訪問邊界,從而提高整體系統(tǒng)穩(wěn)定性并防止一個(gè)租戶的進(jìn)程影響其他租戶的進(jìn)程,這在共享資源環(huán)境中至關(guān)重要。
?支持大規(guī)模系統(tǒng):內(nèi)存分區(qū)通過實(shí)現(xiàn)更有效的內(nèi)存管理來增強(qiáng)系統(tǒng)的可擴(kuò)展性,尤其是在具有復(fù)雜工作負(fù)載的大型系統(tǒng)中。開發(fā)人員可以通過了解和控制其程序與內(nèi)存的交互方式來創(chuàng)建更高效的應(yīng)用程序,這可以在數(shù)據(jù)庫或AI 推理等高要求系統(tǒng)中實(shí)現(xiàn)更好的性能。
利用內(nèi)存分區(qū)實(shí)施QoS
確保硬件和內(nèi)核支持
? 要在 Linux 上使用內(nèi)存分區(qū)和 SLC QoS 實(shí)施,必須首先編譯 Linux 內(nèi)核并支持 MPAM Arm 功能 (CONFIG_ARM_MPAM)。此功能在 Linux 內(nèi)核版本 5.12 及更高版本中可用。
? 要檢查您的內(nèi)核是否支持此功能,請運(yùn)行 _grep CONFIG_ARM_MPAM /boot/config-$(uname -r)_
在內(nèi)核中啟用內(nèi)存分區(qū)
如果您的內(nèi)核支持該功能,但默認(rèn)情況下未啟用,則可能需要手動(dòng)啟用它。
? 首先,掛載 resctrl 虛擬文件系統(tǒng):_mount -t resctrl resctrl /sys/fs/resctrl _
? 現(xiàn)在,您在 /sys/fs/resctrl 中擁有一個(gè)頂級(jí)資源組,并且可以通過在此文件夾中創(chuàng)建其他目錄來創(chuàng)建其他資源組。
? 創(chuàng)建自定義資源組后,此目錄中將填充文件,您可以使用這些文件來配置要應(yīng)用于此資源組的資源策略約束。
? cpus 文件包含哪些 CPU 內(nèi)核屬于此資源組的位掩碼,而 schemata 文件定義應(yīng)用于此資源組的策略控制。例如,您可以確保專用于延遲敏感型應(yīng)用程序的核心獲得 75% 的 SLC 的 100% 帶寬,并限制其他資源組共享剩余的 25%。
實(shí)際用例
通過內(nèi)存分區(qū)實(shí)施 QoS 對于云運(yùn)營商、虛擬化技術(shù)和構(gòu)建高性能、內(nèi)存密集型應(yīng)用程序的開發(fā)人員來說是有益的。它使服務(wù)提供商能夠提供更好的性能保證,并使運(yùn)營商能夠更有效地管理資源,尤其是在多個(gè)應(yīng)用程序共享同一底層硬件的情況下。
嵌套虛擬化
嵌套虛擬化允許在虛擬機(jī)管理程序下運(yùn)行的虛擬機(jī) (VM) 充當(dāng)其他 VM 的主機(jī)。借助 AmpereOne,Ampere CPU 現(xiàn)在支持 FEAT_NV2 硬件功能(包含在 ARMv8.4-A 及更高版本中),允許網(wǎng)絡(luò)虛擬化,在 Ampere 基礎(chǔ)設(shè)施上實(shí)現(xiàn)高級(jí)工作負(fù)載。這在多種情況下特別有用。
Arm64 上嵌套虛擬化的好處
? 云平臺(tái)支持:嵌套虛擬化使云服務(wù)提供商能夠?yàn)槠淇蛻籼峁┰?VM 中運(yùn)行虛擬機(jī)管理程序的能力。客戶可以部署自定義虛擬機(jī)管理程序或進(jìn)一步虛擬化其工作負(fù)載,以提高靈活性。
? 提高測試效率:需要作系統(tǒng)內(nèi)核的應(yīng)用程序的開發(fā)人員和測試人員,包括 Hypervisor 和內(nèi)核開發(fā)人員,或 eBPF 相關(guān)項(xiàng)目的開發(fā)人員,可以在嵌套環(huán)境中驗(yàn)證他們的軟件,而無需直接訪問物理硬件,從而降低資源成本。
? 隔離和安全性:嵌套虛擬化允許應(yīng)用程序在隔離的深度嵌套環(huán)境中運(yùn)行,從而提高安全性。這在機(jī)密計(jì)算或需要通過 microVM 隔離工作負(fù)載的場景中非常有用。
? 應(yīng)用程序沙箱:在 VM 中運(yùn)行復(fù)雜應(yīng)用程序,使使用不同作系統(tǒng)的應(yīng)用程序能夠在同一云環(huán)境中一起運(yùn)行,同時(shí)最大限度地減少交互和攻擊面。
Linux 中軟件支持的可用性
與所有新的硬件功能一樣,該功能在硬件中的可用性與其在軟件中的支持需要一定的時(shí)間來實(shí)現(xiàn)。Ampere 工程師正在與生態(tài)系統(tǒng)合作伙伴合作,以確保所有客戶都能盡快使用 Ampere CPU 上的嵌套虛擬化。Linux 內(nèi)核中對嵌套虛擬化的當(dāng)前支持狀態(tài)尚不完整,但正在開發(fā)補(bǔ)丁以完成對該功能的支持。
一旦 Linux 內(nèi)核和 QEMU 在上游完全支持該功能,Linux 發(fā)行版的未來版本將自動(dòng)包含對此功能的軟件支持。
實(shí)際用例
Ampere CPU 上的嵌套虛擬化在各行各業(yè)具有各種實(shí)際應(yīng)用,特別是隨著 Ampere 和其他 ARM CPU 在云、邊緣和高性能計(jì)算環(huán)境中越來越重要。
?管理托管 Kubernetes 集群中的 VM:云服務(wù)提供商客戶除了使用容器應(yīng)用程序外,還可以使用托管的 Kubernetes 服務(wù)來管理其基于 VM 的應(yīng)用程序。
?在云中測試操作系統(tǒng)功能:虛擬機(jī)管理程序、操作系統(tǒng)內(nèi)核和 eBPF 相關(guān)項(xiàng)目的開發(fā)人員和測試人員可以在嵌套環(huán)境中驗(yàn)證其軟件,而無需直接訪問物理硬件,從而降低資源成本。- 提高容器工作負(fù)載的安全性:FirecrackerVM 等 MicroVM 使容器工作負(fù)載能夠減少與多租戶云環(huán)境中的其他租戶共享的資源,從而提供更高級(jí)別的安全性。
?基于云的嵌入式應(yīng)用程序開發(fā):嵌套虛擬化使基于 ARM 的嵌入式應(yīng)用程序(如汽車軟件)的開發(fā)人員能夠使用云基礎(chǔ)設(shè)施軟件運(yùn)行和測試其軟件,并在 VM 中運(yùn)行自定義作系統(tǒng)。
AmpereOne 的創(chuàng)新設(shè)計(jì)建立在 Ampere Altra 系列處理器的成功之上。我們在此處介紹的新功能共同使開發(fā)人員能夠利用硬件功能的最新進(jìn)展在 Arm64 上構(gòu)建更安全、更高效和可擴(kuò)展的應(yīng)用程序。隨著這些技術(shù)的成熟,它們將進(jìn)一步增強(qiáng)各行各業(yè)應(yīng)用程序的開發(fā)和部署。特別是在 AI 計(jì)算時(shí)代,為開發(fā)人員提供一流的工具是推動(dòng) AI 采用和數(shù)據(jù)中心現(xiàn)代化的關(guān)鍵。
關(guān)于 Ampere Computing
Ampere Computing 是一家現(xiàn)代化半導(dǎo)體企業(yè),致力于塑造云計(jì)算的未來,并推出了世界上首款云原生處理器。為可持續(xù)云而生,Ampere 云原生處理器兼具最高性能和最佳每瓦性能,助力加速多種云計(jì)算應(yīng)用的交付,為云提供行業(yè)領(lǐng)先的性能、能效和可擴(kuò)展性。
-
處理器
+關(guān)注
關(guān)注
68文章
19485瀏覽量
231536 -
cpu
+關(guān)注
關(guān)注
68文章
10929瀏覽量
213475 -
AI
+關(guān)注
關(guān)注
87文章
32023瀏覽量
270905 -
Ampere
+關(guān)注
關(guān)注
1文章
73瀏覽量
4584
原文標(biāo)題:通過AmpereOne?的設(shè)計(jì)創(chuàng)新為開發(fā)人員賦能并推動(dòng)AI的應(yīng)用
文章出處:【微信號(hào):AmpereComputing,微信公眾號(hào):安晟培半導(dǎo)體】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
恩智浦推出FRDM i.MX 93開發(fā)板

Ampere?發(fā)布新版AmpereOne?處理器,強(qiáng)化AI與云計(jì)算性能
Ampere發(fā)布最新192核12內(nèi)存通道AmpereOne M處理器
MSPDebugStack開發(fā)人員指南

使用恩智浦無線FRDM開發(fā)板實(shí)現(xiàn)創(chuàng)新無線解決方案

盛顯科技:異形拼接處理器和傳統(tǒng)拼接處理器有什么區(qū)別?
NXP Semiconductors i.MX 93處理器特性概述

嵌入式開發(fā)常用軟件有哪些?
C2000 ePWM開發(fā)人員指南

哪種嵌入式處理器架構(gòu)將引領(lǐng)未來十年的發(fā)展?

評(píng)論