0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Arm KleidiAI軟件庫(kù)的功能解析

Arm社區(qū) ? 來(lái)源:Arm社區(qū) ? 2024-09-05 15:41 ? 次閱讀

作者:Arm 工程部首席軟件工程師 Gian Marco Iodice

在持續(xù)快速發(fā)展的人工智能 (AI) 時(shí)代,Arm 堅(jiān)定地支持全球數(shù)百萬(wàn)開發(fā)者,確保他們能夠獲得 AI 創(chuàng)新開發(fā)所需的性能、工具和軟件庫(kù),從而順利打造下一波令人驚嘆的 AI 體驗(yàn)。為此,Arm 于近日推出了 Arm Kleidi,這是一項(xiàng)廣泛的軟件和軟件社區(qū)參與計(jì)劃,旨在加速 AI 發(fā)展。其中的第一個(gè)舉措是推出面向熱門 AI 框架的 Arm Kleidi 軟件庫(kù)。這使開發(fā)者可以直接取得 Arm CPU 的出色 AI 功能,而如今全球從云端到邊緣側(cè)的大多數(shù) AI 推理工作負(fù)載都在這些 Arm CPU 上運(yùn)行。

Arm KleidiAI

我們所推出的開創(chuàng)性軟件庫(kù) Arm KleidiAI,旨在提升 AI 在 Arm CPU 上的性能。KleidiAI 的命名來(lái)自于希臘語(yǔ)“kleidi”,意為“鑰匙”,象征其在提升 Arm CPU 上 AI 性能方面發(fā)揮著關(guān)鍵作用。在開發(fā)該項(xiàng)目的過(guò)程中,我們認(rèn)真考慮了框架開發(fā)者的需求,致力于提供一個(gè)緊湊、有影響力且可輕松適用于各類 AI 框架的開源庫(kù)。

盡管 KleidiAI 仍處于早期階段,但已幫助 Google MediaPipe 和 XNNPACK 團(tuán)隊(duì)將開源大語(yǔ)言模型 (LLM) Gemma 的性能提高了 25%。

我們的目標(biāo)不僅僅是將 KleidiAI 打造成 AI 優(yōu)化例程的集合,更是希望該項(xiàng)目能成為學(xué)習(xí) Arm CPU 上軟件優(yōu)化最佳實(shí)踐的知識(shí)庫(kù)。因此,我們誠(chéng)摯邀請(qǐng)開發(fā)者立即加入這激動(dòng)人心的學(xué)習(xí)之旅,并提供反饋意見,共同改進(jìn)我們的產(chǎn)品。

接下來(lái),我將詳細(xì)探討 KleidiAI 的初始功能。點(diǎn)擊閱讀原文,可獲取一個(gè)關(guān)鍵函數(shù)的分步運(yùn)行指南,該函數(shù)用于加速 Gemma LLM 的 4 位整數(shù)矩陣乘法例程。

微內(nèi)核

首先介紹 KleidiAI 庫(kù)中提供的微內(nèi)核。KleidiAI 是面向 AI 框架開發(fā)者的開源庫(kù),可以為 Arm CPU 提供經(jīng)過(guò)優(yōu)化的性能關(guān)鍵型例程。這些例程是以高性能加速給定算子所需的近乎最小規(guī)模的軟件,通常稱為微內(nèi)核(或 uKernel)。

以通過(guò) Winograd 算法執(zhí)行的 2D 卷積算子為例,該計(jì)算涉及四個(gè)主要運(yùn)算:

wKgaombZYN-AVyRoAAC40BOhGsw604.png

Winograd 輸入轉(zhuǎn)換

Winograd 濾波轉(zhuǎn)換

矩陣乘法

Winograd 輸出轉(zhuǎn)換

上述每個(gè)運(yùn)算都是一個(gè)微內(nèi)核。但為什么上述運(yùn)算不叫“內(nèi)核”或“函數(shù)”呢?如下圖所示,微內(nèi)核一詞強(qiáng)調(diào)了其處理輸出張量部分的能力:

wKgZombZYPSAd_EcAADyezGJvr8344.png

圖:微內(nèi)核案例

如上圖中的兩個(gè)案例所示,微內(nèi)核僅能處理整個(gè)輸出的一部分。這一設(shè)計(jì)決策支持細(xì)粒度優(yōu)化,例如,提供高效串聯(lián)多個(gè)微內(nèi)核的靈活性,從而進(jìn)一步提升 AI 框架的性能。

微內(nèi)核可用于各種 Arm 架構(gòu)、技術(shù)和計(jì)算參數(shù)。例如,在 matmul_clamp_f32_qai8dxp_qsi4cxp 文件夾中,來(lái)看下具有按通道量化功能的 Int4 矩陣乘法例程:

