加入雷锋网,分享 AI 时代的信息红利,与智能未来同行。听说牛人都点了这里。
雷锋网按:本文作者赵勇,格灵深瞳 CEO,雷锋网授权发布。
2016 年人工智能最吸引眼球的事件莫过于谷歌旗下的 DeepMind 依靠人工智能算法的阿尔法狗在围棋比赛中大胜人类顶尖选手。但要算商业价值的落地,2016 年人工智能的赢家则非 Nvidia(英伟达)莫属。这家全球领先的显卡公司最新的季度财报(截至 2016 年 10 月 30 号)显示该公司的营收比去年同期增长 54%,尤其是在数据中心业务方面有了两倍多的增长。该公司的股票在过去的一年中也增长了 4 倍多,稳坐了标普 500 的榜首。
Nvidia 在人工智能芯片市场的真实统治力,可能比股票市场上的亮眼成绩更为显著。尽管市场上也存在其他深度学习训练(training)和预测(Inference)的解决方案,但试问各家 AI 企业,无论其内部的模型训练,还是销售给最终客户的智能产品,绝大多数还是采用了 Nvidia 的 GPGPU 方案。在 Nvidia 不断从各个角度(服务器、PC、嵌入式、汽车、训练专用和预测专用)推陈出新的时候,其他各家竞争公司基本上还处在尝试初次产品化的过程中。据我粗略估计,Nvidia 在人工智能芯片领域,领先最接近的竞争者至少有 2 年的时间。
今天 Nvidia 在人工智能领域的优势绝对不是一日之功。事实上整个深度神经网络技术在过去三年的崛起,除了大规模数据(如 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 工作。人工智能领域经过几十年的发展,道路曲折坎坷。很幸运我们这个领域总是被一些有远见的人预见和引导。远见很重要,但坚持理想,让远见落地变成现实是需要勇气与魄力的。