由于通用计算芯片很少对AI计算进行优化,所以在不少AI应用中,我们都需要传统意义上的AI芯片,比如GPU或者ASIC之类面积与功耗较大的产品。也正因为这些限制,这些AI芯片难以在边缘端铺开。
那么边缘AI是否可以交由MCU来完成呢?传统的MCU设计哪怕针对一些轻度AI计算来说,仍有一些吃力。所以不少MCU厂商开始发力更高性能的MCU,采用专为AI优化的设计,为边缘AI的普及添砖加瓦。
超高性能内核
考虑到不少MCU仍在使用Cortex-M4、M3乃至M0之类的低功耗内核,考虑到复杂嵌入式AI算法的算力要求,这些旧内核在这类应用中也就不太够看了。既然存在计算性能上的劣势,那么就直接从性能上突破,这几年涌现了不少基于超高性能的内核的MCU产品,比如基于Cortex-M7内核的GD32H7。
Cortex-M7内核作为Cortex-M4的继任者,基于Armv7E-M架构开发。从he心关键特性来看,在所有Cortex-M处理器中,Cortex-M7是仅有的两个6级流水线以上设计he心之一,而另一个则是7级流水线的Cortex-M85he心,基于该he心的MCU目前尚未正式面世。
兆易创新在GD32H7上将主频做到了600MHz,甚至超过了不少国外大厂的Cortex-M7 MCU,如此高主频使其足以应对边缘侧的AI算力要求,无需再集成额外的NPU了。而且为了满足AI算法的资源占用,GD32H7还配备了1024KB到3840KB的片上Flash和1024KB的SRAM。
除了Armhe心以外,像先楫半导体这样的RISC-V厂商,也推出了HPM6700/6400系列这样的RISC-V超高性能MCU。其中HPM64G0更是可以做到单核主频1GHz,支持双精度浮点运算的同时,也具备了强大的FPU和DSP扩展,足以满足不少TensorFlow Lite模型的运算需求。
多核MCU
解决性能问题的另外一个思路就是采用多核MCU设计,像意法半导体之类的厂商早在几年前就已经开始布局双核MCU产品。比如STM32H7系列,其中就有集成了Cortex-M7和Cortex-M4两个内核的产品,STM32H747/757。
这两个独立运行的he心可以分配不同的任务,比如Cortex-M7负责高性能任务,而Cortex-M4负责实时性任务。同时,借助ST提供的STM32Cube.AI工具,就能从已有的AI算法和预训练模型转换成可运行的代码。如果需要运行超过1Mbyte的更大模型,则可以分配给Cortex-M7更多的闪存。
除了双Cortex-Mhe心的设计之外,也有的厂商开始探索不同架构的he心协作的路线。比如ADI的MAX78000芯片,就选择了集成一个Arm Cortex-M4he心与一个RISC-Vhe心,除此之外,该MCU还集成了一个神经网络加速器。
而且在MAX78000上,ADI对这三大组件都做好了分工,其中Cortex-M4负责MCU的控制与处理,而RISC-V内核作为协处理器负责数据搬运,而神经网络加速器则提高CNN计算效率,这样的架构相较传统的MCU%2BDSP方案在功耗、并行性上都要更具优势。
写在zui后
虽然当下MCU市场不少玩家都已经在发力边缘AI,但厂商们也需要做好软件生态的构建,提供完备的实例代码或可用模型,实现真正的开箱即用。与此同时,MCU也还有在性能上继续改进的空间,比如不少MCU参与的边缘AI计算,只能使用预训练好的模型,什么时候MCU能在边缘端同时完成轻量训练与推理的任务,其应用空间也会更加广阔。