0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Arm KleidiAI软件库的功能解析

Arm社区 来源:Arm社区 2024-09-05 15:41 次阅读

作者:Arm 工程部首席软件工程师 Gian Marco Iodice

在持续快速发展的人工智能 (AI) 时代,Arm 坚定地支持全球数百万开发者,确保他们能够获得 AI 创新开发所需的性能、工具和软件库,从而顺利打造下一波令人惊叹的 AI 体验。为此,Arm 于近日推出了 Arm Kleidi,这是一项广泛的软件和软件社区参与计划,旨在加速 AI 发展。其中的第一个举措是推出面向热门 AI 框架的 Arm Kleidi 软件库。这使开发者可以直接取得 Arm CPU 的出色 AI 功能,而如今全球从云端到边缘侧的大多数 AI 推理工作负载都在这些 Arm CPU 上运行。

Arm KleidiAI

我们所推出的开创性软件库 Arm KleidiAI,旨在提升 AI 在 Arm CPU 上的性能。KleidiAI 的命名来自于希腊语“kleidi”,意为“钥匙”,象征其在提升 Arm CPU 上 AI 性能方面发挥着关键作用。在开发该项目的过程中,我们认真考虑了框架开发者的需求,致力于提供一个紧凑、有影响力且可轻松适用于各类 AI 框架的开源库。

尽管 KleidiAI 仍处于早期阶段,但已帮助 Google MediaPipe 和 XNNPACK 团队将开源大语言模型 (LLM) Gemma 的性能提高了 25%。

我们的目标不仅仅是将 KleidiAI 打造成 AI 优化例程的集合,更是希望该项目能成为学习 Arm CPU 上软件优化最佳实践的知识库。因此,我们诚挚邀请开发者立即加入这激动人心的学习之旅,并提供反馈意见,共同改进我们的产品

接下来,我将详细探讨 KleidiAI 的初始功能。点击阅读原文,可获取一个关键函数的分步运行指南,该函数用于加速 Gemma LLM 的 4 位整数矩阵乘法例程。

微内核

首先介绍 KleidiAI 库中提供的微内核。KleidiAI 是面向 AI 框架开发者的开源库,可以为 Arm CPU 提供经过优化的性能关键型例程。这些例程是以高性能加速给定算子所需的近乎最小规模的软件,通常称为微内核(或 uKernel)。

以通过 Winograd 算法执行的 2D 卷积算子为例,该计算涉及四个主要运算:

wKgaombZYN-AVyRoAAC40BOhGsw604.png

Winograd 输入转换

Winograd 滤波转换

矩阵乘法

Winograd 输出转换

上述每个运算都是一个微内核。但为什么上述运算不叫“内核”或“函数”呢?如下图所示,微内核一词强调了其处理输出张量部分的能力:

wKgZombZYPSAd_EcAADyezGJvr8344.png

图:微内核案例

如上图中的两个案例所示,微内核仅能处理整个输出的一部分。这一设计决策支持细粒度优化,例如,提供高效串联多个微内核的灵活性,从而进一步提升 AI 框架的性能。

微内核可用于各种 Arm 架构、技术和计算参数。例如,在 matmul_clamp_f32_qai8dxp_qsi4cxp 文件夹中,来看下具有按通道量化功能的 Int4 矩阵乘法例程:

该文件夹包含用于 4 位整数矩阵乘法的关键 LLM 微内核。在该文件夹中可以看到,使用 Arm 点积或 i8mm 扩展优化的微内核使用 Neon 汇编来尽可能提高效率,以及在处理的最小输出块方面有不同的多种变体。

文件夹中的每个 .c 和 .h 文件对均代表一种微内核变体。这些变体的计算参数(如块大小)、使用的 Arm 技术(如 Arm Neon)和特定 Arm 架构特性(如 FEAT_DotProd)各有不同。

所有微内核变体共享相同的功能和界面,从而保持一致性。一致性是易于采用的关键因素,接下来我将谈谈我们还采取了哪些其他措施来帮助框架开发者轻松集成微内核。

易于采用

我们深知,在 AI 框架中集成新库时面临着诸多挑战,如库的大小、外部依赖关系和文档。因此,我们努力收集合作伙伴的反馈意见,并将其纳入我们的未来计划之中,尽可能帮助开发者顺畅完成集成。

为了实现这一点,KleidiAI 的设计原则是让框架开发者能够轻松集成所需的微内核。只需拉取相应的 .c 和 .h 文件,以及所有微内核共享的通用头文件 (kai_common.h),即可集成每个微内核。我们称之为“三文件微内核依赖” (Three-file Micro-kernel Dependency)。这样我们便实现了这一目标。

您可以参考我们准备的相关指南,学习如何使用微内核。该指南探讨了 4 位整数矩阵乘法微内核的使用,这有助于提高 Gemma LLM 的性能。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    134

    文章

    8963

    浏览量

    364953
  • AI
    AI
    +关注

    关注

    87

    文章

    28817

    浏览量

    266152
  • 微内核
    +关注

    关注

    0

    文章

    57

    浏览量

    13402
  • 软件库
    +关注

    关注

    0

    文章

    14

    浏览量

    7751

