资讯专栏INFORMATION COLUMN

边缘计算探索:处理器,算法与内存

svtter / 1006人阅读

摘要:什么是边缘计算最近,边缘计算成为了人工智能和物联网领域非常热门的关键词。用于边缘计算的处理器要多通用是否要上专用加速器常规物联网终端节点的处理器是一块简单的,以控制目的为主,运算能力相对较弱。

什么是边缘计算

最近,边缘计算成为了人工智能和物联网领域非常热门的关键词。

人们对于人工智能和物联网的最初设想是,在云端有一个异常强大的数据中心,而物联网各个节点负责采集数据交给云端,云端在根据数据分析并做决策后再把结果发还给终端。在这种模型中,云端负责智能计算,而终端节点负责数据采集以及决策执行。

然而,这样的设想在实际实现中遇到了不少困难。第一个困难来源于数据传输的开销。物联网节点通常都使用无线网络与云端做数据传输,而如果物联网节点把不加任何处理的原始数据一股脑全部传到云端,会导致带宽需求爆炸,网络基础架构没法支撑如此高的带宽。开销的另一部分是无线传输的功耗,如果把数据不加任何处理就传输到云端,那么终端节点的无线传输模块必须支持高速无线传输,这就意味着无线模块需要很大的功耗,与物联网节点低功耗的设想不符。第二个困难在于延迟。许多节点执行的任务对于延迟非常敏感,例如无人驾驶,例如安防,在这些应用中网络传输带来的延迟(几十毫秒以上,有时候网络信号不好会带来数秒的延迟甚至掉线)无法被接受。

考虑到这些问题,边缘计算就成为了解决方案。在边缘计算中,终端节点不再是完全不负责计算,而是做一定量的计算和数据处理,之后把处理过的数据再传递到云端。这样一来延迟和带宽的问题可以解决,因为计算在本地,而且处理过的数据一定是从原始数据中进行过精炼的数据所以数据量会小很多。当然,具体要在边缘做多少计算也取决于计算功耗和无线传输功耗的折衷——终端计算越多,计算功耗越大,无线传输功耗通常就可以更小,对于不同的系统存在不同的最优值。

对于边缘计算系统,处理器、算法和存储器是整个系统中最关键的三个要素。下面我们仔细分析这几个元素。

用于边缘计算的处理器:要多通用?是否要上专用加速器?

常规物联网终端节点的处理器是一块简单的MCU,以控制目的为主,运算能力相对较弱。如果要在终端节点加边缘计算能力,有两种做法,第一是把这块MCU做强,例如使用新的指令集增加对矢量计算的支持,使用多核做类似SIMD的架构等等;第二种是走异构计算的思路,MCU还是保持简单的控制目的,计算部分则交给专门的加速器IP来完成,目前正火的AI芯片其实大部分做的就是这样的一个专用人工智能算法加速器IP。显然,前一种思路做出来通用性好,而第二种思路则是计算效率高。未来预期两种思路会并行存在,平台型的产品会使用第一种通用化思路,而针对某种大规模应用做的定制化产品则会走专用加速器IP的思路。然而,IoT终端的专用加速器IP设计会和其他领域(如手机)的专用加速器设计有所不同,因为有内存的限制(见下面分析)。

算法与内存

众所周知,目前最主流的深度神经网络模型大小通常在几MB甚至几百MB,这就给在物联网节点端的部署带来了挑战。物联网节点端处于成本和体积的考量不能加DRAM,一般用FLASH(同时用于存储操作系统等)作为系统存储器。我们可以考虑用FLASH来存储模型权重信息,但是缓存必须在处理器芯片上完成,因为FLASH的写入速度比较慢。由于缓存大小一般都是在几百KB到1MB数量级,这就限制了模型的大小,因此算法必须能把模型做到很小,这也是为什么最近“模型压缩”这个话题会这么火的原因。

如果算法无法把模型做到很小,就需要考虑内存内计算。内存内计算(in-memory computing)是一种与传统冯诺伊曼架构不同的计算方式。冯诺伊曼架构的做法是把处理器计算单元和存储器分开,需要时处理器从存储器读数据,之后在处理器处理完了数据之后再写回存储器。因此传统使用冯诺伊曼架构的专用加速器大部分也需要配合DRAM内存使用,使得这样的方案在没法加DRAM的物联网节点端难以部署。内存内计算则是直接在内存内做计算而无需把数据取到处理器里,这样就节省了内存存取的额外开销。一块内存内计算的加速器的主体就是一块大SRAM或者Flash,然后在内存上再加一些计算电路,从而直接在内存内做计算,理想情况下就能在没有DRAM的情况下跑起来相关算法。

