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

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

3天内不再提示

单芯片没有神经网络加速器NPU可以玩微型AI应用吗?

jf_cVC5iyAO 来源:易心Microbit编程 2024-02-20 16:40 次阅读

讲到AI相信大家第一时间多半是联想到大型语言模型(LLM)和生成式AI(genAI, AIGC)应用,可以对话聊天、查询数据、生成文章图像和音乐,而这些应用多半需要用到极大的云端算力才能完成。

对于微型AI应用,如语音唤醒(语音命令)、异常侦测(振动、异音、环境传感器)、运动侦测(手势、跌倒)、影像分类、影像对象侦测、影像姿态侦测(全身、手指)等,通常可利用单芯片(MCU)或微处理器(MPU)配合较小的AI模型就有机会办到边缘(离网)就完成推论工作。

在之前的文章中提到,AI推论主要都是在进行巨量的矩阵乘加运算(MAC),就是「a×b+c」。而加速计算方式可使用「提高工作频率速度」、「平行/向量指令集加速」、「多核心加速」、「NPU神经网络加速器」等硬件加速作法。

而一般单芯片在单核CPU的情况下,最容易达成的作法就是前两项,而本文将从「平行/向量指令集加速」的角度来为大家说明如何在没有神经网络加速器NPU时也能顺利玩微型AI应用。

1. Arm精简指令集的演进

目前市售32bit单芯片大约有八到九成都是使用Arm Cortex-M系列硅IP)完成的,不同系列分别对应到不同的指令集(ARMv6-M~v8.1-M),而「-M」就是指将该版本指令集浓缩后专门提供给单芯片使用的。相关指令集对应的IP如下所示。

ARMv6-M: Cortex M0(2009) / M0+(2012) /M1(2007)

ARMv7-M: Cortex M3(2004)

ARMv7E-M: Cortex M4(2010) / M7(2014)

ARMv8-M Baseline: Cortex M23(2016)

ARMv8-M Marnline: Cortex M33(2016) /M35P(2018)

ARMv8.1-M: Cortex M55(2020) / M85(2022) /M52(2023)

13c7fada-cfcb-11ee-a297-92fbcf53809c.jpg

Fig. 1 Arm Cortex-M 系列指令集对照表。

2. Cortex-M指令如何加速计算

其中「v7-M」指令集就开始支持单频率乘加指令MLA,即将原来需要二道指令MUL, ADD分别计算乘法和加法变成一道指令,如此就能将计算速度提升两倍。到了「v7E-M」DSP扩展指令集时开始支持单指令多数据流(Single Instruction Multiple Data, SIMD),如QADD,QADD16, QADD8等,可将32bit分拆成2个16bit或4个8bit数据一起计算,如此就能增加2~4倍计算速度。

当再搭配工作频率从数十MHz提升到数百MHz后,对于语音唤醒词(Key Word Spotting, KWS), 传感器异常侦测(AnomalyDetection, AD), 运动手势辨识(Motion / Gesture Dectection)等微型AI应用大概都能完成,但若遇到有影像类应用则远远不够。

Arm Cortex-A系列为64bit CPU,所以其上有NEON(进阶SIMD)指令集,可处理128bit或64bit的SIMD计算,让计算速度更快,但这样的指令在32bit的Cortex-M并没有支持,所以Arm在v8.1M指令中加入Helium M型向量扩展指令(M-Profile Vector Extension, MVE)来提升Cortex-M单芯片的算力。

Helium可以处理128bit的向量运算(相当于SIMD16x8bit, 8x16bit, 4x32bit),共有8个向量缓存器,可处理整数、定点数(Q7,Q15,Q31)及浮点数(半精度FP16/单精度FP32)计算,有超过150个新指令。

