×

签到

分享到微信

打开微信,使用扫一扫进入页面后,点击右上角菜单,

点击“发送给朋友”或“分享到朋友圈”完成分享

漫谈人工智能边缘硬件 顶梁柱哈士奇2020-04-17 11:36:39 回复 9 查看 经验交流 行业动态 综合话题
漫谈人工智能边缘硬件
分享到:

本文首发于微信公众号:铁云文摘


这篇文章里,铁云要来详述一下人工智能边缘硬件的整体情况,本文中可能涉及较多的计算机术语,会给阅读带来一定的不便,我会尽量用通俗易懂的语言进行描述。但是如果您只是不知道图灵是谁,依然不影响阅读本文。


零 为什么只讲边缘侧


大家知道,目前的硬件大致分为三种类型



额,不好意思,这三个字是“云边端”,从市场规模上来看,云端市场价值最大,毕竟一台GPU服务器动辄上十万,配的计算卡也从一万到七八万不等,一个数据中心的投入都是上亿,超算中心的投入都是数十亿,利润率也相对较高,而终端市场则是海量规模,手机仅仅在中国,一个月的出货量都可以达到2000万台,而安防监控相机,仅仅海康一家,一年就可以销售数千万台,相反只有边缘侧的市场,看起来不温不火,不尴不尬,夹在云端的海量价值和终端的海量规模之间,感觉随时可能被这两个市场吞并。但事实上,随着人工智能的兴起,边缘侧的业务如火如荼地展开了,各大芯片厂商也推出了对应边缘侧的人工智能芯片产品。原因很简单,海量价值的云端,玩家太少,门槛太高,应用场景单一,部署成本高且不方便,海量规模的终端,玩家太多,产品以走量为主,功能单一,目前基本已经进入了红海阶段,只有介于中间的边缘侧产品,兼顾了易部署和功能多样的特点,会成为将来人工智能发展的新宠。


一 边缘侧硬件的处理器


边缘侧硬件多种多样,外观也是千奇百怪,从外表看来,就是各种各样的盒子,但是打开盒子,每一个里面的内容都不一样。本质上,这些盒子都是一台台的工业计算机,既然是计算机,那么就可以根据处理器的不同,分成几类。


我们都知道,目前市面上的处理器品牌有Intel,AMD,Arm等等,其中Intel和AMD的处理器都是X86架构,而Arm公司其实并不生产处理器,生产Arm处理器的公司是高通,海思,瑞芯微这样的企业,这两种架构也是市面上最主流的两种处理器架构。其他的,如国之重器龙芯的MIPS,以及RISC-V架构,目前都不是主流的处理器架构。


首先是大家都熟悉的Intel处理器。Intel的处理器分为至强,酷睿,赛扬,ATOM等几个系列,至强是用于服务器的高端CPU,边缘侧可能会用上,但是用上的几率很小,一般要达到边缘节点级别的规模,才会上至强低端的处理器,搭配2张左右的GPU或者AI专用卡。


酷睿级别的处理器,使用得最多的地方是我们的PC机,在边缘侧也是主要的选择之一,主要用于比较高端的应用场景。需要注意的是,我们所说的酷睿处理器,分为两种类型,说得通俗一点就是台式机用的和笔记本用的。台式机用的酷睿,和其搭配比较典型的硬件设备是标准的4U工控机,大概长这个样子。



而笔记本上用的酷睿,由于功耗较低,就比较适合用在一些对CPU要求较高的边缘侧应用场景下,其较低的功耗可以将硬件做成无风扇的形态。而无风扇的形态在边缘侧的应用中是一个很大的优势。



赛扬处理器,大家应该都听过,接触电脑比较早的朋友,可能还听过一个叫奔腾的系列,但是都不太清楚三者之间的区别,简单地说,赛扬和奔腾的区别在于频率和三级缓存。二者都是双核双线程,而奔腾和酷睿I3的区别在于频率和超线程。I3是双核四线程,I3和I5的区别在于睿频,核心数,三级缓存,I5是四核四线程。I5和I7的区别在于超线程,三级缓存和频率。I7是四核八线程。需要说明一下,这里讲的都是七代和之前的处理器。目前在边缘侧硬件中使用较多的,是六七八代处理器,所以基本上可以照着理解,或者如果上面的文字太枯燥,照着这张图来理解也行(AMD划掉)。

ATOM处理器是一代备受争议的产品,一开始Intel推出这款产品,是想把X86架构延伸到移动端设备,但是后来在和Arm的竞争中落于下风,最终逐步地放弃了这款产品,从边缘侧人工智能的角度来看,如果搭配该款处理器,也确实和端侧的人工智能设备重合较大,在很多情况下并不能很好地起到边缘侧承上启下的作用。


