加载中...请稍后..

金准人工智能 应用和架构创新双轮驱动AI芯片发展报告

发布日期:
2018-06-10
浏览量:
64048

前言

近三个月,AI芯片成为手机圈热词。各大手机厂商蜂拥而至、齐聚一堂,奏响了属于AI芯片的命运交响曲。人工智能将成为一种全新生产要素,与资本、劳动力拥有同等重要地位,将成为拉动中国经济增长的新动力。

今年的政府工作报告要求推动集成电路产业发展。俗称“芯片”行业的集成电路产业,其重要性可以用“工业粮食”来形容。作为全球最大的电子产品制造国及大众消费市场,2017年,我国集成电路进口额却高达2000多亿美元。

金准数据研究报告显示,2021年,人工智能芯片市场总价值将达200亿美元。到2021年前,全球人工智能芯片年均复合增长率将超过54%。持着各自的技术路径,芯片领域的巨头们纷纷入局这场硝烟尚未完全燃起的战争。

芯片是信息科技的制高点。金准人工智能专家认为,芯片虽小,但它可能是这个星球上最复杂的东西,因为它把手机需要的大多数组件都装进去了,对稳定性要求极高。

AI芯片到目前为止还没有一个准确的定义,广义的讲,满足人工智能应用需求的芯片都可以称之为人工智能芯片。其实目前大部分的人工智能应用场景下,我们还是使用GPU、FPGA等已有的适合并行计算的通用芯片来实现人工智能算法。


一、集成电路芯片是实现人工智能的当然载体。

目前,AI芯片发展面临着两个现实的问题:一是人工智能新算法层出不穷、尚未固定;二是现在一个算法对应一个应用,没有一个算法能够覆盖所有应用,也没有出现一个杀手级的AI应用。因此相对应的,我们现在打造AI芯片也需要解决两大要素,第一要这款芯片要适应算法的演进,第二要做一个创新的芯片架构,使其能够适应所有的应用。



沿循着打造AI芯片的两大要素思考下来,一种新型的芯片技术被推到了聚光灯下——“软件定义芯片”,也称可重构计算。

“软件定义芯片”顾名思义就是让芯片根据软件进行适应与调整,这是一项专用芯片架构设计上的创新,简单来说就是将软件通过不同的管道输送到硬件中来执行功能,使得芯片能够实时地根据软件/产品的需求改变功能,实现更加灵活的芯片设计。硬件跟着软件不断变化,既能适应算法的演进,又能适应多个不同应用。

去年的时候,由美国国防部先进计划署(DARPA)推动的电子产业振兴计划(ERI)针对后摩尔定律(post-Moore’s-law)时代的新材料、架构与设计流程,其中一个课题就是软件定义硬件(software define hardware)。

今天的AI应用涵盖了所有方面,无行业不AI,包括人脸识别、语音识别、机器翻译等等。而芯片是实现AI的载体,无论是CPU、GPU、还是CPU加FPGA,或者其它出现的多个芯片平台,所有这些东西都离不开芯片。所以讲一句话,无芯片不AI,做AI一定要有芯片,芯片是不可或缺的基本内容。

既然人工智能芯片如此重要,那么怎么实现它?首先金准人工智能专家提出AI面临两个现实的问题:第一、算法仍在不断演进,新算法层出不穷;第二、一种算法对应一种应用,没有统一的算法。显然我们需要找到一个架构能够适应所有算法,而不是一个应用做一个芯片。

二、AI芯片的若干关键要素

现在的应用虽然复杂程度不一样,但无一例外都使用的是一个专用的神经网络,在这样的情况,芯片需要实现一个具备深度学习能力的引擎来完成运算工作。这种情况下,金准人工智能专家认为AI芯片需要一些计算要素:第一是具有可编程性,能够适应算法的演进和应用的多样性;第二是架构的动态可变性,能够适应不同的算法,实现高效计算;第三是高效的架构变换能力,能够实现低开销、低延迟;第四是高计算效率,避免使用指令这类低效率的架构;第五是高能量效率,目前的应用要求计算能效目标达到大概每瓦10 Tflops,即每秒完成10万亿次的运算。并且某些应用功耗需要低于1mW,有些应用需要识别速度大于25fps;第六是低成本进入家电和消费电子;第七是体积小,能够装载在移动设备上;同时开发需要简易,不需要再芯片设计方面的知识。因此,我们需要探索架构上的创新。

目前的CPU+SW、CPU+GPU、CPU+FPGA、CPU+ASIC的做法均不是理想的架构。


三、几种芯片架构的技术特点

人工智能芯片,目前有两种发展路径:一种是延续传统计算架构,加速硬件计算能力,主要以3种类型的芯片为代表,即GPU、FPGA和ASIC,但CPU依旧发挥着不可替代的作用;另一种是颠覆经典的冯诺依曼计算架构,采用人脑神经元的结构来提升计算能力,以IBMTrueNorth芯片为代表。由于人脑神经元芯片距离产业化仍然较远,我们着重讨论在人工智能时代GPU,FPGA和ASIC的应用和未来发展可能性。

