边缘AI推理速度提高5倍,内存只需要一半

智能计算 时间:2025-10-13来源:

我第一次听说亚阈值数字设计技术是在许多个月前,但只是在相对简单的产品实现(例如手表)的背景下。当我发现 Ambiq 的人们正在利用这项技术来设计整个超低功耗处理器时,我感到震惊。

简而言之,在传统的 CMOS 设计中,晶体管使用远高于 Vth(晶体管刚刚开始传导电流的阈值电压)的电源电压在完全关断和完全开启状态之间切换,对于现代 MCU,通常为 0.8V 至 1.0V。相比之下,Ambiq 的 SPOT 电路在亚阈值区域(通常约为 0.3-0.5 V)工作,该区域的电流呈指数级小。这将有功和漏电功耗降低一个数量级或更多,同时通过仔细的晶体管级设计和自适应偏置保持功能数字逻辑。

在后面的专栏中,SPOT 平台给 Ambiq 的 Apollo510 MCU 带来了不公平的低功耗优势,我们介绍了 Apollo510 微控制器。这是 Apollo5 系列的第一个成员,它配备了支持 Helium(M-Profile Vector Extension,MVE)的 Arm Cortex-M55 内核。这个小美女提供了无与伦比的能源效率,每焦耳的推理吞吐量提高了 300 倍,并且专为处理先进的人工智能应用而构建,包括语音、视觉、健康和工业人工智能模型。最近,Ambiq 推出了 Apollo510B,它还拥有专用的蓝牙低功耗 (BLE) 5.4 无线电,可实现轻松的无线连接。

我们仍在设置场景。Ambiq 芯片的重点是嵌入式空间和边缘的人工智能,“互联网橡胶”与“现实世界道路”相遇。遗憾的是,创建大多数人工智能模型的数据科学家通常来自笔记本电脑世界,如果不是服务器世界的话。他们习惯于用 Python 而不是 C 语言运行东西。他们喜欢有一个文件系统,这在嵌入式空间(没有人能听到你的尖叫声)中是无法保证的。他们也习惯于拥有大量的计算、内存和能力,所以当他们发现自己处于“没有乐趣的区域”时,你只能想象他们的反应。

嵌入式环境让人工智能变得更加困难(来源:Ambiq)

让他们的生活更轻松的一件事是 Ambiq 的开源 AI SDK/开发工具包 neuralSPOT。这旨在简化 AI(推理)模型在 Ambiq 的超低功耗 Apollo 系列 SoC 上的开发和部署。neuroSPOT 与作系统无关(它可以在不依赖特定作系统的情况下工作),旨在用于边缘设备上的实时 AI。

让我们从数据科学家的角度来看待这个问题(祝福他们的小棉袜)。借助 neuralSPOT,他们仍然可以在笔记本电脑上“做自己的事情”。诀窍在于,他们还可以通过 USB 将 Ambiq 的评估板之一插入笔记本电脑。现在,他们可以部署该模型,像在笔记本电脑上一样对其进行测试,对其进行分析,并确保性能、内存利用率和其他一切都符合要求。

说到部署,我们还有 neuralSPOT AutoDeploy。这是 neuralSPOT SDK 中的一个实用程序,可自动执行将 TensorFlow Lite (TFLite) 模型转换为 Ambiq 设备的可部署、分析和优化的二进制文件所涉及的步骤。它旨在减少手工制作的步骤,确保一致性,并加快迭代速度。



然而,以上都不是我打算讨论的内容。我刚刚与 Ambiq 的 AI 副总裁 Carlos Morales 聊天,他很友善地向我介绍了最新、最伟大的事情,这些事件将塑造下一波边缘 AI 浪潮。这里的热门新闻是 Ambiq 最近推出了两种新的边缘 AI 运行时流程:HeliaRT 和 HeliaAOT。

替代运行时流(来源:Ambiq)

“但什么是边缘 AI 运行时?”我听到你哭了。我很高兴你问。它是在终端设备上执行模型的代码(在边缘 AI 的情况下,“执行模型”意味着“执行推理”)。

让我们从传统流程开始。在“顶部”(嗯,在上图的顶部),我们有一个行业标准 TensorFlow Lite (TFLite) 格式的 AI 模型。在“底部”,我们有将执行模型的处理器——在本例中是带有 Helium 扩展的 Ambiq 处理器。

