今天小编分享的互联网经验:英伟达暗讽英伟达运气好,GPU如何押中AI?,欢迎阅读。
图片来源 @视觉中国
文 | 电厂,作者 | 肖余林
在 12 月推出 AI 新品之际,英特尔 CEO 基辛格把枪口对准了英伟达。基辛格先是公开强调英伟达 CUDA 軟體的护城河没有外界想象的那么深,接着在麻省理工的一场论坛上名褒暗贬,称英伟达在 AI GPU 领網域极其幸运(extraordinarily lucky)。
基辛格把英伟达的成功归结为运气,并且认为好运曾站在英特尔那边。
他强调,英伟达最初拿 GPU 做通用运算完全没有考虑过 AI。他不无可惜地提到,如果他当初没有被踢出英特尔,他看好的 Larrabee 项目就不会被终止,那么改变 AI 形态的可能是 Larrabee,而不是 CUDA。
Larrabee 是英特尔早期开发的通用图形处理器(GPGPU),英伟达同期也在做类似项目,并在此基础上推出了 CUDA 平台。
基辛格的判断并非没有理由,他在 13 年前被迫从英特尔离开的时候,英伟达推出 CUDA 没多久。CUDA 1.0 的早期文档中描述了通用计算的前景,涉及物理模拟、计算金融和计算生物学,确实没有 AI 的身影。更重要的是,帮助英伟达 CUDA 做深度神经网络库的高管就来自基辛格所说的 Larrabee 项目。
这位高管是英伟达现在的深度学习应用研究副总裁 Bryan Catanzaro。但在基辛格发难之际,他在社交媒体 X 上表达了相反的观点。他认为," 英伟达今天的地位并非来自运气,而是眼光和执行力 "。
回看商业领網域的企业浮沉,运气常常是被忽略的因素。99 岁的芒格在生命的最后一段时间做出如此总结:" 那些脱颖而出的人和公司,通常具备智慧、勤劳和大量的运气。"
翻看 GPU 和 AI 技术互动的历史,不难发现英伟达不仅有好运气,甚至好运气的周期足够长。问题是,支撑这种好运气的到底是不是 " 眼光和执行力 "?
" 泼天富贵 " 降临的时刻
今天英伟达一卡难求 H100 GPU 有两个主要买家,其中包括微软。根据 Omdia Research 的报告和瑞杰金融的估价,微软买了 15 万块 H100,总花费在数十亿美元。考虑到 H100 供不应求的现状,可以说这钱是微软 " 求着 " 让英伟达收下的。
然而时间回到 2011 年,如果当时微软研发专家想采购一块 1 万美元的 GPU,要遭到不少内部压力,即便这些 GPU 会被用在极具商业潜力的项目上。不仅是微软,谷歌也一样,10 年前认识到 GPU 能力的人和公司屈指可数。
2013 年,谷歌人工智能主管了解到,公司挖角的深度学习研究员从不使用公司强大的数据中心,而是私自架一台 GPU 藏在工位下面使用。了解情况后,他申请 1.3 亿美元预算采购 4 万块 GPU。科技记者 Cade Metz 在《深度学习革命》一书中记录,这笔预算遭到了管理层强烈反对,最后创始人 Larry Page 拍板才被通过。
更夸张的是,英伟达也没有完全认识到 GPU 的潜力,直到谷歌 1.3 亿美元的订单砸下来,才在深度学习领網域有实质的业务布局。英伟达 2014 年的技术大会上首次出现了深度学习、机器视觉这样的主题。
2013 年被认为是英伟达被命运选中的时刻,也是长达 10 年的 " 泼天富贵 " 的起点。然而英伟达不想把这天降的命运归结为运气,它坚持认为,2000 年代中期就意识到了 GPU 在神经网络应用的潜力。
商业巨头合力改写历史
在今年的一篇博客文章中,英伟达把 GPU 应用于深度学习的成功案例追溯到 2008 年的一篇论文,论文来自于斯坦福大学教授吴恩达 ( Andrew Ng ) 。吴恩达的小组得出结论,当时 GPU 在深度学习工作中的计算能力远远超过了多核 CPU。他们使用两张 GTX 280 GPU,训练具有 1 亿个参数的神经网络时,速度比使用 CPU 提高了 70 倍,训练时间从数周缩短到一天左右。
英伟达的编程軟體 CUDA 在 2007 年推出,由于不是为了深度学习而生,研究人员需要借助 CUDA 把原本基于 CPU 的代码重写成 GPU 代码。吴恩达的这篇论文中有相当篇幅介绍 CUDA 的使用思路,因此在后来进入了英伟达的视野。
2008 年,Bryan Catanzaro 从英特尔来到英伟达,他认为自己是英伟达第一个,也是当时唯一一个 AI 研究人员。Catanzaro 在接受媒体采访时表示,他从纽约大学人工智能实验室得知,有一群机器学习研究人员在疯狂地为 GPU 核心编写軟體。他受到启发,在当时的工作成果的基础上,催生了 CUDA 深度神经网络库(cuDNN)。
如果把 CUDA 比作 AI 的工作台,cuDNN 就是 AI 专用的螺丝刀,cuDNN 于 2014 年发布,是英伟达首个针对深度学习的軟體产品。
Bryan Catanzaro 认为,真正让英伟达 GPU 在 AI 领網域出圈的是一场比赛。2012 年举办的 ImageNet 图象识别大赛中,首次参赛的 AlexNet 神经网络表现出超出人们想象的识别率而一鸣惊人。这次比赛引发轰动,被认为是深度学习爆发的初始事件。
AlexNet 来自于有 " 深度学习之父 " 之称的 Geoffrey Hinton 和他的两个学生。比赛中,他们没有采用当时普通会用的计算机视觉代码,而是押注在深度学习上,让机器自学识别影像。当时最让人吃惊的是,AlexNet 只用了两块 GTX 580 GPU。谷歌同期的技术想要从影像中识别猫,需要用到数据中心当中的 2000 个 CPU。
在此基础上,Catanzaro 详细研究 GPU 和 CPU 的能力对比。他发现,当时 2000 个 CPU 的深度学习性能,只要 12 个英伟达 GPU 就可以实现。一系列突破和研究让商业公司窥见到深度学习的未来,硅谷巨头们,包括百度等科技公司开始着手用 AI 重构未来版图,GPU 成为他们版图中的砖块,英伟达从此划出了第二条增长曲线。
然而需要强调的是,这个看起来完整的故事并非全部。在 2012 年之前,深度学习是一个很小的领網域,商业公司的参与让这个小领網域成了共识。反过来,由于商业公司以自己的视角参与和讲述其中的过程,也因此改变了历史样貌。
在一些研究人员看来,他们对 GPU 的认识和使用远早于商业公司的发现,在英伟达运气的背后,有着被遗忘的人与事。
一桩深度学习的公案
2012 年,Geoffrey Hinton 用 AlexNet 奠定了自己和两位学生在深度学习领網域的地位。Hinton 的其中一位学生在 2015 年进入 OpenAI,他是 2023 年 OpenAI" 宫斗 " 闹剧的主角之一—— IIya Sutskever。
IIya 因为闹剧而走出实验室,被全世界的网友认识,成为科技名人。在闹剧最激烈的时候,吃瓜的 Elon Musk 发了一条推文,向网友介绍了从未出圈的重磅科学家 Jurgen Schmidhuber。
Jurgen Schmidhuber 是当今顶尖的 AI 科学家之一。他在 1997 年发明的长短期记忆网络(LSTM)现在被用在绝大多数的语音识别和机器翻译产品当中,比如苹果的 Siri、亚马逊智能音箱、谷歌翻译等等。
在他的个人博客当中,详细记录了自己团队对整个 AI 社区的技术贡献。他在博文中说明,GPT 当中代表 "Transformer" 的 "T" 和代表 " 预训练 " 的 "P" 都基于他的团队的工作成果。这可能也是马斯克发表那条推文想表达的思想。
最让 Schmidhuber 耿耿于怀的,是让 Geoffrey Hinton 名声大噪的 AlexNet。在他看来,AlexNet 取得的成就基于 AI 社区的技术成果,不该拿走所有的光环。他提到同期的 DanNet 神经网络,DanNet 更早使用了 GPU 训练,更早在比赛中超过了人的视觉识别能力,并且获奖更多。
电厂翻阅 DanNet 的资料发现,它来自于 Jurgen Schmidhuber 领导的团队,所参加的比赛往往直接服务于商业和科学应用,比如手写字识别、癌症医学图象识别等。DanNet 首次获奖于 2011 年,且在 2012 年拿下了参加的所有比赛冠军。由于 DanNet 专注于参加识别大影像的比赛,因此没有在 2012 年跟 AlexNet 同台竞技。
外界基于从 AlexNet 开始的商业视角认识深度学习,把 AI 社区的荣誉加诸于 Geoffrey Hinton 身上,这让 Schmidhuber 感到不满。2020 年,他试图通过《自然》杂志纠正这种现象,由此引发了 AI 社区在当年的激烈辩论。
这场公案也显示,用 GPU 训练神经网络在 2011 年就已经是成熟的方法。电厂根据 DanNet 早期论文发现,英伟达好运气的起点可以追溯到 2000 年初期。
被忽视的十年
上世纪 80 年代,AI 研究从危机中走出来,各种新技术相继诞生。1986 年 Geoffrey Hinton 的反向传播算法、1989 年 Yann LeCun 的卷积神经网络、1997 年 Jurgen Schmidhuber 的长短期记忆(LSTM)等帮助 AI 社区破冰。
进入 2000 年,这些新型的理论技术需要算力支持才能高效地投入研究,但基于 CPU 的工作往往要经历相当长的周期。幸运的是,学术界使用 GPU 从事数值计算的工作启发了神经网络研究人员。
同期,为游戏而生的 GPU 开始被迁移到 Windows 平台,游戏画面也从 2D 进入 3D。为了应对需求,英伟达不断更新 GPU 性能。
GPU 要在 3D 转换中运行大量矩阵乘法,这跟 CPU 的逻辑运算完全不同,却跟神经网络的工作过程非常相似。如果把 CPU 比作一个具有逻辑思维的成年人,GPU 就是 100 个学会了加减法的小学生,神经网络训练需要后面这种方式。
电厂把时间追溯到 2004 年,当年出现的一篇论文中,研究人员使用 ATI Radeon 9700 Pro 显卡把神经网络训练效率提升了 20 倍。2005 年和 2006 年,圈子里陆续出现测评论文,在奔腾处理器、ATI GPU 和英伟达 GPU 之间做比较。2007 年,英伟达推出 CUDA 軟體简化了 AI 社区针对 GPU 的编程工作,成为 AI 社区的主要选择。
这时候,GPU 训练的瓶颈出现在内存和 GPU 之间的数据传输环节。2008 年吴恩达那篇论文显示,使用 GTX 280 GPU 的过程中,两个矩阵相乘所花费的总时间约为 20 毫秒,但实际计算只占其中的 0.5%,剩下的时间都是传输数据的时间。
2010 年,英伟达推出 GTX480 和 GTX580 显卡。虽然 GTX480 在游戏表现上因发热 " 翻车 ",但由于引入了 L2 缓存,意外解决了之前 GPU 训练遇到的瓶颈问题。这代显卡成为了 DanNet、AlexNet 在训练上取得突破的硬體基础。
可以说,从 CUDA 到 L2 缓存,英伟达在 GPU 上的两次 " 无心插柳 " 的硬體设计,都击中了深度学习的需求,无意间参与到 AI 社区的发展当中。
总结来看,从 2000 年初期到 2012 年,英特尔、谷歌、微软等巨头成为科技的主导力量,但 AI 的漫长探索始终处在他们的盲點。这其中,英伟达 " 无心插柳 ",但十年的周期足够一棵树长成一片森林。特别是 2012 年之后,英伟达在 CUDA 上的投入产生了更深远的价值。
如今,英伟达的 AI 芯片成了整个 AI 商业版图当中的砖块,基于 CUDA 的技术栈也成了砖块之间的水泥。看上去,在整个 GPU 生态中英伟达已经无可撼动。
然而就在这样的确定性时刻,依赖英伟达的科技巨头们反而暧昧起来,一方面加大跟英伟达的订单,另一方面纷纷推出自研芯片,微软推出了 Maia 100,亚马逊更新了 Trainium 2,谷歌的 TPU v5p 已经帮助节省了可观的成本。
英伟达 H100 这样通用 GPU 具备灵活性,及时补充了生成式 AI 爆发带来的需求。随着需求沉淀,AI 商业社区在底层技术上一旦形成共识,对通用 GPU 的需求可能会让位给专用的 TPU 或者定制芯片。因此,比过去的任何时刻,英伟达都更加需要 " 无心插柳 " 的运气。