若为了处理128bit的向量计算就把数据总线(Data bus)及单芯片内部静态内存(SRAM)都改成128bit宽是不合理的。最简单的作法是利用四个频率周期将128bit数据当成4个32bit的数据来处理,但这样就会变成和单指令周期32bit SIMD指令没什么不同。因此Helium在向量计算时可以将加载(VLDR)和乘加(VMLA)计算进行重迭,一边加载一边计算,这样就可以再加速一倍以上。如Fig. 2右下所示。

在Cortex-M55/M85采取双节拍(Dual Beat)作法,就是1个频率周期(Clock Cycle)读取二个节拍(Beat),即2×32=64bit,所以128bit的向量要2个频率周期才能处理完成,而1个频率周期处理的内容可以是下列组合。

2个32bit(Q31定点数或32位整数或32位浮点数)

4个16bit(Q15定点数或16位整数或16位浮点数)

8个8bit(Q7定点数或8位整数)

而Cortex-M52则采单节拍(Single Beat)作法,可处理长度则减半为32bit(1x32bit, 2x16bit, 4x8bit),128bit的向量需要4个频率周期才能处理完成。

13dd6b90-cfcb-11ee-a297-92fbcf53809c.jpg

Fig. 2 Arm Cortex-M指令与加速计算示意图。

3. Helium指令集效能比较

目前有支持Helium指令的MCU共有四家公司,如下所示。

Cortex-M55:

ALIF – Ensemble E1(@160MHz), E3(@160MHz),E5(dual core,@160MHz, 400MHz), E7(dual core,@160MHz, 400MHz)

奇景(Himax) – WiseEye2 HX6538(dual Core, @150MHz, 400MHz)

新唐(Nuvoton) – NuMicro M55M1(@200MHz)

Cortex-M85:

瑞萨(Renesas) – RA8D1(@480MHz), RA8M1(@480MHz)

Cortex-M52:

None

以下就以Cortex-M7为基准(100%)和Cortex M55/M85/M52进行比较。如Fig. 3所示,横轴为传统性能(DMIPS/MHz),纵轴则为机器学习推论性能(ML Performance)。以M55为例,虽然传统性能较M7低,但机器学习性能却高出3倍,由此可看出Helium指令集提供的效能提升。

13ea542c-cfcb-11ee-a297-92fbcf53809c.jpg

Fig. 3 Arm Cortex-M 指令与加速计算示意图。

以上算力对于非影像的微型AI应用大致能满足,但若遇到影像类应用则单靠CPU的SIMD及MVE指令集可能还是不够。幸运地是以上提及的ALIF, Himax, Nuvoton的MCU都有内建Arm Ethos U55 NPU,这样就能将算力再推高数十倍,可以满足低分辨率、低频度的影像分类、对象侦测甚至姿态估测等应用。

小结

随着半导体技术的提升及配套的软件开发工具逐渐到位,利用单芯片提高工作频率及高度平行乘加运算(SIMD, MVE),开启了可以不依靠网络就能完成微型AI运算的契机,使得平价、低耗能的边缘智能装置(Edge AI & TinyML Device)有了更大的创意发挥空间,让智慧生活、智能照护、智能制造、智能建筑等更多应用能快速实现。





审核编辑:刘清

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

    关注

    2526

    文章

    48110

    浏览量

    740122
  • 加速器
    +关注

    关注

    2

    文章

    744

    浏览量

    36600
  • 神经网络
    +关注

    关注

    42

    文章

    4574

    浏览量

    98758
  • 单芯片
    +关注

    关注

    3

    文章

    390

    浏览量

    34196
  • NPU
    NPU
    +关注

    关注

    2

    文章

    210

    浏览量

    18085

原文标题:谁说单芯片没有神经网络加速器NPU就不能玩微型AI应用?

