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)有了更大的创意发挥空间,让智慧生活、智能照护、智能制造、智能建筑等更多应用能快速实现。





审核编辑:刘清

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

    关注

    2550

    文章

    51046

    浏览量

    753160
  • 加速器
    +关注

    关注

    2

    文章

    799

    浏览量

    37846
  • 神经网络
    +关注

    关注

    42

    文章

    4771

    浏览量

    100723
  • 单芯片
    +关注

    关注

    3

    文章

    419

    浏览量

    34572
  • NPU
    NPU
    +关注

    关注

    2

    文章

    282

    浏览量

    18585

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

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

收藏 人收藏

    评论

    相关推荐

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

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

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

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

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

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

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

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

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

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

    多项第一!Imagination神经网络加速器通过AIIA DNN benchmark评估

    基于端侧推断任务深度神经网络处理基准测试结果中,Imagination的神经网络加速器在多个框架测试中成绩名列第一!
    的头像 发表于 07-12 15:23 5280次阅读

    嵌入式神经网络加速器的市场需求将持续增加

    随着许多嵌入式系开始变得智能且自主,以人工智能(AI神经网络为导向的嵌入式系统市场即将起飞,神经网络加速器大战一触发。
    发表于 11-22 11:40 1027次阅读

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

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

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

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

    神经网络加速器简述

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

    基于FPGA的SIMD卷积神经网络加速器

    一种基于FPGA的SIM卷积神经网络加速器架构。以YOOV2目标检测算法为例,介绍了将卷积神经网络模型映射到FPGA上的完整流程;对加速器的性能和资源耗费进行深λ分析和建模,将实际传输
    发表于 05-28 14:00 24次下载

    什么是AI加速器 如何确需要AI加速器

    AI加速器是一类专门的硬件加速器或计算机系统旨在加速人工智能的应用,主要应用于人工智能、人工神经网络、机器视觉和机器学习。
    发表于 02-06 12:47 4666次阅读

    西门子推出Catapult AI NN软件,赋能神经网络加速器设计

    西门子数字化工业软件近日发布了Catapult AI NN软件,这款软件在神经网络加速器设计领域迈出了重要一步。Catapult AI NN软件专注于在专用集成电路(ASIC)和
    的头像 发表于 06-19 11:27 849次阅读

    什么是神经网络加速器?它有哪些特点?

    )和图形处理(GPU)虽然可以处理神经网络计算,但在能效比和计算密度上往往难以满足特定应用场景的需求。因此,神经网络加速器应运而生,它通过
    的头像 发表于 07-11 10:40 478次阅读

    什么是NPU芯片及其功能

    在人工智能(AI)技术迅猛发展的今天,NPU芯片已经成为推动这一领域进步的关键技术之一。NPU芯片,即
    的头像 发表于 11-14 15:48 1022次阅读