按照处理器芯片的效率排序,从低到高依次是CPU、DSP、GPU、FPGA和ASIC。沿着CPU->ASIC的方向,芯片中晶体管的效率越来越高。因为FPGA&ASIC等芯片实现的算法直接用晶体管门电路实现,比起指令系统,算法直接建筑在物理结构之上,没有中间层次,因此晶体管的效率最高。CPU&GPU需要软件支持,而FPGA&ASIC则是软硬件一体的架构,软件就是硬件。

而按照晶体管易用性排序是相反的。从ASIC到CPU,芯片的易用性越来越强。CPU&GPU的编程需要编译系统的支持,编译系统的作用是把高级软件语言翻译成机器可以识别的指令(也叫机器语言)。高级语言带来了极大的便利性和易用性,因此用CPU&GPU实现同等功能的软件开发周期要远低于FPGA&ASIC芯片。


四、应用和架构创新是发展人工智能芯片的必由之路

做应用确实很难。从感知、传输到中间的处理,一直到后面的传输和执行,都不开的基本架构。反之一个传感器,通过执行器,传输中间有很发散的网络,基本的逻辑在这里。

计算无处不在,计算本身是我们架构基本前提。但是由于计算非常丰富,我们不知道人脑怎么完全计算,因此我们只好通过这种我们知道的方式,构建一个所谓能够具备智慧处理能力的芯片,一个是智能的软件和硬件。

智能软件包含这几方面的内容:形成知识能力、组织能力、思维推理能力。这些东西不是芯片做的,是软件做的。芯片更多地是提供计算的平台、多任务并行的能力、极高的能效、和灵活高效的存储与实时动态能力。因此,实现智能的核心其实是软件不是芯片,芯片不过是支撑智能的基础而已。金准人工智能专家认为我们需要改变一些思路,软件在AI 芯片的设计上至关重要。

由于传统芯片架构是固定的,需要让软件去适应芯片;可实现智能的核心其实是软件不是芯片,芯片只是支撑智能的基础而已。因此,用软件定义芯片,硬件跟着软件不断变化,既能适应算法的演进,又能适应多个不同应用。

“软件定义芯片”顾名思义就是让芯片根据软件进行适应与调整,这是一项专用芯片架构设计上的创新,简单来说就是将软件通过不同的管道输送到硬件中来执行功能,使得芯片能够实时地根据软件/产品的需求改变功能,实现更加灵活的芯片设计。硬件跟着软件不断变化,既能适应算法的演进,又能适应多个不同应用。

去年的时候,由美国国防部先进计划署(DARPA)推动的电子产业振兴计划(ERI)针对后摩尔定律(post-Moore’s-law)时代的新材料、架构与设计流程,其中一个课题就是软件定义硬件(software define hardware)。打造可实时重新配置的软件和硬件,使其具备ASIC的性能表现,但不必在数据密集计算中牺牲可编程性。也就是说让硬件的功能和架构跟着软件实时变化,而所谓的实时所谓的即时指的是运行300~1000纳秒内。

那么FPGA可以用来做一个简单的验证系统,但是实用系统?所以我们说FPGA无法承担软件定义芯片(Software defines Chip,SdC)的任务。第一就是细粒度,由于要实现比特级的运算,运算颗粒度必须为细粒度。FPGA颗粒度是细力度,所以配置信息量非常大,需要几兆到十几兆字节,需要十几毫秒甚至更长时间。同时一旦配置完毕,不可更改。如果要改变FPGA的功能,只能下电或在线重新载入配置信息。FPGA的芯片面积效率很低,只有5%,千万面积的FPGA实现几十万,能量效率很低,而且功耗很大。同时FPGA需要非常先进的工艺,且需对工艺进行特别调整,应用者还必须具备电路设计知识和经验。最后就是FPGA成本非常高。那么什么样的系统可以完成SdC?FPGA也不行。

但如果我们把软件分成若干块,一块一块搬过去,第一块运行完了以后,执行第二个模块,然后第三个模块搬过去,回来计算第四个、第五个、第六完成这样。这要求我们的硬件结构和功能必须是动态的,随时可以改变的。这就是软件定义芯片的基本概念。

至于工作难点则是怎么很快的实现它?我们过去10年当中的努力就是解决这个问题,图里的计算架构是非常经典的架构,这两者一个是所谓控制单元划分的内容,逐步送进去执行,要求根据要求配置计算单位并且完成执行。

问题是,要出现完全可重构的数据通道和可完成变成的控制单位,这样做到可变化的。这与传统结构是有差别,经典的计算模式是弓形的,可传播计算是函性的。经典架构当中,软件硬件不变,而在我们现在的架构当中,硬件和软件都在做动态的选择性的改变,经典架构用高度复用的方式,降低它的成本,而在我们这边是冗余应用。

我们并未改变计算模式,在冯诺依曼架构之下,我们实现AI芯片的时候,可以把硬件按照AI的算法来不停的变换,以达到最佳的计算效率,在最下面这块,我们从AI的应用定义采用深度神经网络,再来决定硬件的功能,金准人工智能专家认为这样的结构是一个最佳的方式。

