学过计算机基础的人都知道,计算机里的CPU是一种通用芯片,不仅要计算,还要分析指令、调取数据、控制操作……总之,通用芯片干的事情非常多。生活中,我们经常听到一种评价,说一个人“样样精通,样样稀松”。对于芯片来说,也会存在类似的问题——什么活都干,就不如专攻一种活更为高效。
当我们对计算机的图形渲染和图像处理有着更高需求时,就分化出来一颗专用芯片——GPU(Graphics Processing Unit)。在GPU里面,控制模块只占很小的部分,大部分的面积都放满了运算单元。GPU工作时就是一门心思不停地处理图形图像数据就可以了,效率比CPU高多了。所以,GPU和CPU的区别,就是专才和通才的区别。这也顺应现代社会分工的趋势——待解决的问题足够重要,就值得花费宝贵的资源去专门解决。
最近十多年,随着物联网、大数据和云计算的不断发展,人工智能也走进了人们的生产生活,并发挥了越来越重要的作用。比如,手机的人脸解锁,音箱的语音控制,无人车的自动驾驶等。
由于人工智能需要“投喂”大量的数据进行训练,所以一般的通用芯片根本就处理不了。早在2014年,Facebook为了让人工智能的识别准确率接近人类水平(97.35%),采用了深度学习算法,搜集了400万张图片进行模型训练。之后,不仅训练数据的规模每年都在增长,算法的模型也更加复杂。无人驾驶技术也是如此,自动躲避障碍物并规划路线,是一个计算量非常庞大的任务。如果一辆无人车的前方20米出现一个障碍物,用CPU来计算要不要躲避的话,恐怕保险公司定损员都来到现场了,结果还没出来呢。
为了保障算力,加速AI算法,人们研发了一种专用芯片——AI芯片,全称“人工智能加速芯片”。最早的AI芯片大都是用的GPU,比如上面提到的Facebook做人脸识别。因为深度学习中常用的卷积神经网络,主要的运算就是针对很大的矩阵进行大量的乘法操作。如果能针对这个特点来处理,自然就能提高计算速度。正巧,GPU在这一点上比CPU要强很多。
虽然GPU比CPU更能加速AI算法,但现在也算是比较通用的芯片了。它的显著缺点是,并没有针对每一个人工智能问题做最佳优化,功耗和价格也比较高。所以,我们就想要更专用的芯片来提高效率,就出现了半定制化AI芯片和全定制化AI芯片。
半定制化AI芯片可以看成是一颗“万能芯片”,设计加工完成之后,还能根据实际需要修改芯片里的器件连接形式,从而构成各种不同功能的芯片。全定制化AI芯片则是根据要解决的问题专门设计一颗芯片,如果你想解决另外一类问题,就得另外再做一颗芯片才行。Google的TPU(张量处理器)就是最为著名的全定制化AI芯片。根据公开的数据,TPU比起最好的GPU来说,能有几十倍将近上百倍的性能提升,能耗也有很大的降低。
