新智元报道  

来源:蓝海思享汇
编辑:SF
【新智元导读】本文主要讨论中国企业在AI芯片领域有没有机会?
要想谈清楚AI芯片,就不得不从通用芯片说起。
据说每过18天,芯片领域就会多出一个xPU。目前xPU领域主要是各种AI芯片的竞争,我们找出大家在此领域最关心的几个问题来谈:
  • 集成电路芯片演变历史概述
  • 目前几种主要AI芯片介绍GPU TPU NPU IPU
  • 寒武纪芯片是中国AI芯片的希望所在吗?
  • 中国在AI芯片领域整体发展态势
集成电路芯片演变历史概述
要把这段历史说清楚,还得从世界上第一台电子计算机说起。
1946年,世界上第一台电子计算机ENIAC在美国诞生,这个庞然大物重达30余吨,占地170平方米,由18000只电子管组成核心计算单元。
当然,它的功能比现在一个最普通的手机差得很远,但这是世界上第一次用机器代替人来计算。
1951年,世界上第一台商用计算机投入使用这台通用自动计算机,交付给了美国人口调查局使用。
1955年,“晶体管之父”肖克利离开了贝尔实验室,回到硅谷圣克拉拉,建立了自己的公司,这是世界上第一个真正研发半导体的公司。
肖克利实验室,为硅谷引来了大批技术人员,使硅谷取代了美国东部,成为了美国半导体(芯片)产业中心。
1957年,克雷(Crey,1923-2005)设计了全晶体管超级计算机。之后的20年,主流计算机都是以晶体管集成电路为核心组成的,所以克雷被誉为超级计算机之父。
1957年10月1日,Robert Noyce 率领着“8叛逆”,离开了肖克利实验室,创建了著名的“仙童半导体”公司,这是硅谷历史上一个里程碑事件。
1959年,仙童半导体首次以晶体管集成电路技术,在商业上大力推广。之后若干年,一大批著名芯片厂商,像Intel、AMD、美国国家半导体等都是由仙童半导体出来的人创立的
1962年,世界上第一块基于硅片的集成电路制造成功,这是划时代的历史事件,计算机芯片进入了硅芯片时代。
1966年,美国贝尔实验室使用完善的硅外延平面工艺,制造出第一块公认的大规模集成电路。
1968年,Robert Noyce放弃了他创立的仙童半导体,与Gordon Moore(提出摩尔定律的)一起创立了Intel。
1970年,Intel推出第一片DRAM存储器
1971年,Intel推出SRAM和EPROM。但此时,日本的硅芯片产业突然崛起,同样也能大规模生产DRAM等存储器,并且成本比Intel的有居大优势。
日本芯片产业的崛起给Intel造成了巨大压力,Intel频临破产,此时就发生了那段最经典的Intel转型的历史故事。
一天,两位Intel领导人,董事长摩尔、总裁格鲁夫在一起讨论经营困境,面对已经被对手逼到死角的绝境,二人也是面面相觑。
格鲁夫突然问摩尔:“摩尔,如果我们下了台,你认为新进来这个家伙会采取什么行动?” 