原文标题:Arm KleidiAI 助力 AI 框架性能提升

文章出处:【微信号:Arm社区,微信公众号:Arm社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    LabVIEW运行性能解析视频教程

    LabVIEW运行性能解析视频教程认真学习,天天向上! [hide]LabVIEW运行性能之谜.rar[/hide]
    发表于 12-10 17:39

    STM32头文件功能解析

    头文件功能解析1 文件组成内核文件:CMSIS文件夹,core_cm3.c/core_cm3.h,stm32f10x.h,system_stm32f10x.c/system_stm32f10x.h
    发表于 08-23 07:15

    按键部分功能解析备注

    @蓝桥杯第十届国赛部分功能解析TOC蓝桥杯第十届国赛 部分功能解析备注: 这是本人第一次发表的文章,内容有不足、有问题、有改进的地方请在评论区留言 本人将积极改进按键部分:下降沿代码
    发表于 02-16 06:17

    数控实习教学中比例缩放功能解析

    数控实习教学中比例缩放功能解析:数控实习教学时,数控铣(加工中心)的比例缩放功能是教学中的一个难点,教师难以讲解清楚,学生也很难理解透彻,往往到了这一章节就一笔
    发表于 10-22 21:32 35次下载

    IE8三大可靠性新功能解析

    IE8三大可靠性新功能解析 微软IE项目经理Andy Zeigler今天通过官方博客探讨了新版IE8的三个可靠性新功能:松散耦合式IE(LCIE)、自动崩溃恢复、
    发表于 08-02 09:09 593次阅读
    IE8三大可靠性新<b class='flag-5'>功能解析</b>

    HDMI音频功能解析

    HDMI音频功能解析 1.HDMI音频功能浅析    在HDMI没有出现之前,数字音频信号的传输的主要依靠两种途径:采用标准RCA接口的数字同轴电缆和SP
    发表于 10-20 15:16 6315次阅读

    数字调音台功能解析

    数字调音台功能解析 本刊在此以著名的美奇D8B为例,向大家悉数诸项数字调音台的代表性功能,以此作为同行深入探讨数字调音台使用的一块“砖
    发表于 01-14 16:08 4822次阅读

    KINGMAX电池安全性能解析

    KINGMAX电池安全性能解析 近期,轰动网络的连发性手机电池爆炸事件甚嚣尘上,据不完全统计仅09年全年,全国已发生的因手机电池爆炸引起的伤人
    发表于 04-14 08:31 437次阅读

    E型铁心开关磁通电机的电磁性能解析计算_杨玉波

    E型铁心开关磁通电机的电磁性能解析计算_杨玉波
    发表于 01-08 13:15 1次下载

    STM32的USB深入解析

    STM32的USB深入解析
    发表于 10-15 09:21 89次下载
    STM32的USB<b class='flag-5'>库</b>深入<b class='flag-5'>解析</b>

    智能小车有那些功能智能小车的五个功能解析包含程序

    本文档的的主要内容详细介绍的是智能小车有那些功能智能小车的五个功能解析包含程序主要内容包括了:1超声波自动驾驶模式,2 贴墙模式,3 跟随模式,4 红外自动驾驶模式,5循迹模式
    发表于 11-27 08:00 51次下载
    智能小车有那些<b class='flag-5'>功能</b>智能小车的五个<b class='flag-5'>功能解析</b>包含程序

    蓝桥杯单片机第十届国赛 部分功能解析

    @蓝桥杯第十届国赛部分功能解析TOC蓝桥杯第十届国赛 部分功能解析备注: 这是本人第一次发表的文章,内容有不足、有问题、有改进的地方请在评论区留言 本人将积极改进按键部分:下降沿代码
    发表于 12-17 18:35 3次下载
    蓝桥杯单片机第十届国赛 部分<b class='flag-5'>功能解析</b>

    TI eSMO Fsmopos和Gsmopos参数解析

    TI eSMO Fsmopos和Gsmopos参数解析
    发表于 10-28 12:00 2次下载
    TI eSMO  <b class='flag-5'>库</b>Fsmopos和Gsmopos参数<b class='flag-5'>解析</b>

    Arm RAN 加速(RAN Acceleration Library, RAL)通过采用 BSD 开源许可证将代码正式开源

    Arm RAN 加速(RAN Acceleration Library, RAL)通过采用 BSD 开源许可证将代码正式开源 作为 RAN 软件中最重要的模块,
    的头像 发表于 07-20 17:31 1598次阅读

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

    MCU的主要模块及其功能解析: 微控制器:微控制器的主要任务是控制电压源逆变器(VSI),将来自电池的电能转换为所需的形式。它接收驾驶员的油门指令作为主要输入,并通过调整脉宽调制(PWM)信号
    的头像 发表于 08-12 18:12 310次阅读