作者:Arm 工程部首席軟件工程師 Gian Marco Iodice
在持續(xù)快速發(fā)展的人工智能 (AI) 時代,Arm 堅定地支持全球數(shù)百萬開發(fā)者,確保他們能夠獲得 AI 創(chuàng)新開發(fā)所需的性能、工具和軟件庫,從而順利打造下一波令人驚嘆的 AI 體驗。為此,Arm 于近日推出了 Arm Kleidi,這是一項廣泛的軟件和軟件社區(qū)參與計劃,旨在加速 AI 發(fā)展。其中的第一個舉措是推出面向熱門 AI 框架的 Arm Kleidi 軟件庫。這使開發(fā)者可以直接取得 Arm CPU 的出色 AI 功能,而如今全球從云端到邊緣側的大多數(shù) AI 推理工作負載都在這些 Arm CPU 上運行。
Arm KleidiAI
我們所推出的開創(chuàng)性軟件庫 Arm KleidiAI,旨在提升 AI 在 Arm CPU 上的性能。KleidiAI 的命名來自于希臘語“kleidi”,意為“鑰匙”,象征其在提升 Arm CPU 上 AI 性能方面發(fā)揮著關鍵作用。在開發(fā)該項目的過程中,我們認真考慮了框架開發(fā)者的需求,致力于提供一個緊湊、有影響力且可輕松適用于各類 AI 框架的開源庫。
盡管 KleidiAI 仍處于早期階段,但已幫助 Google MediaPipe 和 XNNPACK 團隊將開源大語言模型 (LLM) Gemma 的性能提高了 25%。
我們的目標不僅僅是將 KleidiAI 打造成 AI 優(yōu)化例程的集合,更是希望該項目能成為學習 Arm CPU 上軟件優(yōu)化最佳實踐的知識庫。因此,我們誠摯邀請開發(fā)者立即加入這激動人心的學習之旅,并提供反饋意見,共同改進我們的產品。
接下來,我將詳細探討 KleidiAI 的初始功能。點擊閱讀原文,可獲取一個關鍵函數(shù)的分步運行指南,該函數(shù)用于加速 Gemma LLM 的 4 位整數(shù)矩陣乘法例程。
微內核
首先介紹 KleidiAI 庫中提供的微內核。KleidiAI 是面向 AI 框架開發(fā)者的開源庫,可以為 Arm CPU 提供經過優(yōu)化的性能關鍵型例程。這些例程是以高性能加速給定算子所需的近乎最小規(guī)模的軟件,通常稱為微內核(或 uKernel)。
以通過 Winograd 算法執(zhí)行的 2D 卷積算子為例,該計算涉及四個主要運算:

Winograd 輸入轉換
Winograd 濾波轉換
矩陣乘法
Winograd 輸出轉換
上述每個運算都是一個微內核。但為什么上述運算不叫“內核”或“函數(shù)”呢?如下圖所示,微內核一詞強調了其處理輸出張量部分的能力:

圖:微內核案例
如上圖中的兩個案例所示,微內核僅能處理整個輸出的一部分。這一設計決策支持細粒度優(yōu)化,例如,提供高效串聯(lián)多個微內核的靈活性,從而進一步提升 AI 框架的性能。
微內核可用于各種 Arm 架構、技術和計算參數(shù)。例如,在 matmul_clamp_f32_qai8dxp_qsi4cxp 文件夾中,來看下具有按通道量化功能的 Int4 矩陣乘法例程:
該文件夾包含用于 4 位整數(shù)矩陣乘法的關鍵 LLM 微內核。在該文件夾中可以看到,使用 Arm 點積或 i8mm 擴展優(yōu)化的微內核使用 Neon 匯編來盡可能提高效率,以及在處理的最小輸出塊方面有不同的多種變體。
文件夾中的每個 .c 和 .h 文件對均代表一種微內核變體。這些變體的計算參數(shù)(如塊大?。?、使用的 Arm 技術(如 Arm Neon)和特定 Arm 架構特性(如 FEAT_DotProd)各有不同。
所有微內核變體共享相同的功能和界面,從而保持一致性。一致性是易于采用的關鍵因素,接下來我將談談我們還采取了哪些其他措施來幫助框架開發(fā)者輕松集成微內核。
易于采用
我們深知,在 AI 框架中集成新庫時面臨著諸多挑戰(zhàn),如庫的大小、外部依賴關系和文檔。因此,我們努力收集合作伙伴的反饋意見,并將其納入我們的未來計劃之中,盡可能幫助開發(fā)者順暢完成集成。
為了實現(xiàn)這一點,KleidiAI 的設計原則是讓框架開發(fā)者能夠輕松集成所需的微內核。只需拉取相應的 .c 和 .h 文件,以及所有微內核共享的通用頭文件 (kai_common.h),即可集成每個微內核。我們稱之為“三文件微內核依賴” (Three-file Micro-kernel Dependency)。這樣我們便實現(xiàn)了這一目標。
您可以參考我們準備的相關指南,學習如何使用微內核。該指南探討了 4 位整數(shù)矩陣乘法微內核的使用,這有助于提高 Gemma LLM 的性能。
-
ARM
+關注
關注
135文章
9499瀏覽量
388720 -
AI
+關注
關注
89文章
38091瀏覽量
296614 -
微內核
+關注
關注
0文章
58瀏覽量
13850 -
軟件庫
+關注
關注
0文章
15瀏覽量
7940
原文標題:Arm KleidiAI 助力 AI 框架性能提升
文章出處:【微信號:Arm社區(qū),微信公眾號:Arm社區(qū)】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
Arm+AWS實現(xiàn)AI定義汽車 基于Arm KleidiAI優(yōu)化并由AWS提供支持
STM32頭文件功能解析
按鍵部分功能解析備注
數(shù)控實習教學中比例縮放功能解析
HDMI音頻功能解析
數(shù)字調音臺功能解析
智能小車有那些功能智能小車的五個功能解析包含程序
MCU的主要模塊及其功能解析
Arm成功將Arm KleidiAI軟件庫集成到騰訊自研的Angel 機器學習框架
利用Arm Kleidi技術實現(xiàn)PyTorch優(yōu)化
國產電源模塊測試軟件功能應用全面解析
Arm KleidiAI與XNNPack集成實現(xiàn)AI性能提升

Arm KleidiAI軟件庫的功能解析
評論