企业新闻 > 正文
英伟达的AI芯片霸主之路
2019/11/26 09:22   半导体行业观察      关键字:英伟达 AI芯片 霸主之路      浏览量:
在推出GPU之后,Nvidia顺利地占领了游戏显卡市场的主导地位。游戏市场虽然不小,但是其增长天花板也较低。因此,Nvidia也在尝试各种不同的市场机会。

  随着人工智能发展如火如荼,我们看到Nvidia的GPU成为了人工智能时代的基础设施,为人工智能服务提供必不可少的算力。本文为大家回顾Nvidia走上人工智能加速硬件主导者位置的历程,希望能给大家带来一些启示。
  Nvidia缘起:PC游戏时代
  Nvidia的诞生还要追溯到多媒体PC机时代。在上世纪90年代,PC机走向了多媒体时代,其中3D游戏又是多媒体时代最闪耀的明星。为了能加速3D游戏的运行,图像处理芯片就成了多媒体PC时代的一种热门新品类。最初,加速3D游戏运行在常规的显示卡之外还需要一张3D加速卡,而3D加速卡的首创者——3dfx也凭借着其Voodoo系列加速卡成为了当时的3D加速引领者。

  看到了3D显示这个巨大机会的并不只3dfx一家公司。Nvidia于上世纪90年代中成立,公司的目标市场就是显示市场。1998年,Nvidia推出了TNT系列显卡,拥有了与3dfx同台竞技的资格。之后,3dfx的后几代显卡产品存在各种问题,而Nvidia却在2000年顺势拿出了同时支持3D加速和transformationandlighting(T&L,指一系列图像处理中需要的坐标和光照变幻运算)的GeForce系列显卡,在性能上大幅领先3dfx,并最终奠定了其游戏显卡领域的霸主地位。事实上,在GeForce之前,显卡并不负责繁重的T&L计算,而必须由CPU来做这些运算;GeForce是第一个用显卡支持T&L来大幅提升系统性能的显卡,并且Nvidia认为显卡支持了之前必须由CPU来完成的工作,因此提出了GPU这个概念。可以说GeForce是Nvidia最重要的产品之一,同时我们也可以从GeForce的诞生看到Nvidia并不是拘泥于产品传统品类定义的公司,而是会积极地拓宽其产品的应用范围。这样的公司基因也直接造就了之后Nvidia在人工智能领域的领先地位。
  GPGPU和CUDA:Nvidia最好的一笔投资
  在推出GPU之后,Nvidia顺利地占领了游戏显卡市场的主导地位。游戏市场虽然不小,但是其增长天花板也较低。因此,Nvidia也在尝试各种不同的市场机会。
  在2000年左右,学术界对于使用GPU做通用计算(GPGPU)产生了兴趣。当时,主要面向执行通用算法的CPU是执行科学计算的主力,但是CPU为了能在通用算法上都有较好的性能,因此很多芯片面积事实上用在了片上内存和分支预测等控制逻辑,而真正用于计算的单元并不多。相反,GPU架构中的控制逻辑较为简单,绝大多数芯片面积都用于渲染、多边形等计算。学术界发现,科学运算中的矩阵等计算可以很简单地映射到GPU的处理单元,因此能实现非常高的计算性能。
  当时,GPGPU最主要的瓶颈在于难以使用。由于GPU是面向图像应用而开发,因此要在其编程模型中支持通用高性能计算并不容易,需要许多手工调试和编码,因此造成了很高的门槛,能熟练使用的人并不多。另一方面是厂商对于GPGPU应用的态度。事实上,当时GPGPU的研究主要在学术界,在工业界并没有很多人清楚GPGPU未来能有多少价值,不少公司虽然也有研究GPGPU的团队,但是大多仅仅是做一些评估和尝试性的工作,并没有认真打算大规模应用。
  Nvidia对于GPGPU却是抱着另一种态度。在2006年,Nvidia推出了Tesla架构。在这个架构中,Nvidia一改之前使用矢量计算单元做渲染的做法,而是把一个矢量计算单元拆成了多个标量计算渲染单元,并称之为“unifiedshader”。这样一来,TeslaGPU的渲染单元除了在渲染性能更强之外,也更适合做通用计算了。在2007年,Nvidia顺势推出了CUDA系列编程环境。CUDA是GPGPU领域的一个创举,通过CUDA可以大大降低用GPU做通用计算的难度,因此大大降低了GPGPU应用的门槛。
  究竟是Nvidia之前就策划要做GPGPU,因此才推出Tesla架构以及CUDA,还是Nvidia在推出Tesla架构之后为了充分发挥其潜力而顺便推出CUDA,我们今天不得而知。但是,我们能看到的是,CUDA首先在GPGPU领域引起了很大的反响,因此在第二年有了开源版本的OpenCL来在其他GPU上实现类似的功能;另一方面,我们看到Nvidia在GPU领域最大的竞争对手AMD在当时对于GPGPU并没有太多动作,以至于一年后的OpenCL事实上是苹果而非由AMD发起的。在当时,苹果希望能在各种设备(尤其是移动设备)上充分利用GPU来完成计算,因此发起了OpenCL组织,参与的公司除了苹果之外还有ARM、AMD、Nvidia等。然而,为了兼容性考量,OpenCL并无法在所有GPU上都实现最优的性能,因此相比于专注于给自家GPU做优化的CUDA来说性能差了一截。AMD在当时并没有自己提出一个与CUDA争锋相对的协议而只是选择加入OpenCL组织也证明了当时AMD对于GPGPU的观望态度。

  AlexNet+NvidiaGPU引领了人工智能风潮
  时间走到了2012年,Nvidia在经过移动市场的失望后,迎来了新的蓝海市场。2012年的重要性在于,深度学习开山鼻祖之一的GeoffHinton的学生AlexKrizhevsky成功训练出了深度卷积神经网络AlexNet,并凭借该网络在图像分类识别领域大幅提升了性能(15%的错误率,比第二名真正高出了十个绝对百分点),从而成为人工智能的标志性事件。
  在2012年之前,绝大多数图像分类任务都是使用类似支持矢量机(SVM)这样的经典算法实现。SVM这样的算法非常适合应用在数据量较少的应用中。然而,随着互联网时代的来临,人们积累的数据量远远大于之前的时代,而在拥有大量数据的情况下,神经网络就成了理论上更好的选择。然而,在当时训练一个深层神经网络还存在一个挑战,就是算力问题。使用普通的CPU在ImageNet上训练一个深度学习网络需要数年的时间,因此无法实用。而AlexKrizhevsky的创举在于使用NvidiaGPU成功训练了一个性能有突破性提升的深度神经网络,从而开启了新的人工智能时代。
  AlexNet性能的大幅提升使得人工智能在图像分类等有大量实际应用的场景达到了可用的性能,而NvidiaGPU则伴随着深度学习模型训练和推理所需要的大量算力成为了人工智能时代的新基础设施。这也可以说是Nvidia数年前在GPGPU领域投资所收获的回报:如果没有CUDA这样的高性能GPGPU编程工具,或许AlexNet就无法被训练出来,而人工智能时代可能就无法被开启。而在之后,随着深度学习网络热潮的兴起,高校和工业界在越来越多的场景使用深度学习——目前在图像、语音、自然语言处理、推荐系统等大量场景深度学习都已经落地。随之而来的是对于GPU算力的进一步需求,而Nvidia也是顺势而为,在最近几年接连推出为了人工智能而优化的GPU以及相关配套软件资源(用于推理的TensorRT,基于CUDA的高性能深度学习加速库CuDNN,CuBLAS等等),从而让自己在人工智能时代的地位更加稳固。
  反观AMD,事实上由于AMD一直处于追赶阶段,因此迟迟不敢下决心去做一些新的尝试。当年GPGPU领域AMD投入不足,导致Nvidia的CUDA占据了先机。在性能上,AMD所依赖的通用OpenCL性能据调查比起CUDA要差30%以上。更关键的是AMD的人工智能开发者生态一直做不起来,因为OpenCL性能差且使用不方便,导致使用OpenCL的开发者少,开发者少就更少人能为OpenCL开发方便的接口和共享设计资源,这进一步导致OpenCL开发社区人气不足,有GPGPU开发需求的开发者都会把Nvidia的CUDA作为其第一选择。在GPU硬件上,直到Nvidia已经推出专门针对人工智能优化的TensorCore之后,AMD对于要不要在GPU上加入对人工智能的支持仍然迟疑不决,一直到2018年才推出对人工智能的相关支持,因此导致在人工智能领域远远落后了。最后必须指出的是,一直以来AMD的思路都是性价比,而人工智能的主要客户却是对于价格不怎么敏感的企业客户,因此AMD之前的低价战术也没办法打动这些客户。
  Nvidia人工智能的今天和未来
  目前,Nvidia已经占据了人工智能算力领域的主导位置。在数据中心领域,即使有一些初创公司推出训练和推理加速芯片,但是想要取代Nvidia需要相当长的时间。首先,大规模部署芯片对于产品的可靠性有相当高的需求,而且分布式系统是一个系统工程,需要芯片在各类指标上(不只是算力,还包括通信,接口带宽等)都达到优秀的指标,光这一点就需要初创公司相当多的时间去打磨。此外,Nvidia更高的壁垒在于开发者生态,需要开发出一个易用的编程模型和相关编译器的难度并不亚于设计芯片,而要孵化开发者生态则需要更多的时间。我们认为,至少在未来3-5年内,Nvidia在数据中心的地位难以被撼动。
  但这并不意味着Nvidia在人工智能时代就可以高枕无忧。Nvidia的软肋仍然在于其移动端——随着人工智能从云端逐渐走向边缘和终端,边缘和终端类的AI加速芯片或许是其他公司的机会。Nvidia之前推出的终端/边缘类产品并不算特别领先或成功,例如Jetson系列终端GPU的能效比并不领先,芯片架构也是沿用数年前的设计。我们认为,AI加速在终端的市场份额可能会占据总体AI芯片市场不小的份额,如果Nvidia无法抓住终端AI市场,那么其最终在整个AI市场的份额可能会被局限在云端数据中心。

微信扫描二维码,关注公众号。