从概念上讲,在处理器的正上方,我们有一个内核库。这让我们回到了“什么时候内核不是内核?在嵌入式世界中,术语“内核”通常是指作系统 (OS) 的核心部分,即管理任务和线程、处理中断和计时以及协调内存等资源的部分。然而,在 AI/ML/DSP 圈子中,同一个词指的是数学例程(例如,卷积、乘法-累加)。

出于这些讨论的目的,我们可以将内核视为一个低级数学函数,它执行 AI/ML 模型内部使用的基本数值运算——通常是在张量(多维数字数组)上。

在传统的 Arm 空间中,基本内核库被称为 cmsis-nn(其中“nn”代表“神经网络”)。在上图中将其注释为“vanilla”的原因是创建和维护此内核库的人员需要容纳每个人,这意味着他们最终在很大程度上会进行通用优化。

现在观察标有“TenserFlow Lite for Microcontrollers (TLFM)”的块。这是一个解释器形式的边缘 AI 运行时,大小约为 30KB。我们所说的“解释器”是指直接逐行或逐条指令读取和执行代码的程序,而不是先将其编译成二进制文件。正是这个运行时决定了从 cmsis-nn 库中使用哪些内核。

就 HeliaRT 而言,Ambiq 的人们基本上分叉了开源 TFLM,然后对其进行了优化。同时,他们分叉了 cmsis-nn 内核库以形成自己的 ns-cmsis-nn 等效库(“ns”代表“neuralSPOT”),并对其进行了优化。请记住,TFLM 和 cmsis-nn 的创建者和维护者希望让每个人都开心。相比之下,Ambiq 的人并不关心让任何人开心......当然,除了他们自己的客户。

这对用户来说意味着,至少对 Ambiq 的客户来说,他们可以更换他们已经在使用的 TFLM,插入 HeliaRT,一切都会自动运行得更快。“快多少?我听到你哀怨地哭泣。“快五倍甚至更多!”我兴高采烈地回答。

考虑下图。每个比较都经过归一化,以显示 TFLM 为 100%。即使在每个人都针对其进行优化的行业标准基准测试(VWW、KWS 和 IC)的情况下,HeliaRT 的速度也提高了 ~2% 到 5%,而在实际模型的情况下,这种改进增加到 500% 或更多。

HeliaRT 提高性能(来源:Ambiq)



但是等等,还有更多,因为 Ambiq 的小伙子们还推出了 HeliaAOT,其中“AOT”代表“提前”。它接受与其他流相同的 TFLite 模型,但将其转换为 C。用户喜欢这一点,因为这意味着他们可以将此 C 代码与其他 C 代码合并,并且它看起来就像任何其他 C 函数一样,而不是需要解释器的“黑匣子”。

按模型和内部版本划分的总内存使用量(来源:Ambiq)

此 HeliaAOT 流提供与 HeliaRT 流相同或更好的性能,但内存占用要小得多。

当我们在这里时,忽视“粒度”的概念将是我们的失职。事实上,这有两个方面——内存粒度和执行粒度。让我们从记忆开始。在嵌入式解释运行时的情况下,内存最终被视为两个“大斑点”(我希望我不要太技术化)。也就是说,所有权重都将存储在一种类型的内存(无论是 MRAM、TCM、SRAM 还是 PSRAM)上。同样,所有模型 RAM 都将存储在 TCM、SRAM 或 PSRAM 中。相比之下,对于 HeliaAOT,您可以灵活地将与不同层关联的权重和模型内存放在最合适的内存类型中。 

粒度很好(来源:Ambiq)

现在,让我们考虑可执行粒度的概念。通常,嵌入式和/或边缘设备一次不会只运行一个模型,它们中的大多数同时运行多个模型。好吧,我说“同时”与“空中引号”是因为解释运行时要求您在切换到下一个模型之前运行每个模型。如果每个模型消耗相同的时间(例如 1 毫秒),这可能还不错,但例如,如果一个模型消耗 50 毫秒,而其他模型都需要 1 毫秒到 5 毫秒,则效果不佳。

就 HeliaAOT 而言,每个模型只是一堆 C 调用(好吧,与这些 C 调用关联的机器代码),这意味着您(或您的作系统,如果您的设备上存在作系统)可以根据需要在模型之间来回切换。

还有很多话要说——恐怕我们只触及了这个话题的表面——但我不想过时,所以我认为现在是停下来思考我们迄今为止所学到的东西的好时机。与往常一样,我很想听听您对这一切的看法。

关键词: 边缘AI 推理速度 内存

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版