新智元编辑闻菲(右)专访英特尔数据中心事业部副总裁、人工智能解决方案部门总经理、Nervana Systems 联合创始人兼CEO Naveen Rao。
在英伟达GPU已在深度学习市场的赛道上领先几圈,英伟达股价连翻暴涨的2016年末,刚刚才宣布人工智能战略,2017年初才会推出深度学习芯片的英特尔现在冲刺还来得及吗?
听到这个问题,Raveen Rao 停了一秒,然后笑着说:“那正是英特尔收购Nervana的原因。”
作为2014年成立的深度学习公司 Nervana Systems 联合创始人兼CEO,Raveen Rao此前在高通任职,负责神经网络项目研发。在两年多的时间里,Rao 带领一个48人的团队,开发了目前速度最快的开源学习深度平台Neon(现在成为英特尔Nervana 深度学习平台Nervana graph的基础),并且原计划在 2016 年年底推出一款名为Nervana Engine的芯片,号称加速深度学习比英伟达最强GPU快十倍。
今年 8 月,Nervana Systems 以4.08 亿美元被英特尔收购,引发业界轰动。百度首席科学家吴恩达当时在Twitter发消息称,英特尔这是要在深度学习上跟英伟达开战了!
吴恩达是业界第一个将GPU用于深度学习的人,那时候吴恩达还供职于谷歌大脑,从事现在圈内已经几乎无人不知的“让计算机识别猫脸”的任务。由此,GPU加速深度学习的特性才被发掘出来,并在业界迅速传开。
正因此,英伟达CEO黄仁勋将第一台英伟达深度学习处理器Titan X亲手赠与了吴恩达。
但是,在现已成为英特尔人工智能解决方案部门总经理的 Raveen Rao 看来,GPU并非专门为了深度学习而研发。他在接受新智元采访时表示,GPU最开始只是为了在CPU的基础上进一步优化图像处理才被研发出来,后来恰好被发现适合用于深度学习才得到广泛使用,而且其原因仅仅是目前市面上还没有更好的选择。这或许也是 Rao 对于英伟达GPU当前的市场份额和发展势头显得不怎么担心的原因。
Rao认为,英伟达CEO黄仁勋的说法——让GPU专为深度学习加速——实际上是矛盾的。
Rao表示,英特尔预计于2017年Q1推出的深度学习芯片,才是真正针对加速深度学习而研发。根据Rao在Nervana Systems官方博客上的文章,Nervana Engine,也即英特尔首款深度学习芯片的原型,借鉴神经科学原理,从基础架构设计上开始就没有进行任何妥协,从而实现了加速深度学习性能上的大幅提升。
不仅如此,“Nervana 还是创业公司的时候,我们就针对GPU做了深度学习方面的优化。”Rao对新智元说。“针对英伟达硬件的优化代码,实际上比他们自己做得都好。”
在以语音识别、图像识别和分类以及机器翻译等应用步入产业化乃至商用的当下,以深度学习为代表的人工智能技术可谓“火热到不能被忽视”。作为后来者,在PC时代雄霸天下的CPU巨头英特尔能否、或者说将如何与已经在深度学习市场深得人心的英伟达一拼高下?新智元在英特尔于北京举办的AI Day开幕之前,对英特尔人工智能部门关键人物、英特尔数据中心事业部副总裁、人工智能解决方案部门总经理 Raveen Rao 进行了专访。
新智元:结合了Nervana的技术以后,英特尔的CPU会发生什么改变?
Rao:首先,[英特尔的 CPU 将]更加注重人工智能,加快工作量(workload)。这意味着[英特尔]将有专注于人工智能的产品,而其功能特性也将逐渐地拓展到英特尔所有其他不同的产品线上。此外,这也是一个关注焦点的转变——moving up to the stack,从只是销售硬件产品到销售更高层的原语(primitives),我们在所有产品线上都有统一的人工智能软件战略。
新智元:那具体英特尔的CPU将发生什么改变?
Rao:英特尔CPU不会立即发生改变。英特尔CPU是通用处理器,可以处理许多不同的工作(workloads),但它并没有专门针对AI进行优化。不过,我们会从AI产品线,也即Nervana 产品线中吸取警告(taking warnings),在英特尔其他所有产品线中增加功能,使它们针对AI进行更多的优化
新智元:那我们最终能看到一款类似CPU升级版的芯片吗?
Rao:Xeon产品线仍将继续存在,这是目前数据中心的标配,这个是不会消失的。不过,我们也会新推出一条更加专注AI的产品线,将主处理器与Nervana技术紧密结合在一起。因此,我预期届时英特尔将有两条不同的产品线。原因是像作为网站服务器等常规工作,以及进行不同类型的计算,Nervana的技术并不做,但Xeon处理器在处理这些常规工作时表现十分优异,而这些工作是不会消失的。
新智元:英特尔预计在2017年Q1预计推出的深度学习芯片,它的主要应用场景是哪些?
Rao:主要是加速深度学习,而深度学习实际上包含的原语(primitives)很少,大概就 20 个左右,其中有两大基本原语,一个是矩阵乘积,另外一个卷积计算,这两个是最耗时的。现在全球的趋势是数据中心的工作越来越偏向深度学习,我们就需要拿出针对深度学习进行优化的产品——但是,这并不意味着以前的那些工作需求就会消失。我们只是会把更多的周期用于研发深度学习,打造满足数据中心工作量需求的硬件。
新智元:跟英伟达的GPU相比,英特尔的深度学习芯片在处理语音、图像、三维图像等数据方面有什么区别?
Rao:英伟达的产品主要是针对图像渲染的,这个跟深度学习有些类似,但实际上还是完全不同的。就目前来看,GPU是我们能够加速深度学习最适合的产品了(the closest thing for deep learning),这也是我们使用GPU加速深度学习的原因。但是,如果关注深度学习本身,我们可以打造更加适合深度学习、针对深度学习进行更好优化的产品。从架构上看,英特尔的深度学习芯片比GPU加速深度学习的速度要快十倍。在讲到计算力的时候,我们比较的基本单元是乘积累加(MAC)运算次数,也就是每秒钟可以进行的MAC次数。英伟达最新的GPU采用17纳米工艺,能提供9到10 TP;我们用28纳米的芯片,可以达到超过50 TP的级别。
新智元:根据新闻稿,英特尔的这款深度学习芯片将来还预计缩小到16纳米,到时候这个速度还会提升吗?
Rao:[Nervana]愿意加入英特尔的原因之一,就是英特尔拥有很强的半导体工艺,英特尔拥有世界最高密度(highest density)、最低能耗(lowest power)的工艺,再结合Nervana的架构,我们将实现其他人无法做到的事情。
新智元:现在深度学习要处理的数据越来越多、越来越复杂,英特尔的深度学习芯片在不同场景加速的时候与英伟达的GPU有什么样的区别?
Rao:实际上,不同类型的数据神经网络架构是类似的,你几乎可以不用去考虑数据类型。我们之所以能比GPU做得更好,是因为你面积有限(fixed area),上面晶体管的数量是固定的,于是问题的根本就成了你能够如何利用这些晶体管进行不同类型的计算。我们发明了一种新的指标(metrics),叫做“flexpoint”,介于浮点运算和定点运算之间。(注:此前接受 The Next Platform 记者采访时,Rao 表示 flexpoint 利用了神经网络的特点,不需要进行完整的浮点运算,这是一个基于张量的架构,不适合进行普通的乘法,但却能配合普通浮点运算芯片,让电路搭建得非常密集。)在架构上,[英特尔Nervana深度学习芯片]也与GPU和其他传统芯片不同,是没有缓存的。此外,它的可扩展性非常强,总带宽(Aggregated IO)很多,速度每秒能够达到2.4TB。简单说,这样不会浪费资源去做与深度学习无关的计算,也不会去处理图像数据。
新智元:此前新智元采访英伟达CEO黄仁勋,他提到GPU能够处理语音、图像、视频等多种类型的数据,他把这个作为一项优势。从刚才的谈话当中,可以认为能够处理多种类型的数据实际上并不是一项优势,是吗?
Rao:是的,我认为可以这样说。英特尔有非常完备的产品组合,我们可以有针对深度学习做优化的产品,也有 Xeon Phi 这样适用于通用一些功能的产品,还有更加通用的比如 Xeon处理器。我们独特的优势在于,比起GPU这种单一的架构,我们能更加精准地满足客户的不同需求。奇怪的是,这正是英伟达成立之初采取的策略,他们基本上就是在 CPU 的基础上搭建了一种更加适合处理图像的架构——当时 CPU 也能处理图像数据,英伟达针对图像进行优化推出了 GPU。因此,可以说英伟达现在嘴上说的跟他们实际做的正好相反(笑)。
新智元:能再具体谈一下Flexpoint吗?
Rao:当你把矩阵乘以矩阵时,行和列相乘,就得到乘积累加。每做这样一次运算,如果以浮点计算的方式进行,会产品很多系统开销(overhead)。每个定标器(scaler)都有一个指数(exponent)。因此,if you making the exponent for each scaler,你就不得不把数据移来移去——那就导致了 overhead。此外,每次乘法、加法运算都必须进行正则化和扩展(scaling)。我们采取的方法是,每次乘法和加法都以定点运算的方式进行,整个矩阵只保留一个指数,在最后才进行扩展。由此,我们每次运算所资源的占用更少,功耗也更低。
新智元:英伟达的GPU能兼容所有的深度学习框架。英特尔预计推出的深度学习产品将用什么方式、在什么时候实现到这一点呢?
Rao:我们的方法就是Nervana Graph。我们的构想简单说就是,如果有N个硬件平台,有X个框架,要将每个都进行优化匹配,就需要进行N×X次优化。我们所做的 Nervana graph 相当于一个中间的媒介,可以将所有的框架先转换成Nervana graph,然后从graph这个层面对每个硬件平台做优化,这样只需要N+X次优化就行了。至于时间,我们两周前才推出了Nervana graph,而且是 technical preview 版,在Github上开源。我们现在开始会逐渐转换其他的框架,首先是 TensorFlow,明年夏天,大约在6月份时预计推出第一版。我们也选择了其他一些平台,比如Torch、CNTK、MXNet,这些也是我们后续会转换的对象。
新智元:是否可以这样理解——GPU虽然可以兼容所有平台,但是会为了每个框架都会做优化,也就是N×X,而Ngraph的优势在于简化了这个过程,因此比GPU更加高效?
Rao:可以这样理解。或许你已经知道了,我们就连针对GPU也有最优化的代码。Nervana 还是初创公司的时候,我们针对英伟达硬件的优化代码,实际上比他们自己做得都好,我们也将继续支持相应的工作。
新智元:现在TensorFlow已经成为Github上最受欢迎的开源深度学习项目,在这种情况下,英特尔计划如何吸引AI开发者,让他们使用Ngraph?
Rao:Ngraph实际上比TensorFlow要低一级(one level below)。TensorFlow有前端,也有TensorFlow graph,实际上与 Ngraph一样,我们之所以认为通过设定标准,让Ngraph能够吸引开发者,是因为我们是可以支持很多不同的硬件平台,比如Xeon、Xeon Phi、FPGA,还有GPU。对于开发者来说他们有更多的选择,可以使用任何框架写程序,包括TensorFlow、Neon、CNCK,然后再通过Ngraph在他们自己不同的硬件平台上运行。
新智元:这确实能够吸引更广泛的用户。那么针对现在已经使用TensorFlow的用户,英特尔打算如何让他们转移到Ngraph上来呢?
Rao:对于目前正在使用TensorFlow的这批开发者,我们要赢得他们,还是要从硬件层面出发,只要我们能够提供足够好的理由——开发者并不需要改变前端代码,他们可以继续使用TensorFlow,elaborate、compile down to TensorFlow graph,将TensorFlow graph转换为Ngraph,然后就可以使用英特尔的硬件平台了——这是个很有吸引力的理由,因为用户有了很多的选择,他们可以同时享有最高的性能和通用的计算。
新智元:你如何评价TensorFlow、CNCK、Torch、Mxnet这些分别有大公司在背后支撑的开源深度学习平台?
Rao:你刚才所提到的这几个平台架构都是十分类似的,都有前端,语言要么是Python,要么是Luna,然后再将其转换为中间过渡的graph表征。为这些graph表征建立一个标准,我们实际上为开发者提供了便利,他们可以继续使用当前使用的框架,同时还能接入很多不同的硬件平台。英特尔的框架是Neon,因此英特尔一旦推出新的硬件产品,Neon将会提供相应最优化的stack。这之后,我们当然也会针对其他开源深度学习平台做优化——但是,Neon将会是最新最先的。
新智元:英特尔现在已经错失了深度学习市场先机了,英伟达GPU大量进入了语音及图像识别、数据中心、无人驾驶汽车等多种应用场景,对此英特尔将如何推广自己的产品?
Rao:这正是英特尔收购Nervana 的原因(笑)。我们拥有针对GPU最快的软件堆栈(software stack),而且我们正在开发比GPU更先进的硬件。因此,英特尔虽然眼下没有[加速深度学习]最快的硬件,但未来我们就会有了,最快的话只需要一年。
新智元:英特尔未来三到五年的人工智能战略布局是怎么样的?
Rao:英特尔Nervana平台会持续演进,深度学习芯片也将融入英特尔硅芯片生产制造的过程(silicon process),由此会带来性能的大幅提升。此外,Nervana的芯片技术还将与英特尔的主处理器融合,这在系统层面是非常领先的——让数据进入系统,然后在系统上对这些数据进行运算,实际上是现在的难点(hard part)——两者的融合将带来非常有吸引力的(compelling)解决方案。此外,英特尔占据了独特的市场地位,我们不仅拥有数据中心,还有进军最先进的领域(the edge)——我们未来准备收购Movidius这家公司,他们的视觉芯片功耗非常低。此外,英特尔在5G技术方面也有大量投资。所以从端到端,数据中心、网络到 Edge,我们具有独一无二的市场位置。
新智元:英特尔在无人驾驶汽车芯片这一块是怎样布局的呢?
Rao:无人驾驶是英特尔下重金重点投入的一个领域,我们在这方面已经和宝马等公司达成合作。两周之前,我们的CEO还讲到我们在无人驾驶方面进行了大笔的投资。因此,从Edge到网络,包括到数据中心,整个stack都有覆盖。
新智元:英特尔收购了Nervana Systems,刚才也提到收购 Movidius,接下来还将继续收购人工智能初创公司吗?
Rao:对此我无可奉告。
新智元:英特尔的Nervana平台号称“业界最全的AI产品组合”,英特尔Nervana平台本身在英特尔所有产品组合中占有的份额是多少?
Rao:关于人工智能产品市场推广,我们实际上有几种方式,还没有全面对外透露,我们现在还在考虑各种各样的可能性。英特尔的人工智能技术是芯片、软件堆栈,还有云(注释:指 Nervana Cloud)。我们会针对不同的消费者,使用不同的方法满足他们的需求,比如说对于规模比较大的用户来说,可以使用相对底层的方案,比如直接使用芯片;企业级用户则可以使用云,或者使用我们以后可能推出的产品。英特尔有一个具体针对AI的方案,Nervana 的AI只针对深度学习;至强融核针对高性能计算,也针对一部分AI;此外Xeon本身就是通用计算,所以很难统计。现在AI市场是比较新,很难说一个具体数字。
新智元:我们想知道英特尔的AI产品在英特尔公司内部产品组合中占有的份额是多少?
Rao:这个数据我们没有,无法提供。
新智元:刚才提到了针对不同的客户有不同的需求,英特尔对于这方面具体是怎样规划的?
Rao:我们通过提供不同的产品组合来满足不同消费者的需求,我们是一种软件策略适用于所有不同的硬件。因此,对于不知道他们工作量是什么的公司,我们会给他们提供 Xeon,因为 Xeon 是通用处理器。对于知道自己要进行更多并行计算或者某些通用计算的公司,我们会提供Xeon Phi。对于那些十分明确自己需要进行很多高速计算或深度学习的公司,就可以采用Nervana的解决方案。此外,还有FPGA,可以用于满足低延迟推断计算的需求。
新智元:现在英特尔集团内部的人工智能或者说深度学习组织架构是什么样的?
Rao:Nervana是一个业务单元,只要是所有跟深度学习、数据中心相关的软硬件的业务都是由我们来负责的,Nervana相当于是主导英特尔深度学习方面的业务单元。
新智元:那可以认为Nervana就是负责英特尔人工智能产品的吗?
Rao:不能说是针对所有人工智能,只能是数据中心相关的人工智能。
新智元:那其他的人工智能产品由谁负责?
Rao:英特尔AI组织架构还可能会发生变化,包括刚才讲到的 Movidius 也将很快被并购,Altera也有人工智能方面的项目,这些都独立的业务部门。但是,这些不同的部门之间都有比较密切的沟通和联系。
新智元:为什么Nervana没有成为英特尔的首选,而是先使用了Altera的技术?
Rao:Altera的市场定位和Nervana是不太一样的,Altera关注FPGA,FPGA可以用于推断(inference),针对 Edge 或者低延迟应用,实际上那也将融入英特尔的AI软件战略。而Nervana则将在 Altera的基础上工作,所以,这再次涉及我们端到端的战略,对于Edge、低延迟推断、数据中心训练,我们有Xeon Phi 和Nervana Engine。
新智元:全球AI芯片市场格局是什么样的?中国研发的AI芯片在其中处于什么地位?
Rao:中国市场,我对SMIC了解比少,据我所知,SMIC应该比现在的处理器落后了1到1.5代,因此我们一般不考虑SMIC,因为难以取得Silicon IP,过程也不太成熟。这也是为什么Nervana选择TSMC。
至于全球AI芯片市场及技术趋势,我认为将出现越来越多新的架构,对于电脑架构师来说这是非常令人激动的一个时代,因为在相当长的一段时间内,计算机架构其实没有什么大的创新。现在[深度学习的出现],让我们看到一个全新的使用场景,这是非常独特也是非常重要的。我们可以看到,有很多不同的方法[加速深度学习],最开始是GPU,英特尔也在使用新的方法,无数的初创公司也在朝着这个方向走,世界上其他地方可能还有其他公司也在解决这个问题。所以我认为这将推动计算机走向一个全新的方向,从技术上说,这也让我感到非常兴奋。这方面会有很多新的架构和应用出来。
新智元:正好你提到了有很多不同的架构和不同的团队正在涌现,对于值得关注的智能芯片公司或团队,能举几个例子吗?
Rao:这个我无可奉告。
新智元:有一种观点认为摩尔定律已经走到尽头了,对此你怎么看?英特尔的优势会随之减弱或消失吗?
Rao:对于硅芯片而言,创新管道(innovation pipelines)依然是在进行的,或许速度是在减缓,但总的来说,还是有很多创新渠道(pathways),通往体积越来越小、能耗越来越低的设备。英特尔作为一家垂直一体化企业,在市场上仍然占有独一无二的位置,[我们的产品涵盖]软件、硬件架构,还有硅芯片的设计和制造的能力,因此打造新的计算机体系结构方面还是具有很强优势的,比如我们可以利用电路设计和处理能力方面的优势,这对于无晶圆公司(fabless,注释:指设计微处理器但将生产制造外包,自己没有工厂的公司)是很难的。
新智元:专门加速深度学习的芯片或者说专用芯片会成为接下来的主流产品吗?
Rao:这是由市场来决定的(笑)。
新智元:你是神经科学家,在高通也是负责神经网络项目研发,能具体谈一谈你认为神经科学在计算机体系结构中发挥的作用吗?
Rao:神经科学带来了灵感,让我们可以从不同的角度、用不同的方式思考计算机体系结构。在过去差不多50多年的时间里,计算机基本没有什么变化,神经科学给了我们[对计算的本质]不同的思考方式。其中一个例子就是我们对Flexpoint的思考——在大脑的神经元里,进行着模拟计算,乘法实际上是低精度的,加法则是高精度的。我们如何将这一特性转移到芯片工程设计中呢?并不需要直接模仿,而是弄清楚你能在硅芯片上实现什么,然后如何利用这种关于计算的不同的思考方式。这也正是我们在英特尔Nervana 深度学习芯片上所做的事情,这让我们在硅基基质上实现了[计算]性能的提升。
新智元:你在Nervana的博客里面提到,因为利用了神经科学的特性,在设计 Nervana Engine的时候,从底层架构上起就没有做出任何妥协(compromise),而其他的芯片都因为各种原因作出了种种牺牲。能针对这一点具体谈一下吗?
Rao:举个例子,我们没有做的一个妥协就是缓存。有缓存实际上正是因为没有真正理解芯片上会进行何种类型的计算。深度学习是不同的,你能够清楚地知道数据从哪里来、到哪里去,因此不需要管理缓存。另一个例子是Flexpoint,我们不需要支持通用数字运算——我们非常清楚神经网络数字运算的范围和行为特点。所以,我们没有做出任何妥协,制造出的就是我们最初想设计的芯片。
文章转自新智元公众号,原文链接