2016年人工智能最吸引眼球的事件莫过于谷歌旗下的DeepMind依靠人工智能算法的阿尔法狗在围棋比赛中大胜人类顶尖选手。但要算商业价值的落地,2016年人工智能的赢家则非Nvidia(英伟达)莫属。这家全球领先的显卡公司最新的季度财报(截至2016年10月30号)显示该公司的营收比去年同期增长54%,尤其是在数据中心业务方面有了两倍多的增长。该公司的股票在过去的一年中也增长了4倍多,稳坐了标普500的榜首。
Nvidia在人工智能芯片市场的真实统治力,可能比股票市场上的亮眼成绩更为显著。尽管市场上也存在其他深度学习训练(training)和预测(Inference)的解决方案,但试问各家AI企业,无论其内部的模型训练,还是销售给最终客户的智能产品,绝大多数还是采用了Nvidia的GPGPU方案。在Nvidia不断从各个角度(服务器、PC、嵌入式、汽车、训练专用和预测专用)推陈出新的时候,其他各家竞争公司基本上还处在尝试初次产品化的过程中。据我粗略估计,Nvidia在人工智能芯片领域,领先最接近的竞争者至少有2年的时间。
今天NV在人工智能领域的优势绝对不是一日之功。事实上整个深度神经网络技术在过去三年的崛起,除了大规模数据(如ImageNet)提供了训练深度网络的基础条件,通用图形运算单元(GPGPU)技术提供的强大运算能力也功不可没。如果没有Nvidia的CUDA平台,科学界证实深度学习巨大潜力的时间不知道还要推迟多久。更难能可贵的是,GPGPU技术使得在PC级别的计算机上进行高密度的高性能运算成本大幅降低,以至于一个普通科研人员的台式电脑都有可能部署上万个并行处理内核。这使得深度学习技术迅速地在科技界发展和普及起来。可以这么说,如果没有GPGPU,坚持研究了二十多年神经网络算法的Yann LeCun和Hinton教授们,恐怕还得继续在学术界被继续埋不少年。
而是什么原因使得一家以提供3D游戏渲染的显卡公司,在这个重要的历史节点,扮演了救世主的角色呢?
本文基于我个人的经历和观察,提供一些相关的线索和理解。在这个过程中有两个关键性的人物,分别是英伟达的CEO黄仁勋(Jen-Hsun Huang),以及英伟达的前首席科学家David Kirk。
Nvidia的CEO Jen-Hsun Huang(黄仁勋)大名鼎鼎,在硅谷可能是最有成就的华裔企业家。关于David Kirk的官方报道却很少,在Nvidia Research的网站上可以看到他从1997年到2009年担任Nvidia的首席科学家(Chief Scientist),是美国工程院院士,目前是Nvidia fellow。事实上了解Nvidia历史的人都知道,这家1993年创建的公司,真正的拳头产品GeForce系列就是1999年上市并且打响了国际声誉的。
也就是说,David Kirk任职期间,他带领NV创造了至今仍是全世界最畅销的独立显卡产品。对于高性能运算以及人工智能领域的学者来说,David Kirk最伟大的功绩则是他促成了GPU通用化,推广了CUDA平台以及OpenCL标准。在摩尔定律面临时钟频率无法继续进步的时代,GPGPU这种低成本大规模的SIMD并行处理架构,让很多普通人的计算机变成了超级电脑,也让本该寿终正寝的摩尔定律继续发光发热。他发明的GPGPU科技,给历经苦难的神经网络技术,铺垫了一条通往苦尽甘来的道路,也成就了人工智能当前大发展的局面。
我有幸于2008年在Nvidia Research作实习生。那时我还是一枚计算机视觉专业的博士候选人。当时从事人工智能研究专业的博士生,日子过得可不像今天的师弟师妹们那么痛快。整个领域整体还处在不靠谱的状态,也没有专门针对计算机视觉而设计的专用芯片。学生时期的我,为了实现视觉信号实时处理,钻研过嵌入式CPU、DSP、FPGA等方案。这些方案要么性能不足,要么开发流程复杂不便。我甚至尝试过同时使用十几台服务器并行处理一路实时视频流的视觉理解(也真是土豪极了)。2007年Nvidia推出了CUDA beta版,我在EPSON实验室自己摸索着用一块普通的游戏显卡,把一个视角转换功能(使得一台投影仪在任意形状和颜色的背景上显示出理想画面)的性能,相比最好的台式机CPU解决方案,提高了整整50倍。从此以后我就认定了GPGPU是人工智能的重要解决方案,我的科研人生就此走上了康庄大道。EPSON的实习结束后,我申请了Nvidia Research lab的实习生,希望深入研究一下GPGPU在计算机视觉信号处理中的应用。
很幸运的是,我实习期间的名义导师就是Nvidia首席科学家David Kirk。不过由于Kirk先生太忙,整个实习期间我和他其实也只见面交流了几次而已。Kirk先生教导学生的方式挺有意思。我进公司第一次见到导师,问我的任务是什么。Kirk先生说你有两个任务:第一个任务是花两周的时间想清楚自己想解决什么问题;第二个任务就是用实习剩下的时间完成那个任务(这不就是放羊吗?)。Kirk先生一方面组织科研,一方面花很多时间研究公司未来的产品策略,近在咫尺却实在没有时间指导学生,于是就委托了远在明尼苏达的Michael Garland博士和佛吉尼亚的David Luebke教授远程指导在硅谷实习的我。
Nvidia的CEO Jen-Hsun Huang工作很忙,但是他对于研究院的工作极其感兴趣。我亲眼目睹黄总在实验室和研究员们讨论问题时的认真和耐心。2008年夏天有个专为实习生安排的demo展示会。没想到那天Jen-Hsun也来参观,并且很耐心地巡视实习生作品。6年之后的2014年,当我在Nvidia北京办公室代表我的创业公司再次见到Jen-Hsun时,他竟然一口叫出了我的名字并回忆起当年我给他做的展示。这样的记忆力和洞察力,让我印象深刻。
那几年,David Kirk的主要精力都在试图把原来只用来作3d渲染加速的GPU技术通用化,让更多的应用分享到大规模SIMD运算阵列的性能优势。在一次聊天中,Kirk跟我说他从2003年就开始琢磨这个问题:那时Intel刚刚推出了四核的CPU处理器,NV就已经推出包含了100多个SIMD内核的GPU了。Intel的处理器可以通过多线程技术被所有计算机应用分享;但是GPU基本上还是只能通过OpenGL/DirectX等高等绘图渲染接口,或者使用极度麻烦的Shader Program接口跟用户交互。如果能够提供合适的编程模型,把丰富的GPU并行运算资源给开发者分享出来,那么每一个用户的GPU,都可以变成一台上百核的大规模高性能计算机。
让每一台个人电脑变成一座大规模超级计算机!
这个想法虽好,但是需求在哪里呢?普通吃瓜群众,为什么要花钱(即使是几百块美元)去购买一台超级计算机呢?除此以外,全世界所有的计算机软件工程师几十年来已经适应了在CPU上编写程序,该怎么去培养懂得在超级计算机上编写并行处理程序的软件工程师呢?毕竟,理想是理想,现实是现实。但是David Kirk先生,竟然就说服了Jen-Hsun,投入很多资源研发出了能够让GPU变得通用化的CUDA技术。等到这个技术成熟以后,David Kirk又向CEO提出要求:NV未来所有的产品,每一颗GPU,无论是卖到哪个产品线的,都必须支持CUDA!
David Kirk的理由是这样的:如果仅仅是数据中心版本的GPU支持CUDA,那么只会有很少的工程师拥有合适的硬件来学习和研发CUDA程序;如果普通消费者的显卡不支持CUDA程序,那么这种技术永远不可能变成一种普惠的、能够影响大多数人的成果。因此要么不干,要么就彻底地大干特干。
即便是今天回想起来,这仍然是一个风险极高、形同疯狂的决定。要知道,那个年代的Nvidia,几乎100%的收入都来自电脑游戏或者美工设计等传统应用。这意味着面对这些尚没有高性能运算需求的传统客户,Nvidia都必须在硬件产品的设计中增加相关的CUDA逻辑电路,这使得芯片面积增大、散热增加、成本上升、故障几率增加;同时,对于每一款产品,相关的软件驱动都必须保障对CUDA的完美支持。要知道,CUDA本身的升级换代,使得对过去每一款硬件产品的兼容性支持变成了海量工作(我想NV至少有几百名驱动程序工程师哭晕在厕所)。最要命的是,谁也说不清这些额外的工作,除了要成就把每一台PC都变成超级计算机这样遥远的科学理想,到底对消费者有什么具体的价值。
很显然,这样的决定如果放在一般的把风险控制和短期利益看得很重的公司,是绝无可能发生的。但Jen-Hsun Huang不是一位普通的CEO。他支持了这个伟大的、同时也伴随巨大风险的决定。于是,2007年,从Nvidia的Tesla架构(内部代码G80)开始,NV出的每一款GPU芯片(除了Tegra1-4等移动嵌入式系列),都完全支持GPGPU的CUDA架构。
和今天Nvidia的繁荣景象不同,2008年的Nvidia处在水深火热中。一方面CPU大咖AMD收购了NV的老对手ATI,形成了CPU整合GPU的新解决方案;一方面Intel中断和Nvidia之前在集成显卡方面的合作,把三维图形加速功能集成进了自家的芯片组。面对两大CPU巨头的合力夹击,NV的局面异常紧张,只剩下高性能的独立显卡一条路。然而屋漏偏逢连夜雨,NV主打的高端笔记本独显产品8600M系列出现了和散热有关的品质问题,很多采用了这款显卡的笔记本电脑(所有的主流品牌包括苹果的MacBook Pro)出现了黑屏甚至是烧机等故障。这时,NV除了面临用户和股民们潮水般的谴责和质疑,还要面对整机厂商的诉讼和赔偿要求。
对于重大的产品品质事故,当时在公司内外部都流传着这么一种质疑:虽然事故的直接原因是芯片制造商台积电(NV是一家fabless的芯片公司,也就是只设计芯片,把芯片生产外包给其他公司)采用的一种没有经过长期充分验证的封装材料导致芯片散热出现问题。但是如果不是每个芯片都支持CUDA,那么散热的压力原本可以轻松一点,制造部门也就没有必要铤而走险采纳台积电的不成熟方案。
与此同时,竞争公司Intel和AMD的攻击一波一波来袭。Intel计划推出的GPCPU方案Larrabee采用了大规模支持x86指令集的阵列,号称能让Legacy Software顺利运行(后来该方案在2010年由于性能不如预期等原因被Intel取消);AMD则在竞争激烈的游戏显卡市场推出游戏性能强大并且功耗和散热更优的纯粹GPU产品直接竞争。一时间,Nvidia颇有些四面楚歌的感觉。在2007到2008年度,NV的股价从最高37美元跌落到最低6美元左右。
而就在2009年1月,David Kirk离职了。他离职后去了UIUC和Wen-mei W. Hwu教授一起开了一门关于CUDA的编程课。我也应他们的要求帮他们的教科书写了一点东西。那时我听到一些谣言,说Jen-Hsun Huang后悔支持CUDA了。不过接替Kirk的是斯坦福大学计算机系主任Bill Dally教授。Dally教授是并行运算领域的大牛级专家,而且是Kirk在加州理工的校友。这个人事任命消息使得我确信之前听到的传闻都是谣言。Dally是增强版的Kirk,Nvidia并没有放弃让每一台PC成为超级计算机的理想。
从2009年的GTC开始,CUDA、高性能科学运算和个人超级计算机变成了一家游戏显卡公司最显著的主题。来自计算机视觉、自然语言处理、语音识别、生物、医疗、天文地理、脑神经科学,甚至是社会科学的研究者们,基于CUDA,在他们的个人电脑上不断挖掘出惊人的计算力。这些成果发表在各个领域的各种重要期刊上,推动着这些领域的快速发展。2011年,我在谷歌的同事们发起了一个叫做Google Brain的项目,大量地使用GPGPU技术把深度神经网络技术应用在几个重要的人工智能应用领域里。2012年的CVPR,他们探索出只用一个模型就可以在不同图片中区分10万种物体的检测算法,并成为CVPR最佳论文。在我看来,这一年是人工智能技术发展的分水岭。从此这个领域的进展真的可以用日新月异来形容。2013年,我离开山景城的谷歌研究院,回到北京创立了格灵深瞳,中国最早的一批人工智能公司。
今天,格灵深瞳的所有产品(硬件部分)都采用了Nvidia的GPGPU处理器。格灵深瞳能够有今天的机遇,离不开这家令人尊敬的显卡公司,离不开Jen-Hsun、David Kirk这些有远见和魄力的企业家和科学家。
有人说是深度学习技术成全了NV的GPGPU,要不然NV这么多年对科学运算大规模的投入可能就打水漂了。其实我认为,反而是GPGPU技术,成全了深度学习技术。数据运算的能力,对于人工智能领域,就像空气和水对生命的重要性一样。
2015年夏天在广州的一个活动上,我很高兴地再次遇见了David Kirk。那时他已经全职回到了Nvidia工作。人工智能领域经过几十年的发展,道路曲折坎坷。很幸运我们这个领域总是被一些有远见的人预见和引导。远见很重要,但坚持理想,让远见落地变成现实是需要勇气与魄力的。
关于格灵深瞳:
一家具备计算机视觉和深度学习技术以及嵌入式硬件研发能力的人工智能公司,作为一家视频大数据产品和方案提供商,公司主要关注的领域包括公共安全、智能交通、金融安防等,同时公司在无人驾驶、机器人和智能医疗方面也进行了深入的布局,目前已经推出了深瞳人眼摄像机、威目视频结构化系统、威目人脸识别系统、威目车辆大数据系统、威目视图大数据平台以及皓目行为分析仪等产品。