人工智能深度学习神经网络与Soc芯片的关系


在运算能力方面,CPU是不如GPU的,FPGA也不合适。谷歌研发出的TPU芯片,就是专门针对人工智能神经网络的运算。

人工智能的算法在往下走,在逐渐降低要求;嵌入式的芯片在往上走,在逐渐提升性能,这两个很快会会师,会结合在一起,诞生出一个在嵌入式系统里面能跑的东西,这就意味着落地了。

这是一个比较深度的问题。人工智能是需要一个强大的计算能力的,要多强大呢?现在人工智能的实现原理主要是进行计算,之前所说的学习也是进行计算的过程,也是需要大量的运算。运算能力直接决定学习的速度,如果运算能力很差,可能两年都学不完;如果计算能力很好,可能一天就学完了。就跟人类大脑思考能力决定了学习能力一样,有的人十岁就已经上大学了,有的人二十都还考不上,这就是看大脑的运算能力有多强。人工智能神经网络的运算主要是卷积运算。什么是卷积运算?就是线性代数的一些矩阵运算,这些矩阵运算还会涉及到一些浮点数,所以需要海量的运算性能。是呈指数级的增长的,现在的CPU根本算不动,在运算能力方面,CPU是不如GPU的,FPGA也不合适。FPGA适合要求实时性,要求并行运算方面的,CPU适合做控制,GPU才适合做运算,所以目前人工智能的研究大多数都是用GPU加速运算的。构建一个人工智能的研究平台的时候,显卡的重要性比CPU还重要,买个显卡就需要七八千,甚至一万多,而买个CPU,最多也就两三千块,CPU已经慢慢的不如GPU了。目前总的来说,CPU,GPU,FPGA都不是特别适合人工智能,真正适合人工智能的下一代芯片目前还在研发当中,譬如谷歌研发出的TPU芯片,就是专门针对人工智能神经网络的运算,针对卷积运算的特征推出的,它天生适合做人工智能的运算。将来会有越来越多的新的芯片推出,那跟学习嵌入式的同学有什么关系呢?想一下,如果出了一个新的芯片,是不是需要移植,是不是需要开发各种底层软件,是不是需要移植开发各种底层的开发系统,是不是要做各种底层的工作,这就是嵌入式领域需要做的一些事情。

芯片厂商也会有很大的变动。大家可能没关注到,其实有发生很多故事的,现在老牌芯片巨头Intel压力就非常大,前两年他们搞物联网,推出了安腾那一套,折腾了好几年,结果什么都没有折腾出来。移动领域也彻底被arm压下去了。人工智能开始发展之后,Intel就非常着急,去年还是今年就花了好几十亿收购人工智能方面的公司。Intel跟微软都面临很大的压力。现在跟人工智能最接近的芯片领域的是nVidia(英伟达,做显卡的)。他成了领军人物,人工智能方面最好的显卡就是他们家出的。就是因为GPU比CPU更重要了,他们做的是GPU,他们就异军突起成为了领军人物,这是一个有意思的事情,前几年的时候还是个名不见经传的小公司。还有高通这几年也成长的非常快,先后收购了freescale,NXP,CSR等,也成了一个芯片巨头,但高通的这些更加趋向于工业级的,如果是做的工业,做的汽车里面的控制等等这些东西,可能用这几家芯片更加合适一点。还有一些国产的芯片厂商,像华为海思,瑞芯微,MTK等也有很多积累,也有了突破机会,将来也有可能绽放异彩。国产芯片这几年也不错,不要觉得只有外国的才厉害,中国这些年其实也有做很多厉害的东西。