摩尔犹豫了一下,说:“他会完全放弃存储器的生意。” 
格鲁夫目不转睛地盯着摩尔:“既然这样,你我为什么不走出这扇门,然后再进来,自己动手这样干呢?”
随后他们作出了重大决策:放弃存储器业务开始研发微处理器
很快,他们就研发出来第一款基于硅集成电路的微处理器4004。
当然,面对只有二进制4位的微处理器,Intel也不知道有用没用,能否改变他们要关门的命运。反正已经走出了这一步,不走肯定是死,走出来没准有一线生机。
1972年,Intel又推出了8008微处理器这款微处理器从4位扩展到了8位,性能有了明显改善,可是业界几乎没人认为,这种芯片可以用于计算机的中央处理器,最多可以用于工业控制设备(如数控机床)的处理器。
而拼死一战的Intel并没有止步,坚持做出了8088、8086这两块芯片,正式开启了以微处理器为计算机中央处理器的时代。
当然,并不是所有人都能看清,微处理器的划时代意义,只有个别具有良好计算机基础、同时具有产业洞察力的人才能看懂这点。
盖茨与乔布斯,就是当时全世界不超过10个人中的两个。
这两个从中学时代就可以用机器语言编程的电脑天才,看到了微处理器的应用前景。他们认为这个小芯片必将改变世界的未来,然后就开始动手了。
盖茨与他创业伙伴保罗基于8088开发出来第一款微操作系统DOS。1980年,IBM用8088和DOS制造出了世界第一台微计算机IBM PC。
而同年,乔布斯与他创业伙伴沃滋基于摩托罗拉芯片6502(与8088类似)开发出了第一台实用的苹果电脑Apple II。
Intel继8086之后,相继开发出286 386 486 奔腾等,微处理器从8位、16位、奔腾4前32位、奔腾5后64位,完全满足了大型计算机的需要。
从此x86处理器体系成为了计算机CPU的标配。
我们看到经过50多年的发展,芯片产业发生了翻天地覆的变化,计算机产业也发生了同样巨大的变化。从最原始的电子管到晶体管,再到集成电路,体积越来越小,功能越来越强大,并且为后面全球芯片业的发展打下了良好的基础。
主要AI芯片介绍
计算机中央处理单元从电子管到晶体管,最后到硅晶圆集成电路,最终主流计算机CPU(中央处理器)均定位在x86芯片上。此类芯片以Intel、AMD公司为主,占领了计算机CPU90%以上的市场。
而其他厂商,如摩托罗拉、IBM、DEC等,也曾经做过非x86芯片,但都没有形成主流,最后都慢慢退出了市场。
但无论是x86,或非x86体系芯片,在计算机体系结构上都属于冯·诺依曼体系结构。
冯·诺依曼体系结构是1946年由美籍匈牙利科学家冯·诺伊曼提出的,简单地说就是将运算程序与数据均放在存储器中,然后依一系列控制指令,使程序按照一定顺序执行,最后输出运算结果。
通俗点就是:无论多复杂的运算公式,最终都能拆解成数值的加减法,然后以二进制的加减法进行运算
这样,就能将复杂的运算用机器自动完成,大大提高了效率和质量。最初,计算机率先使用在核武器研制及航空航天领域,就是解决繁琐庞杂的计算工作的。
可是随着计算机技术的发展,越来越多的领域需要由计算机来参与解决问题,而冯·诺依曼体系结构的计算机最擅长的就是科学计算,无论多么复杂的问题,只要你能把它分解成某种“算法”,计算机就能通过运算,得到满意的结果。
随着计算机应用领域不断扩展,人们发现冯·诺依曼体系越来越难以适应更复杂的应用领域了,或者说,有些可以解决复杂领域的需求,但是效率变得很低很不合理,特别在人工智能领域尤为突出。
人工智能的核心诉求,试图模仿人脑来解决各种复杂的问题,可是人们发现,冯·诺依曼体系对于人脑来说就是个小儿科,太多的问题不是以冯·诺依曼体系的逻辑
来处理的。
举个例子,笔者在英国的博士论文课题是“地图的自动概括”,这是个典型的人工智能课题。
传统的“地图概括”是由有经验的工程师来完成的,在地图从大比例尺到小比例尺到转换过程中,很多问题要人来判断:原来一堆单个房屋要以什么规则合并成建筑块?其他各种地物以什么规则决定删除?合并?夸张?等处理?
人在处理这些问题时,凭看到的实际情况与工作经验,马上就改过来了。可是面对这些问题,冯·诺依曼体系计算机基本是“傻”掉了!
尽管笔者使用了当时最先进的Prolog语言、C语言、Oracle数据库等,也是勉强解决了部分问题,不能全部解决问题。
归根到底,冯·诺依曼计算机体系就不是为解决这类问题而生的。
随着人工智能时代越来越近,越来越现实,冯·诺依曼体系结构显然是力不从心了。落实到计算机大脑——芯片就必须要设计出全新的系统结构。从此各种类型的、更适合AI领域的芯片应运而生。
几种AI芯片介绍
GPU
全称为Graphics Processing Unit,中文为图形处理器,就如它的名字一样,GPU最初是用在个人电脑、工作站、游戏机和一些移动设备如平板电脑、智能手机等)上运行绘图运算工作的微处理器。
为什么GPU特别擅长处理图像数据呢?
这是因为图像上的每一个像素点都有被处理的需要,而且每个像素点处理的过程和方式都十分相似,也就成了GPU的天然温床。
GPU简单架构如下图所示:
从架构图我们就能很明显的看出,GPU的构成相对简单,有数量众多的计算单元和超长的流水线,特别适合处理大量的类型统一的数据。
GPU无法单独工作,必须由CPU进行控制调用才能工作,CPU可单独作用处理复杂的逻辑运算和不同的数据类型,但当需要大量的处理类型统一的数据时,则可调用GPU进行并行计算。
虽然GPU是为了图像处理而生的,但是通过前面的介绍可以发现,它在结构上并没有专门为图像服务的部件,只是对CPU的结构进行了优化与调整。
所以现在GPU不仅可以在图像处理领域显身手,还被用来科学计算密码破解、数值分析、海量数据处理、金融分析等需要大规模并行计算的领域。所以GPU也可以认为是一种较通用的芯片。
TPU
全称为Tensor Processing Unit,张量处理器就是谷歌专门为加速深层神经网络运算能力而研发的一款芯片,其实也是一款ASIC。
图:谷歌第二代TPU
TPU与同期的CPU和GPU相比,可以提供15-30倍的性能提升,以及30-80倍的效率(性能/瓦特)提升,初代的TPU只能做推理,要依靠Google云来实时收集数据,并产生结果,而训练过程还需要额外的资源。
而第二代TPU既可以用于训练神经网络,又可以用于推理。
图:TPU芯片布局图
TPU在芯片上使用了高达24MB的局部内存,6MB的累加器内存,以及用于与主控处理器进行对接的内存,总共占芯片面积的37%(图中蓝色部分)。
到目前为止,TPU其实已经干了很多事情了。例如,机器学习人工智能系统RankBrain,它是用来帮助Google处理搜索结果,并为用户提供更加相关搜索结果的。还有街景Street View用来提高地图与导航的准确性的。当然还有下围棋的计算机程序AlphaGo。
NPU
Neural network Processing Unit,即神经网络处理器。顾名思义,这家伙是想用电路模拟人类的神经元和突触结构啊。
怎么模仿?那就得先来看看人类的神经结构。
生物的神经网络,由若干人工神经元结点互联而成,神经元之间通过突触两两连接,突触记录了神经元之间的联系。
如果想用电路模仿人类的神经元,就得把每个神经元抽象为一个激励函数。该函数的输入由与其相连的神经元的输出,以及连接神经元的突触共同决定。
为了表达特定的知识,使用者通常需要(通过某些特定的算法)调整人工神经网络中突触的取值、网络的拓扑结构等,该过程称为“学习”
神经网络中,存储和处理是一体化的,都是通过突触权重来体现。而冯·诺伊曼结构中,存储和处理是分离的,分别由存储器和运算器来实现,二者之间存在巨大的差异。
当用现有的基于冯·诺伊曼结构的经典计算机(如X86处理器和英伟达GPU)来跑神经网络应用时,就不可避免地受到存储和处理分离式结构的制约,因而影响效率。
这也就是专门针对人工智能的专业芯片能够对传统芯片有一定先天优势的原因之一。
NPU的典型代表有国内的寒武纪芯片和IBM的TrueNorth。
IPU
Intelligence Processing Unit,是一种为AI计算而生的革命性架构。
IPU处理器是迄今为止最复杂的处理器芯片,它在一个16纳米芯片上,有几乎240亿个晶体管。
每个芯片提供125 teraFLOPS运算能力,一个标准4U机箱中可以插入8张卡,卡间通过IPU链路互连,8张卡上的IPU可以作为一个处理器元件工作,提供两个petaFLOPS的运算能力。
与芯片在CPU和GPU中的存在形式不同,它为机器智能提供了更高效的处理平台,这个产品将用于云计算服务器也极有可能。
用于自动驾驶汽车,目前在IPU方面领先的是英国Graphcore公司。
Graphcore公司于2016年创立,首款IPU也已经于19年底推出。
Graphcore专家认为:“我们接触过的所有创新者都说,使用GPU正在阻碍他们创新。如果仔细看一下,他们正在研究的模型类型你会发现,他们主要研究卷积神经网络、递归神经网络和其他类型的结构。例如,强化学习并不能很好地映射到GPU,这也正是我们将IPU推向市场的主要原因”。
Graphcore的IPU里面有1216个核,我们称之为Tile。
每个Tile里都有计算单元和内存。由于同时有上千个处理器工作,所以单个IPU的存储带宽能达到45TB,比性能最快的HBM提升了50倍以上,在相同算力下,功耗也降低了一半。
Graphcore专家总结,IPU与其它的AI芯片相比,有三个比较核心的区别。
第一,处理器核的架构不同,IPU是MIMD架构。
第二,IPU的模型在处理器内。
第三,大规模并行IPU核之间的通信效率也非常高。
总结几种AI芯片
GPU是最早开发出来的图形处理芯片,要与CPU配合使用,在一定程度上解决了并行处理问题。TPU与NPU开始从原理上模拟人脑神经网络系统,真正进入人工智能应用领域。IPU是最新的专门为人工智能服务的AI芯片,由于它内部强大的并行处理能力,相信在未来人工智能领域将大放异彩。
另外我们也相信,随着人工智能领域的快速发展,越来越强大的新型AI芯片还会继续涌现。
(未完待续)
继续阅读
阅读原文