分析程式碼以檢查英特爾® AMX 指令的使用情況

Collaborative Data Solutions at Canada Data Forum
Post Reply
aminakhatun26
Posts: 20
Joined: Wed Dec 04, 2024 4:51 am

分析程式碼以檢查英特爾® AMX 指令的使用情況

Post by aminakhatun26 »

英特爾最近推出了第四代英特爾® 至強® 可擴展處理器,它提供了一系列整合硬體加速器,可幫助客戶在各種用例中實現效率提升。英特爾高階矩陣擴展 (AMX) 是這些加速器之一,使用戶能夠從人工智慧工作負載中獲得最佳效能。英特爾 AMX 帶來的功能非常強大,但當今複雜的軟體解決方案很難確定它們是否利用了英特爾 AMX。本指南提供了一個簡單的過程來評估給定軟體專案是否使用英特爾 AMX。

過程觀察
英特爾的processwatch是一個實用程序,可以「即時顯示每個進程的指令組合,並將這些指令進行分類」。該實用程式允許使用者監視給定採樣視窗中所有執行的指令,並分離該視窗中運行的所有進程。報告每個執行的指令可能會導致大量的報告,因此該實用程式將指令分組並提供過濾選項以僅報告感興趣的桶。在這種情況下,我們可 希臘手機號碼列表 以專注於向量化指令桶:SSE、AVX、AVX2、AVX_512 和 AMX_TILE。

一個DNN
為了提供輕量且簡單的工作負載來測試 processwatch,我們選擇了英特爾的oneDNN專案。 oneDNN 是「一個開源、跨平台的深度學習應用程式基本建構區塊效能庫」。各種 AI/ML 框架都實作了 oneDNN,以便在英特爾硬體上運行時提供最佳化,包括 PyTorch 和 TensorFlow,這兩種框架都具有支援英特爾 GPU 的擴展,並為英特爾架構提供額外的最佳化。

基準DNN
benchdnn為 oneDNN 提供的原語提供了「一個擴展且強大的正確性驗證和效能基準測試工具」。借助這些功能,benchdnn 將允許我們評估 Intel AMX 指令和其他層級的 SIMD 指令的存在。

Image

更改 oneDNN 內的最大 CPU ISA
利用 oneDNN 的軟體解決方案可以透過 DNNL_MAX_CPU_ISA 環境變數輕鬆修改 SIMD 加速等級。此資源提供了有關不同可能的 ISA 等級的文件;在本指南中,我們將重點放在以下級別:SSE41、AVX、AVX2、AVX512_CORE 和 AVX512_CORE_AMX。

OneDNN 也提供由 ONEDNN_VERBOSE 環境變數控制的詳細模式。啟用此詳細模式可提供基元層級的統計信息,例如基元名稱、其輸入和輸出的資料精度、基元實現的名稱及其執行時間。有關 ONEDNN_VERBOSE 的更多詳細信息,您可以訪問此資源。

使用 Processwatch 監控 Benchdnn
注意:本指南使用 Ubuntu 22.04,因此說明將描述該作業系統中的過程。適應其他作業系統可能需要一些修改。

配置 Processwatch
克隆和配置 processwatch 的過程如下。請遵循特定的 git 提交,以獲得複製本指南中的步驟的最佳機會。
Post Reply