TinyML设备设计的Arm内核

Arm cores designed for TinyML devices

Arm推出了两个新的IP核,旨在为终端设备、物联网设备和其低功耗、成本敏感的应用程序提供机器学习的动力。Cortex-M55微控制器核心率先采用Arm的氦矢量处理技术,而Ethos-U55机器学习加速器则是该公司现有Ethos NPU(神经处理单元)家族的微型版本。两个核心设计为一起使用,尽管也可以单独使用。             

在微控制器和其成本敏感、低功耗资源受限的设备上实现人工智能和机器学习应用被称为tinyML领域。随着5G的兴起,终端设备的智能化趋势开始显现,tinyML有望以指数级的速度成长为一个包含数十亿消费者和工业系统的市场。

“当回首五年后,可能都同意这一次标志着计算领域真正的范式变革,”Arm物联网和嵌入式的高级主管thomasensergueix说。“在几年内就看到了人工智能如何彻底改变了数据分析在云端的运行方式,大多数人口袋里都有一部人工智能增强型智能手机,现在是下一步,为各地的人工智能做好准备。”

智能家居设备,如智能音箱,将越来越能够自己进行机器学习推理

机器学习,包括语音识别和计算机视觉应用,将越来越多地发生在微控制器中。一系列的微控制器替代品如雨后春笋般涌现,基于Arm内核和其处理器,Arm正瞄准这两个新内核。

Ensergueix说:“知道,端点级别的所有数据都不能回到云端。“家庭或智能城市中的摄像机每天都会产生千兆字节的数据,而基础设施并不是为这种上游数据流而建的。确信,需要的是扩展到数十亿或万亿的物联网终端,将需要直接在物联网终端的人工智能推断能力。需要安全。”

Cortex-M55

Cortex M-55是Arm著名的Cortex-M系列微控制器的最新补充,被设计成Arm最具人工智能能力的Cortex-M内核。

M55是第一款使用Arm新的氦矢量处理技术的机型,与前几代Cortex-M相比,该技术的DSP性能提高5倍,ML性能提高15倍。基于Armv8.1-M体系结构,可以创建自定义指令来针对特定的工作负载优化处理器,也许可以压缩掉最后一次断电。

结合M55和U55利用了M55增加的DSP马力,可以用于信号预处理。然而,M55本身可以运行神经网络工作负载。具有INT8数字的专用指令,包括在机器学习应用中常用的点积。

一个成功的AIoT应用“不仅取决于良好的计算性能,而且还取决于能否在正确的时间获得正确的数据、正确的系数和正确的机器学习权重,因此处理器的内存接口已经过优化,能够处理所有进出的数据。在这方面,比其任何Cortex-M核心都更有能力,”Ensergueix说。

Cortex-M55和Ethos-U55的组合对于手势识别、生物识别和语音识别等应用具有足够的处理能力。

Ethos-U55

Ethos-U55被称为Arm的首款“微型NPU”,提供高达0.5的最高加速度(基于16nm或7nm等更小的几何结构,运行频率为1GHz)。Arm还没有公布能效数据(TOPS/W)。是可配置的-可以使用32到256个乘法累加单元(mac)-有一个重量解码器和直接内存访问,用于动态权重解压缩。

Ethos-U55加入了Ethos N77、N57和N37,相比之下,分别提供了4个、2个和1个TOP。性能可以通过使用多个etos内核进行扩展。

Cortex-M55和Ethos-U55设计用于一起使用,但也可以单独使用。

M55和U55这两个新的内核被设计为可以一起使用,可以比任何上一代Cortex-M设备更快地处理ML任务。Arm表示,与单独使用Cortex-M7相比,使用ML的端到端语音助手应用程序的速度提高了50倍,而且功率效率提高了25倍。

Arm机器学习小组副主席史蒂夫·罗迪解释说:“Cortex-M将运行应用系统代码,然后当需要处理神经网络工作负载时,该程序的命令流被放入SRAM中,向U55发出一个中断,这里,开始执行这个命令流。”。“这可能是单一模型的单一推论。U55运行完成,将结果返回SRAM,然后让Cortex-M接管。也可能是在处理流式数据(可能是音频或视频)时连续运行的情况。”

基于这些新核心的硅应该在2021年初上市。