当然内存内计算也有自己的挑战。出了编程模型需要仔细考虑之外,内存内计算目前的实现方案本质上都是做模拟计算,因此计算精度有限,FP32之类的高精度肯定是不可能了。这就需要人工智能模型和算法做相应配合,对于低精度计算(即量化计算,quantized computation)有很好的支持,避免在低精度计算下损失太多正确率。目前已经有不少binary neural network(BNN)出现,即计算的时候只有1位精度0或者1,并且仍然能保持合理的分类准确率。

另一方面,目前IoT节点终端内存不够的问题除了可以用模型压缩来解决之外,另一条路就是使用新存储器解决方案来实现高密度片上内存,或者加速片外非易失性存储器的读写速度,并降低读写功耗。因此,边缘计算也将会催生新内存器件,例如MRAM,ReRAM等等。

总结

边缘计算是人工智能和物联网结合的产物,是未来的重要趋势。未来边缘计算的关键技术,包括新处理器(强通用处理器或专用加速器),内存内计算,网络模型压缩,以及新存储器。喜欢新技术的朋友们不妨多多关注这些领域,预计会出现不少有趣的公司和技术。

欢迎加入本站公开兴趣群

软件开发技术群

兴趣范围包括:Java,C/C++,Python,PHP,Ruby,shell等各种语言开发经验交流,各种框架使用,外包项目机会,学习、培训、跳槽等交流

QQ群:26931708

Hadoop源代码研究群

兴趣范围包括:Hadoop源代码解读,改进,优化,分布式系统场景定制,与Hadoop有关的各种开源项目,总之就是玩转Hadoop

QQ群:288410967 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/4262.html

相关文章

  • 边缘计算探索理器算法内存

    摘要:什么是边缘计算最近,边缘计算成为了人工智能和物联网领域非常热门的关键词。用于边缘计算的处理器要多通用是否要上专用加速器常规物联网终端节点的处理器是一块简单的,以控制目的为主,运算能力相对较弱。 什么是边缘计算最近,边缘计算成为了人工智能和物联网领域非常热门的关键词。人们对于人工智能和物联网的最初设想是,在云端...

    YPHP 评论0 收藏0
  • 边缘计算的七项核心技术

    摘要:与云计算中心不同,广域网的网络情况更为复杂,带宽可能存在一定的限制因此,如何从设备层支持服务的快速配置,是边缘计算中的一个核心问题。边缘计算可汲取云计算发展的经验,研究适合边缘计算场景下的隔离技术。 作者:施巍松团队(张星洲、王一帆、张庆阳) 计算模型的创新带来的是技术的升级换代,而边缘计算的迅速发展也得益于技术的进步。本节总结了推动边缘计算发展的7项核心技术,它们包括网络、隔离技术、...

    leanote 评论0 收藏0
  • 边缘计算,让园区充满“智慧”

    摘要:边缘计算,让园区充满智慧边缘计算是指在靠近物或数据源头的一侧,采用网络计算存储应用核心能力为一体的开放平台,就近提供最近端服务。公布十大技术趋势,边缘计算位列其中。边缘计算可广泛应用于在智慧园区工业制造商超车联网等领域。 边缘计算,让园区充满智慧边缘计算是指在靠近物或数据源头的一侧,采用网络、计算、存储、应用核心能力为一体的开放平台,就近提供最近端服务。其应用程序在边缘侧发起,产生更快...

    李义 评论0 收藏0
  • 2020年50%的计算将在边缘完成,“边云协同”成为物联网发展的新模式

    摘要:边云协同是物联网的未来大趋势。如今在四个行业发布了多个测试床,新增个,包括边缘智能边云协同和边缘安全创新等领域。边云协同是能够促使边缘计算行业快速发展的一个主要因素之一。张宇博士认为,这就是物联网发展的摩尔定律。大量物联网设备所产生的数据洪流加大了云端的存储和计算压力,因此有人提出将存储和计算在边缘端完成的策略,边缘计算在两年前应运而生,经过两年发展目前已经在安防和工业领域初见成果,IDC预...

    dabai 评论0 收藏0
  • 首次披露!阿里线下智能方案进化史

    摘要:前言阿里巴巴机器智能实验室线下智能团队从年底开始涉及线下智能领域,从算法工程产品化业务落地多个方面入手,与合作伙伴们一起取得了一些小小的成绩。目前,该套工具作为推荐的量化工具广泛应用在阿里集团内多个线下业务场景中。 showImg(https://segmentfault.com/img/remote/1460000019246850); 阿里妹导读:AI 技术已经从互联网走向零售、...

    keelii 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<