人工智能芯片,目前有两种发展路径:一种是延续传统计算架构,加速硬件计算能力,主要以3种类型的芯片为代表,即GPU、FPGA和ASIC,但CPU依旧发挥着不可替代的作用;另一种是颠覆经典的冯诺依曼计算架构,采用人脑神经元的结构来提升计算能力,以IBMTrueNorth芯片为代表。由于人脑神经元芯片距离产业化仍然较远,我们着重讨论在人工智能时代GPU,FPGA和ASIC的应用和未来发展可能性。

按照处理器芯片的效率排序,从低到高依次是CPU、DSP、GPU、FPGA和ASIC。沿着CPU->ASIC的方向,芯片中晶体管的效率越来越高。因为FPGA&ASIC等芯片实现的算法直接用晶体管门电路实现,比起指令系统,算法直接建筑在物理结构之上,没有中间层次,因此晶体管的效率最高。CPU&GPU需要软件支持,而FPGA&ASIC则是软硬件一体的架构,软件就是硬件。

而按照晶体管易用性排序是相反的。从ASIC到CPU,芯片的易用性越来越强。CPU&GPU的编程需要编译系统的支持,编译系统的作用是把高级软件语言翻译成机器可以识别的指令(也叫机器语言)。高级语言带来了极大的便利性和易用性,因此用CPU&GPU实现同等功能的软件开发周期要远低于FPGA&ASIC芯片。


五、人工智能芯片决胜的主战场在推理环节

从应用场景来看,人工智能芯片主要应用在训练(training)和推理(inference)两个环节。训练环节的作用是指利用海量数据(603138),选择合适的训练方法,训练出一个人工智能模型。训练环节最关心的指标是速度快。国内外的人工智能巨头公司都建立了庞大的GPU集群,以最快速度处理海量数据训练、验证模型的有效性。

而在线推理环节也就是人工智能模型的实际应用环节,是指利用训练出来的模型来在线响应用户的需求。推理环节又分为两个场景,一个是在云端数据中心响应用户需求,一个是在前端智能设备响应用户需求。

在云端数据中心,各家公有云服务厂商都纷纷部署了高性能云计算服务器,应用于视频编解码、深度学习、科学计算等多种场景。随着人工智能技术的发展,未来云端数据中心应用场景还会有极大的丰富。

而在前端智能设备,受模型算法以及计算能力的限制,目前应用还不多。但是基于实时性及隐私安全要求,很多应用都会在前端部署,未来市场空间非常巨大。我们以无人驾驶和智能服务机器人为例说明。

在无人驾驶中,无人驾驶汽车需要实时处理来自激光雷达、摄像头等多路传感器传输的海量数据并作出实时反映。如果通过云端反馈处理,则必然会增加时延和不确定性,导致无人汽车安全性下降。因此,无人驾驶中必须将计算平台部署在前端。

在智能家居中,未来包括智能服务机器人在内的智能家居设备都需要具备实时环境感知能力及语音语义理解能力等,这些也都需要强大的计算平台作为底层支撑。而基于私密性考虑,不可能把智能家居的数据都上传云端处理。因此,智能家居的应用也需要计算平台部署在前端设备中。

与训练环节不同,推理环节更重视性能功耗比。云端数据中心对高并发更加重视,而前端智能设备则对低延时更加重视。

从市场潜力来看,未来市场规模最大的肯定是推理环节。人工智能的发展,首先需要训练出足够好的算法模型。而当人工智能真正落地应用时候,则需要在大量的云端数据中心或者前端智能设备上部署应用。

以人脸识别为例,我们需要在GPU集群中经过多次训练才能得到一个足够好的人脸识别算法模型,而当把人脸识别应用于实际应用时候,我们需要将模型部署在成千上万台服务器进行实时人脸识别,甚至在上亿台摄像机中前臵部署部分算法进行预处理。由此可见,推理环节才是未来最大的潜在市场,也是人工智能芯片决胜的主战场。在推理环节还远没有爆发的时候。未来胜负尚未可知,各家技术路线都有机会胜出。

总结

近两年来,深度学习技术的成功突破,让人工智能领域重获新生,兴起了第三次发展浪潮。但是随着人工智能推动机器人、自动驾驶、智能硬件等多领域实现了全新变革,影响力愈加强劲,俨然已成为全球未来主流趋势的情况下,芯片的地位再度提升,竞争也不断加剧。

应用领域的确立是AI领域的确立前提,但是AI的杀手级应用还没有出现,因此我们说AI的发展有很长的路要走。未来能否出现像通用CPU这样独立存在的通用AI处理器?如果存在的话,它的架构是什么样,如果不存在,今天的已满足特定应用的芯片恐怕只能做IP核了,AI公司何去何从呢?这些问题的谜底将在AI芯片产业的发展中逐一解开。

作为产业制高点,人工智能芯片可应用范围广,如智能手机、医疗健康、金融、零售等,发展空间巨大。随着人工智能时代的到来,人工智能芯片更是迎来了大展身手的时机。