Arm架构,全称Advanced RISC Machine,和X86的CISC架构不同,Arm架构是一个32位精简指令集(RISC)处理器架构,由于其节能的特点,非常适合嵌入式(embedded)设备和移动设备使用,我们的安卓手机,就是采用的Arm架构的处理器。Arm处理器价格低,但是生态不如X86架构好,不过对于人工智能边缘侧的应用来说,由于大多数使用Linux操作系统,并且运行的是专用的软件,而不是通用的在市场上购买的软件,使用Arm架构基本上不会存在生态的问题,顺便说一句,现在的Arm架构处理器也是可以支持Windows操作系统的,比如高通的820就可以支持Windows10。


龙芯的MIPS,目前主要用于国防领域,也有专门的企业基于龙芯的处理器生产人工智能设备,但是由于该领域过于专业,此处不作展开,我们先了解X86和Arm的硬件设备就可以了。


二 边缘侧硬件的算力


边缘侧硬件的算力大小其实并没有一个明确的规定,从最小的可以处理两路以上摄像头的Arm小盒子,到可以插两张T4/2080Ti卡的边缘节点,都可以算作是边缘侧硬件,单纯放在一起讨论算力是毫无意义的,所以我们只能分平台来进行讨论。


Arm小盒子,是边缘侧硬件最丰富多彩的一种,也是相对便宜,相对灵活的一种。由于Arm架构的灵活性,Arm的小盒子可以是纯SOC,也可以是多SOC,还可以是SOC+AI加速卡。


就拿市面上最常见的两款Arm的SOC来说,海思的3559A和瑞芯微的3399Pro,3559A是集成了Arm的双核A73和双核A53,同时可以提供高达4T的人工智能(NNIE)算力,是一款非常适合于视频智能处理的产品,而瑞芯微的3399Pro则是集成了Arm的双A72和四A53,人工智能算力为2.4T。如果把3559A或者3399Pro用于摄像机上,则可以赋予该摄像机人工智能处理能力,但事实上如果做简单的人工智能处理,如单路人脸识别,则不需要每台摄像机上做一颗SOC,而是在多路普通相机后面接一个搭载了SOC的 embedded盒子,这就是纯SOC方案,该方案比较适合多路的单一应用。


当然,不可能所有的应用都这么简单,遇到复杂一点的算法,单颗SOC的人工智能算力就不够了,这个时候,聪明的工程师就想到了把两颗SOC或者四颗SOC放到一起,这样人工智能总算力就提升了,这就是多SOC的方案。


但是Arm小盒子里的SOC都是焊在主板上的,多SOC的方案确实很好,但是不够灵活,不能根据业务的变化增减算力,这个时候,SOC+AI加速卡的方案就比较有竞争力了。这时候的SOC,可以专心地干CPU的工作,把AI计算的工作丢给AI加速卡就行了。如果过了两年,对AI性能的要求提升了,那么换上兼容的新AI加速卡就可以实现性能的升级了。SOC+AI加速卡的方案有着灵活,可升级,AI性能强大等优点,更适合泛工业场景下的长期使用。


整体来说,Arm架构的人工智能边缘侧硬件价格较低,性价比比较高,但是受平台的影响,对其他商业软件的支持不如X86,算力上限也比较低。


X86架构边缘侧硬件,也是一种非常主流的边缘侧人工智能硬件。严格意义上来说,X86用在较为单一的人工智能应用上时,性价比不如Arm,但是有两个原因,让X86架构能在边缘侧市场里举足轻重。第一个是生态好,包括软件生态和硬件生态。如果一个人工智能边缘侧设备需要搭载一些其他的应用,比如ERP、MES或者一些其他的行业专用应用时,X86的兼容性要远远好于Arm,而在Arm进入边缘侧硬件市场前,已经有很多的X86边缘侧硬件设备服务于各行各业了,并且有一大批精通X86  embedded产品设计的工程师随时可以为X86架构的边缘侧人工智能硬件做设计。第二个是算力上限高。如果需要一台边缘节点级别的硬件,可能需要至强级别的处理器配上2张T4/2080Ti计算卡,在这个算力级别,Arm架构的产品就显得非常难应付,即使是酷睿处理器+单张PCIE3.0*16计算卡的架构,也已经超出了绝大多数Arm平台硬件设备的能力范畴。所以,即便是采用赛扬处理器的边缘侧硬件在性价比上可能不如Arm架构,但是可以选择的种类还是要多得多。


除此之外,还有一种SOM架构的产品,比如说我们熟知的Nvidia Jetson系列,都是属于SOM产品,这种类型的产品的特点是内置了所有的模块和接口,比较适合于做成应用于特定场景的专用硬件。SOM产品灵活性低,但是易于上手,且由于其有高度集成化的特点,能效比也非常高,比如即将推出的Xavier NX


