边缘AI,尤其是在微控制器上的应用,面临着资源受限的挑战。虽然人们经常谈论在这些设备上“运行AI”,但具体的细节往往缺失。本文旨在揭开这一过程的神秘面纱,重点关注在受限硬件上执行真实模型。 TensorFlow Lite for Microcontrollers (tflite-micro) 是一款流行的运行时环境,它使用 `.tflite` 格式,该格式编码了模型权重和计算图。这个计算图使用定义好的运算符,类似于处理器的指令,这些运算符通过“内核”实现。 内核的实现方式多种多样,有些针对特定硬件进行了优化。例如,简单的加法运算符可以用纯C语言实现,也可以使用ARM Cortex-M的扩展功能(如DSP(SIMD)或MVE(Helium))进行加速。这些扩展提供了并行处理能力,显著提高了性能。 对于像Alif Ensemble E3这样的配备Ethos-U NPU的设备,模型使用Vela进行编译,将运算符序列替换为一个自定义运算符,将推理卸载到NPU。这展示了优化的全貌,从基于软件的优化到专门的硬件加速。后续文章将探讨 `.tflite` 编码和内核的运行时调用。