該文件夾包含用于 4 位整數(shù)矩陣乘法的關(guān)鍵 LLM 微內(nèi)核。在該文件夾中可以看到,使用 Arm 點(diǎn)積或 i8mm 擴(kuò)展優(yōu)化的微內(nèi)核使用 Neon 匯編來(lái)盡可能提高效率,以及在處理的最小輸出塊方面有不同的多種變體。

文件夾中的每個(gè) .c 和 .h 文件對(duì)均代表一種微內(nèi)核變體。這些變體的計(jì)算參數(shù)(如塊大?。⑹褂玫?Arm 技術(shù)(如 Arm Neon)和特定 Arm 架構(gòu)特性(如 FEAT_DotProd)各有不同。

所有微內(nèi)核變體共享相同的功能和界面,從而保持一致性。一致性是易于采用的關(guān)鍵因素,接下來(lái)我將談?wù)勎覀冞€采取了哪些其他措施來(lái)幫助框架開發(fā)者輕松集成微內(nèi)核。

易于采用

我們深知,在 AI 框架中集成新庫(kù)時(shí)面臨著諸多挑戰(zhàn),如庫(kù)的大小、外部依賴關(guān)系和文檔。因此,我們努力收集合作伙伴的反饋意見,并將其納入我們的未來(lái)計(jì)劃之中,盡可能幫助開發(fā)者順暢完成集成。

為了實(shí)現(xiàn)這一點(diǎn),KleidiAI 的設(shè)計(jì)原則是讓框架開發(fā)者能夠輕松集成所需的微內(nèi)核。只需拉取相應(yīng)的 .c 和 .h 文件,以及所有微內(nèi)核共享的通用頭文件 (kai_common.h),即可集成每個(gè)微內(nèi)核。我們稱之為“三文件微內(nèi)核依賴” (Three-file Micro-kernel Dependency)。這樣我們便實(shí)現(xiàn)了這一目標(biāo)。

您可以參考我們準(zhǔn)備的相關(guān)指南,學(xué)習(xí)如何使用微內(nèi)核。該指南探討了 4 位整數(shù)矩陣乘法微內(nèi)核的使用,這有助于提高 Gemma LLM 的性能。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    8966

    瀏覽量

    364993
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    28875

    瀏覽量

    266191
  • 微內(nèi)核
    +關(guān)注

    關(guān)注

    0

    文章

    57

    瀏覽量

    13402
  • 軟件庫(kù)
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    7751

原文標(biāo)題:Arm KleidiAI 助力 AI 框架性能提升