以整体15W/21T的算力把其他方案远远甩在身后。要知道双Movidius Myraid X或者双思元220,单纯AI卡的功耗就超过了15W,更不用说再加上一颗CPU的功耗了。究其原因,是因为AI卡里要有单独的存储和数据分发系统,这部分系统也需要占用一定的功耗,而SOM已经把这些全部集成到模组中进行统一规划了,所以这样的产品能效比好。但是这样的产品就是主打一个或者多个行业应用场景的,如果遇到该产品不适合的行业场景,就只能在灵活性更强的架构面前甘拜下风了。


三 边缘侧硬件的形态


边缘侧硬件形态各异,大小也不尽相同,那么什么东西限定了边缘侧硬件的大小和形态呢?答案是主板。X86架构下,主板大概分为以下几种类型,ATX大母板,Micro ATX主板, Mini ITX主板和3.5寸主板。ATX大母版用于4U工控机,可以支持从赛扬到至强的CPU,AI卡则可以支持到2张T4/2080Ti,Micro ATX就比较类似于家用PC机的主板,一般不能支持至强CPU,所以就只能支持一张PCIE3.0*16的AI计算卡,Mini ITX的主板更小一些,一般用在类似于研华MIC-7700或Contec Conpro9320这样的机器上,大小大概是17*17CM,也是支持桌面级CPU和一张PCIE3.0*16的AI计算卡的,而最小的3.5寸主板一般不能支持桌面级CPU,只能支持笔记本级别功耗为15W左右的CPU,也不能支持PCIE3.0*16,一般需要把AI卡做成MXM,M.2或者Mini PCIE。当然,还有更小的,比如说Q7,Jetson nano就是借鉴了Q7的部分设计理念,但是这种类型的产品一般不能作为边缘侧硬件使用,在此不作讨论。


而Arm架构的主板就没有这么规整了,根据各家厂商的设计理念的不同,百花齐放。他们统称为 embedded 主板,所以我们看到的Arm的机型也是各式各样的。但是他们的特点就是大不了,基本上是介于Mini ITX和3.5寸主板之间的规格。


是否无风扇,在边缘侧硬件的部署上也是个很重要的问题。一般Arm架构的和3.5寸主板的机器大多可以做到无风扇设计,部分Mini ITX主板的机器也可以,ATX大母版和Micro ATX主板基本不可能做到无风扇设计,所以Arm架构和3.5寸主板的X86架构是比较容易做到宽温或者室外部署的,这就是无风扇带来的形态优势。


而基于SOM做的边缘侧硬件,则没有特定的形态,这个硬件的功能,也主要是为SOM提供外壳保护和引出SOM中的接口,所以虽然看起来形状大小千奇百怪,但是功能上基本上大同小异,比如基于XavierNX的十来种边缘侧硬件,除了接口不同,其他功能都是基本一致的,最终还是性价比高的厂商获胜。


四 边缘侧硬件的选择


选择边缘侧硬件,看起来是一件比较困难的事情,但是真正理解了硬件本身,就没有那么困难了。


架构怎么选?简单说来,技术水平高的,算力要求一般的,且不需要运行其他商业软件的可以选Arm,其他的情况下建议选择X86。要运行其他商业软件的,建议选择X86架构。如果是做成软硬件一体机,选择SOM也是一个不错的选择。


CPU怎么选?建议把所有软件和操作系统一起在想用的处理器上运行一遍,以CPU平均占用率为50%-70%为佳,需要说明的是,如果是Linux系统,上面写的占用率是指对一个核的占用率,如果是八核处理器,总占用率应该是达到800%的,此时占用率在400-600%为佳。如果占用率过低,就会出现下图的情况。



我们大多数人的家用电脑就是这么在工作的。CPU选完了,主板也就基本上可以确定了。


AI加速硬件怎么选?这是最简单的,直接测试运行即可。需要注意的是,有很多标称算力很高的AI加速硬件,实际应用的时候效果并不好,这是由于软件栈的支持不佳,这个时候千万要以测试结果为准,不能盲信厂商提供的性能数据,很有可能4T的算力连一路视频都处理不好。


剩下的就是选接口了。把所有要接的设备,对着产品的说明书统计一遍接口,就可以得出所需的接口有哪些。统计完上述的信息之后,用什么样的产品就很清楚了。如果在市面上能够发现满足需求的产品,恭喜你,如果在市面上找不到能够满足需求的产品,也很正常,那就请准备一笔NRE费用,请工业计算机厂商帮你定制吧。


我们在谈论AI的时候,总是喜欢谈论软件,算法和应用场景,却忘了人工智能硬件才是人工智能的基础,了解并选好人工智能硬件,是一件非常重要的事情,所幸的是,这件事情其实并不是很困难。当然,这篇文章只是讲了一些基本的概念,由于作者个人水平的问题,也不免有一些错漏,欢迎各位斧正,也祝各位在人工智能的道路上一帆风顺。


附上本人微信公众号二维码,欢迎交流


铁云文摘

版权所有 © 2024 寒武纪 Cambricon.com 备案/许可证号:京ICP备17003415号-1
关闭