文章出处:【微信号:易心Microbit编程,微信公众号:易心Microbit编程】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    AI学习】第3篇--人工神经网络

    `本篇主要介绍:人工神经网络的起源、简单神经网络模型、更多神经网络模型、机器学习的步骤:训练与预测、训练的两阶段:正向推演与反向传播、以TensorFlow + Excel表达训练流程以及AI
    发表于 11-05 17:48

    音频处理SoC在500 µW以下运行AI

    NPU上运行的神经网络中。DBM10的双核设计具有DSP和神经处理单元(NPU)(图片:DSP Group)nNetLite可以同时针对多
    发表于 03-03 10:49

    基于BP神经网络的PID控制

    最近在学习电机的智能控制,上周学习了基于神经元的PID控制,这周研究基于BP神经网络的PID控制。神经网络具有任意非线性表达能力,可以通过
    发表于 09-07 07:43

    如何使用stm32cube.ai部署神经网络

    如何用stm32cube.ai简化人工神经网络映射?如何使用stm32cube.ai部署神经网络
    发表于 10-11 08:05

    用FPGA去实现大型神经网络的设计

    1、加速神经网络的必备开源项目  到底纯FPGA适不适合这种大型神经网络的设计?这个问题其实我们不适合回答,但是FPGA厂商是的实际操作是很有权威性的,现在不论是Intel还是Xilinx都
    发表于 10-24 16:10

    【书籍评测活动NO.18】 AI加速器架构设计与实现

    NPU架构合二为一,总结并提炼出本书内容。本书主要讨论神经网络硬件层面,尤其是芯片设计层面的内容,主要包含神经网络的分析、神经网络
    发表于 07-28 10:50

    AI加速器架构设计与实现》+第一章卷积神经网络观后感

    AI加速器架构设计与实现》+第一章卷积神经网络观感    在本书的引言中也提到“一图胜千言”,读完第一章节后,对其进行了一些归纳(如图1),第一章对常见的神经网络结构进行了介绍,
    发表于 09-11 20:34

    AI加速器架构设计与实现》+学习和一些思考

    AI加速器设计的学习和一些思考 致谢 首先感谢电子发烧友论坛提供的书籍 然后为该书打个广告吧,32K的幅面,非常小巧方便,全彩印刷,质量精良,很有质感。 前言 设计神经网络首先要考虑的几个问题
    发表于 09-16 11:11

    AI加速器架构设计与实现》+第2章的阅读概括

    。 从名字上就能看出来书里可能覆盖的内容是和CNN加速器有关的内容了。 作者在前言里说这本书主要讨论Inference(推理)的过程,“主要讨论神经网络硬件,尤其是芯片设计层面的内容”。这本书的第2,3章
    发表于 09-17 16:39

    骁龙720加入NPU神经网络计算单元 专注AI加速

    目前还没有骁龙720的具体规格资料,只知道它是骁龙710的加强版,据说重点会加入NPU神经网络计算单元(类似华为麒麟970),专用于AI加速
    的头像 发表于 07-25 16:39 3157次阅读

    Imagination发布最新神经网络加速器

    Imagination Technologies宣布推出其面向人工智能(AI)应用的最新神经网络加速器(NNA)架构PowerVR Series3NX。
    的头像 发表于 12-06 16:09 3288次阅读

    嵌入式芯片神经网络加速器如何支持本地化AI处理

    。与此同时,对于这些任务的处理也正在从传统的云端架构转移到设备本身上来,嵌入式芯片中集成了专用的神经网络加速器,可支持本地化AI处理。例如先进的驾驶辅助系统(ADAS)能够实时监控前方
    的头像 发表于 12-20 18:25 552次阅读

    美信半导体新型神经网络加速器MAX78000 SoC

        新型神经网络加速器 Maxim Integrated的新型MAX78000芯片,基于双核MCU,结合了超低功耗深度神经网络加速器,为
    的头像 发表于 01-04 11:48 2628次阅读

    神经网络加速器简述

    神经网络加速器基本概念。
    发表于 05-27 15:22 11次下载

    npu是什么意思?npu芯片是什么意思?npu到底有什么用?

    。正如CPU和GPU一样,NPU也是一种专门的处理器芯片,但不同于前二者,NPU被用于深度学习领域。NPU在深度学习领域的应用可以提高运算速
    的头像 发表于 08-27 17:03 2.6w次阅读