文章出處:【微信號(hào):Arm社區(qū),微信公眾號(hào):Arm社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    LabVIEW運(yùn)行性能解析視頻教程

    LabVIEW運(yùn)行性能解析視頻教程認(rèn)真學(xué)習(xí),天天向上! [hide]LabVIEW運(yùn)行性能之謎.rar[/hide]
    發(fā)表于 12-10 17:39

    STM32頭文件功能解析

    頭文件功能解析1 庫(kù)文件組成內(nèi)核文件:CMSIS文件夾,core_cm3.c/core_cm3.h,stm32f10x.h,system_stm32f10x.c/system_stm32f10x.h
    發(fā)表于 08-23 07:15

    按鍵部分功能解析備注

    @藍(lán)橋杯第十屆國(guó)賽部分功能解析TOC藍(lán)橋杯第十屆國(guó)賽 部分功能解析備注: 這是本人第一次發(fā)表的文章,內(nèi)容有不足、有問(wèn)題、有改進(jìn)的地方請(qǐng)?jiān)谠u(píng)論區(qū)留言 本人將積極改進(jìn)按鍵部分:下降沿代碼
    發(fā)表于 02-16 06:17

    數(shù)控實(shí)習(xí)教學(xué)中比例縮放功能解析

    數(shù)控實(shí)習(xí)教學(xué)中比例縮放功能解析:數(shù)控實(shí)習(xí)教學(xué)時(shí),數(shù)控銑(加工中心)的比例縮放功能是教學(xué)中的一個(gè)難點(diǎn),教師難以講解清楚,學(xué)生也很難理解透徹,往往到了這一章節(jié)就一筆
    發(fā)表于 10-22 21:32 ?35次下載

    IE8三大可靠性新功能解析

    IE8三大可靠性新功能解析 微軟IE項(xiàng)目經(jīng)理Andy Zeigler今天通過(guò)官方博客探討了新版IE8的三個(gè)可靠性新功能:松散耦合式IE(LCIE)、自動(dòng)崩潰恢復(fù)、
    發(fā)表于 08-02 09:09 ?593次閱讀
    IE8三大可靠性新<b class='flag-5'>功能解析</b>

    HDMI音頻功能解析

    HDMI音頻功能解析 1.HDMI音頻功能淺析    在HDMI沒(méi)有出現(xiàn)之前,數(shù)字音頻信號(hào)的傳輸?shù)闹饕揽績(jī)煞N途徑:采用標(biāo)準(zhǔn)RCA接口的數(shù)字同軸電纜和SP
    發(fā)表于 10-20 15:16 ?6315次閱讀

    數(shù)字調(diào)音臺(tái)功能解析

    數(shù)字調(diào)音臺(tái)功能解析 本刊在此以著名的美奇D8B為例,向大家悉數(shù)諸項(xiàng)數(shù)字調(diào)音臺(tái)的代表性功能,以此作為同行深入探討數(shù)字調(diào)音臺(tái)使用的一塊“磚
    發(fā)表于 01-14 16:08 ?4825次閱讀

    KINGMAX電池安全性能解析

    KINGMAX電池安全性能解析 近期,轟動(dòng)網(wǎng)絡(luò)的連發(fā)性手機(jī)電池爆炸事件甚囂塵上,據(jù)不完全統(tǒng)計(jì)僅09年全年,全國(guó)已發(fā)生的因手機(jī)電池爆炸引起的傷人
    發(fā)表于 04-14 08:31 ?438次閱讀

    E型鐵心開關(guān)磁通電機(jī)的電磁性能解析計(jì)算_楊玉波

    E型鐵心開關(guān)磁通電機(jī)的電磁性能解析計(jì)算_楊玉波
    發(fā)表于 01-08 13:15 ?1次下載

    STM32的USB庫(kù)深入解析

    STM32的USB庫(kù)深入解析
    發(fā)表于 10-15 09:21 ?89次下載
    STM32的USB<b class='flag-5'>庫(kù)</b>深入<b class='flag-5'>解析</b>

    智能小車有那些功能智能小車的五個(gè)功能解析包含程序

    本文檔的的主要內(nèi)容詳細(xì)介紹的是智能小車有那些功能智能小車的五個(gè)功能解析包含程序主要內(nèi)容包括了:1超聲波自動(dòng)駕駛模式,2 貼墻模式,3 跟隨模式,4 紅外自動(dòng)駕駛模式,5循跡模式
    發(fā)表于 11-27 08:00 ?51次下載
    智能小車有那些<b class='flag-5'>功能</b>智能小車的五個(gè)<b class='flag-5'>功能解析</b>包含程序

    藍(lán)橋杯單片機(jī)第十屆國(guó)賽 部分功能解析

    @藍(lán)橋杯第十屆國(guó)賽部分功能解析TOC藍(lán)橋杯第十屆國(guó)賽 部分功能解析備注: 這是本人第一次發(fā)表的文章,內(nèi)容有不足、有問(wèn)題、有改進(jìn)的地方請(qǐng)?jiān)谠u(píng)論區(qū)留言 本人將積極改進(jìn)按鍵部分:下降沿代碼
    發(fā)表于 12-17 18:35 ?3次下載
    藍(lán)橋杯單片機(jī)第十屆國(guó)賽 部分<b class='flag-5'>功能解析</b>

    TI eSMO 庫(kù)Fsmopos和Gsmopos參數(shù)解析

    TI eSMO 庫(kù)Fsmopos和Gsmopos參數(shù)解析
    發(fā)表于 10-28 12:00 ?2次下載
    TI eSMO  <b class='flag-5'>庫(kù)</b>Fsmopos和Gsmopos參數(shù)<b class='flag-5'>解析</b>

    Arm RAN 加速庫(kù)(RAN Acceleration Library, RAL)通過(guò)采用 BSD 開源許可證將代碼庫(kù)正式開源

    Arm RAN 加速庫(kù)(RAN Acceleration Library, RAL)通過(guò)采用 BSD 開源許可證將代碼庫(kù)正式開源 作為 RAN 軟件中最重要的模塊,
    的頭像 發(fā)表于 07-20 17:31 ?1603次閱讀

    MCU的主要模塊及其功能解析

    MCU的主要模塊及其功能解析: 微控制器:微控制器的主要任務(wù)是控制電壓源逆變器(VSI),將來(lái)自電池的電能轉(zhuǎn)換為所需的形式。它接收駕駛員的油門指令作為主要輸入,并通過(guò)調(diào)整脈寬調(diào)制(PWM)信號(hào)
    的頭像 發(fā)表于 08-12 18:12 ?318次閱讀