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

明遠智睿SSD2351開發板:儀器儀表與智慧農業的創新利器
Thingy:91 X 為開發人員提供了一個經過全球認證的、多傳感器、電池供電的蜂窩物聯網原型平臺
NanoEdge AI Studio 面向STM32開發人員機器學習(ML)技術

GoPoint嵌入式開發平臺 釋放i.MX潛力 簡化Linux開發

Ampere?發布新版AmpereOne?處理器,強化AI與云計算性能
Ampere發布最新192核12內存通道AmpereOne M處理器
使用恩智浦無線FRDM開發板實現創新無線解決方案

NXP Semiconductors i.MX 93處理器特性概述

哪種嵌入式處理器架構將引領未來十年的發展?

評論