人工智能发展路径将来是怎么一个路径?大概是怎么一回事,怎么去弄,是怎么样的一个构成?现阶段更多的人工智能主要是在服务器级的一个计算机上,所谓服务器级的计算机是指什么呢?CPU就不用说了,肯定至少是I7,要么就是E开头的,比I开头的还厉害的那些。都是最厉害的芯片,最厉害的CPU。显卡呢,入门级的都是五六千块的,一般都是一两万的,还有好多技术都是双显卡,四显卡,八显卡。还有几百个显卡集成在一起,串并联在一起,构成一个超级显卡矩阵。显卡上面的显存都是好几十个GB,整个电脑配内存都是32G,64G,这种级别的就叫服务器级计算机(用来打游戏超爽,呵呵)。现在都是在这种计算机上学习和测试研究,更多的是一种研究状态,还只是在科研领域,离落地还有一段距离。现阶段的人工智能还在玩这些,为什么人工智能从下围棋开始玩呢?因为下围棋是纯理论的,不需要落地。像AlphaGo下棋的时候,旁边都是有人的,当他运算出一个结果的时候,还需要有人替他落子,他自己是没有手的,他没有落地,他只有一个大脑。现阶段在服务器级别里面去运算的人工智能很显然是无法落地的,把这类的人工智能装在一个车上面怎么可能装得下呢,光他的耗电量车都扛不住。所以说如果想要人工智能落地,就需要优化算法,减少资源消耗。原来的内存需要12G,现在争取看6G能不能,可能再过两年,争取4G就可以了,2G就可以了。算法优化了,能源消耗就会变少;能源消耗变少之后,就可以部署到嵌入式当中了,也就可以落地了。这都是慢慢来的,要先在服务器里面玩清楚了,然后才会去优化算法,把它部署到嵌入式系统当中。嵌入式系统也在快速发展,譬如说nVidia,在今年三月份推出的JetsonTX2,它是一个开发板,它是一个芯片,是一个GPU。GPU是目前唯一一个能解决人工智能领域的嵌入式芯片的方案。TX2非常厉害,它比目前现有的跑人工智能的芯片的算法都要快。以后类似于这种的芯片也会越来越多,也就是说人工智能的算法在往下走,在逐渐降低要求;嵌入式的芯片在往上走,在逐渐提升性能,这两个很快会会师,会结合在一起,诞生出一个在嵌入式系统里面能跑的东西,这就意味着落地了。那么这个过程需要多久呢?也就是一两年,两三年的事儿,现在已经开始在慢慢的落地了。nVidia的TX2就有跟沃尔沃合作开发自动驾驶方面的东西,可能沃尔沃之后开发出的新一代的高端车型就具有自动驾驶功能。其实已经开始在落地了,只是目前还只有一些巨头在做,大部分的公司还没有这个资格去玩那些。国外也有一些***,一些爱好者,技术比较厉害的一些人在树莓派3等的一些典型的嵌入式系统上面去玩人工智能,例如在弄自动驾驶的一些demo。树莓派3的性能很一般,这种性能想去跑人工智能的东西就需要算法极其简化,离使用还差很远,但也是一些可以用来玩的东西。之后朱老师也会推出这么一些可以玩的东西,在资源受限的开发板上去玩一些人工智能方面的应用,这些东西是没法真的上路的,但可以学到基本的原理,把整个流程可以弄清楚。国外有少部分人在玩这个,资源都是英文的,国内还没有。微软有一个小组试图在单片机上实现人工智能,连嵌入式系统都没搞明白,就想在单片机上面搞事情,我觉得这是不靠谱的,是不看好的。在一些高性能的嵌入式设备上去跑一跑还有可能,在树莓派3上都压力山大,在单片机上就更不靠谱了。总结下来就是人工智能的发展对芯片相关开发人员是一大利好,只要是跟芯片底层开发相关的,对于他们来说,迎来了一个春天。嵌入式也是面临一波行情的,朱老师自己也产生了很多想法,也有想做跟人工智能有关的,当然,是结合嵌入式领域去发挥的一些东西。学习嵌入式的同学其实有很多事可以去做的,像自动驾驶就可以做,老师会在之后推出的专题再详细说明。