TinyML设备设计的Arm内核的更多相关文章

  1. ARM内核全解析,从ARM7,ARM9到Cortex-A7,A8,A9,A12,A15到Cortex-A53,A57

    转自: ARM内核全解析,从ARM7,ARM9到Cortex-A7,A8,A9,A12,A15到Cortex-A53,A57 前不久ARM正式宣布推出新款ARMv8架构的Cortex-A50处理器系列 ...

  2. ARM内核和架构都是什么意思,它们到底是什么关系?

    ARM产品越来越丰富,命名也越来越多.很多朋友提问: ARM内核和架构都是什么意思?内核和架构的关系是什么?比如ARMv7架构,这个架构指的是什么?小编选出了几个精彩回答!希望对嵌友们在选择设计电路时 ...

  3. 关于ARM内核与架构的解释

    本文摘自某论坛某位大神的一段回复,经典至极,copy来己用! 只要你玩过ARM内核的芯片,那么关于内核和架构,我想应该或多或少的困惑过你,看了下面的介绍,你应该会清楚很多! 好比你盖房子,刚开始因为水 ...

  4. ARM内核和架构

    转:深入浅谈,CPU设计原理          CPU的内部架构和工作原理 推荐一本书:编码的奥秘 一.ARM内核和架构 ARM产品越来越丰富,命名也越来越多.很多朋友提问: ARM内核和架构都是什么 ...

  5. 【ARM】---关于ARM内核与架构的解释

    本文摘自某论坛某位大神的一段回复,经典至极,copy来己用! 只要你玩过ARM内核的芯片,那么关于内核和架构,我想应该或多或少的困惑过你,看了下面的介绍,你应该会清楚很多! 好比你盖房子,刚开始因为水 ...

  6. ARM内核全解析

    前不久ARM正式宣布推出新款ARMv8架构的Cortex-A50处理器系列产品,以此来扩大ARM在高性能与低功耗 领域的领先地位,进一步抢占移动终端市场份额.Cortex-A50是继Cortex-A1 ...

  7. Linux内核剖析(四)为arm内核构建源码树

    前面说到要做linux底层开发或者编写Linux的驱动,必须建立内核源码树,之前我们提到过在本机上构建源码树—-Linux内核剖析(三),其建立的源码树是针对i686平台的,但是我么嵌入式系统用的是a ...

  8. ARM内核全解析,从ARM7,ARM9到Cortex-A7,A8,A9,A12,A15到Cortex-A53,A57【转】

    转自:http://www.myir-tech.com/resource/448.asp 前不久ARM正式宣布推出新款ARMv8架构的Cortex-A50处理器系列产品,以此来扩大ARM在高性能与低功 ...

  9. 手把手教你使用eclipse+qemu+gdb来单步调试ARM内核【学习笔记】

    平台信息:linux4.0 平台:qemu 作者:庄泽彬 说明:笨叔叔的Linux视频的笔记 一.编译linux源码 export CROSS_COMPILE=arm-linux-gnueabi- e ...

随机推荐

  1. (2) arm 指令条件码

    条件码助记符 标志 含义 EQ Z=1 相等 NE Z=0 不相等 CS/HS C=1 无符号数大于或等于 CC/LO C=0 无符号数小于 MI N=1 负数 PL N=0 正数或0 VS V=1 ...

  2. FlinkSQL使用自定义UDTF函数行转列-IK分词器

    一.背景说明 本文基于IK分词器,自定义一个UDTF(Table Functions),实现类似Hive的explode行转列的效果,以此来简明开发过程. 如下图Flink三层API接口中,Table ...

  3. Python内置函数(Built-in Function)

    直接查看编码以及示例: 1 """ 2 内置函数 Built-in Function 3 """ 4 5 # abs() 取绝对值 6 pr ...

  4. Mybatis学习之自定义持久层框架(五) 自定义持久层框架:封装CRUD操作

    前言 上一篇文章我们完成了生产sqlSession的工作,与数据库的连接和创建会话的工作都已完成,今天我们可以来决定会话的内容了. 封装CRUD操作 首先我们需要创建一个SqlSession接口类,在 ...

  5. UVA OJ 623 500!

    500!  In these days you can more and more often happen to see programs which perform some useful cal ...

  6. getInstance()得理解

    使用getInstance()方法的原因及作用 https://www.cnblogs.com/roadone/p/7977544.html 使用getInstance()方法的原因及作用 https ...

  7. 成功的多项目管理都有哪些"制胜之道"?

    实施多项目管理,一个重要原因就是提高项目的效率和管理水平.除了满足时间.成本.业绩和客户需求之外,项目管理办公室(PMO)经理的预期产出还包括有效利用组织资源.下面是影响多项目管理成功的几个关键因素, ...

  8. [python3.7]列表

    >>> a['aaa']>>> b=['aasd','sss','cc']>>> a.extend(b)>>> a['aaa', ...

  9. 《SystemVerilog验证-测试平台编写指南》学习 - 第3章 过程语句和子程序

    <SystemVerilog验证-测试平台编写指南>学习 - 第3章 过程语句和子程序 3.1 过程语句 3.2 任务.函数以及void函数 3.3 任务和函数概述 3.4 子程序参数 3 ...

  10. Redis 安装和启动

    Redis 安装 安装准备: redis 压缩包 官网下载地址:https://redis.io/download 安装步骤: 第一步:安装 gcc 编译器 官网发布的 Redis 压缩包是 C 语言 ...