忘记Nvidia用了30年才一夜成名的事实吧,它最近令人难以置信的崛起似乎有点泡沫的潜质。
大约15年前,Nvidia进行了一场豪赌,从游戏转向高性能计算和人工智能,而且各项数据变得越来越疯狂。过去三个季度,Nvidia的收入同比增长一倍多。在将长期领导者英特尔公司推回后视镜之后,Nvidia最近又宣布进行10比1的股票拆分,以保持股价实惠。
但让我们问一个更为微妙的问题吧。当然,最终在某个时候万有引力定律会打击Nvidia,但更可行的一个问题是,长期来看Nvidia的地位会有多稳固。答案可能不仅取决于Nvidia如何有效地保持技术优势,还取决于平台的粘度。对于AI开发者来说,加入或退出Nvidia有多容易?壁垒是否足够高,以至于我们正在见证事实上的AI主机的诞生?
正如我们今年早些时候指出的,Nvidia主导着先进AI处理器的供应链。AWS和Google Cloud都推出了自己的专用芯片,而AMD和英特尔还在焦急地准备着。如果这只是通用芯片,那么确实需要一定的时间来提高制造能力,但最终,供需规律应该会创造公平的竞争环境,就像英特尔和AMD芯片不仅可以在“Wintel”电脑上互换,还可以在Mac上互换是一样的。
但这里有个剧透。我们谈论的不仅仅是芯片和晶圆厂。在过去15多年里,Nvidia一直忙于构建一个自上而下的技术堆栈,这为典型的“锁定”提供了机会。在Nvidia处理器产品组合之上,是不断扩展的软件堆栈,正在把Nvidia转变为端到端的软件和硬件计算平台。从芯片到超级计算机,再到库、工具和微服务,Nvidia AI Enterprise采用了统一的、通用的架构构建方法,与大型机有着惊人的相似之处。
虽然Nvidia成立于20世纪90年代,为游戏玩家设计芯片,但真正的企业故事始于2006年推出CUDA,这是Nvidia及其合作伙伴提供的150多个库、软件开发工具包、分析和优化工具组合。Nvidia不得不重新设计整个芯片产品组合以运行CUDA。
CUDA(Compute Unified Device Architecture)是一个并行计算平台,使开发者能够定义在Nvidia GPU上运行的并行函数。CUDA让开发者能够使用应用编程接口,而不必编写低级驱动程序,就像他们在使用CPU的习惯一样。
CUDA产品组合尤为丰富,支持深度学习、线性代数、信号处理(用于音频和视频)、广义并行和数据处理计算的功能,以及计算光刻和通信的专用功能,等等。CUDA抽象了GPU编程的复杂性;让开发者能够专注于分配内存和设置数据传输,而不必担心如何并行写入处理器。
Nvidia将GPU视为运行科学计算工作负载的传统高性能计算架构的一个替代品。传统的高性能计算会配备数百个或者数千个CPU,而GPU是把计算都集中在芯片上,并且针对计算密集型作业(而非输入输出操作密集型作业,CPU就是为此设计的)进行了优化。
但当时,高性能计算还是一个小众市场,华尔街担心CUDA会分散Nvidia对核心市场的注意力。而在21世纪初,摩尔定律仍然具有一定的生命力;直到21世纪10年代,摩尔定律才逐渐失效,GPU或多核将成为唯一的出路。
对于CUDA来说,分水岭是2012年的AlexNet项目,这个实验是要使用卷积神经网络(CNN)进行图像识别。使用CUDA在Nvidia GTX 580 3GB GPU上训练的卷积神经网络以最低的错误率超越了竞争对手。AlexNet研究论文的下载量超过10万次,使得CUDA名声大噪。尽管出现了CUDA的替代品,但在21世纪10年代初期,这些多用途库还是无法与CUDA的定制设计相媲美。
AlexNet证明了Nvidia借助CUDA向技术计算领域迈进的正确性。但在21世纪10年代初期,深度学习和神经网络仍然是前沿技术。Nvidia超越了游戏玩家这个细分市场,进入了更具扩展性的细分市场,但当时这至少仍然是一个细分市场。
Nvidia需要的只是“注意力”
在赢得AlexNet竞赛之后,Nvidia把AI变成了公司对外传递信息的核心。但问题就在这里。如前所述,图像或语音识别,或任何形式的神经网络,都还处于市场早期阶段。相反,21世纪10年代是大数据的十年,在AI方面,机器学习远远领先于深度学习。
数据和机器学习都是IOPS密集型流程,如果你可以扩展到足够多的商品硬件,就可以很好地开展工作;GPU对这些工作负载来说有点配置过高了。毫不奇怪,在大数据的十年里,AWS、Azure和Google——而非Nvidia——一举夺魁。
但随后Google在2017年发表了具有开创性的《注意力,就是你所需要的一切》研究论文,最终让Nvidia获得了它所需要的全部关注。这篇论文中介绍的变压器模式使生成式AI成为可能,因为它提供了一条绕过传统神经网络处理的捷径。在此一年前,Nvidia定制了第一台DGX超级计算机,并将其提供给Open AI。五年后,ChatGPT诞生了。
在此期间,CUDA的广度和成熟度推动了深度学习框架(如TensorFlow、PyTorch、Caffe、Theano和MXNet)的原生支持,这些功能组合来自Nvidia及其合作伙伴。经过20多年的构建,这些库现在已经成为整整一代AI开发者的编码工具。AMD和英特尔制定了宏伟的跨越式计划,让他们全新的先进晶圆厂上线。然而,除非他们能够迎合AI新手开发者,否则AMD和英特尔最好能在编写模拟器方面做得非常好。
CUDA只是一个开始
虽然CUDA是吸引开发者的一个纽带,但实际上它只是Nvidia不断扩展的专有工具和库生态系统的冰山一角。诚然,你可以开发程序来运行Nvidia H100,而无需任何这些层,但Nvidia正在增加便利设施以保持程序员的生产力,并将整个堆栈发展为超级计算平台。它从流行的RAPIDS开源软件库和数据科学API开始,辅以NeMo开发者平台工具,用于策划数万亿规模的token;不同的预配置分布式计算模式的选择;一个预训练的模型库,可以使用内置的快速工程和微调工具进行定制;还和Nvidia自己的Triton推理服务器进行了集成。
在这之上是一层新的微服务,是Nvidia在应用层的表现。Nvidia Inference Microservices(NIM)是一组优化的云原生微服务,用于嵌入为Nvidia堆栈编写的模型,其中包含了用于语言、语音、药物发现和其他模式的标准API,以及预构建的容器和打包了优化模型的Helm图表。借助这些微服务,运行在Nvidia系统上的模型就可以嵌入到企业应用中。
第三方已经在打包自己的NIM以供部署,例如Adobe的PDF提取服务、SAP的Joule copilot扩展、以及ServiceNow的智能助手。Nvidia客户可以单独混合搭配这些服务,也可以将其作为Nvidia AI Enterprise的软件包进行授权,提高了管理所有这些开发和部署服务的能力,而且这些都提供了在部署在服务器和/或边缘的版本。
回到芯片上,Nvidia的模型变得比以往任何时候都更加复杂,Nvidia GB200 Grace Blackwell“超级芯片”通过每秒900 Gb的超低功耗NVLink芯片到芯片互连技术把2个Nvidia B200 Tensor Core GPU连接到Nvidia Grace CPU上。
所有这些都被打包到一台集成的超级计算机中:Nvidia DGX(如图所示)。DGX提供了一个独立的数据中心,可以作为混合云部署在本地,也部署成AWS、Azure、Google或者Oracle Cloud上的服务。根据已发布的报告,自1月以来,Nvidia将DGX云服务与每个超大规模数据中心企业的未来部署量增加了近3倍。DGX包括了基本命令作为管理层,提供所有必要的作业调度、编排、网络和集群管理功能。就像俄罗斯套娃一样,DGX捆绑了Nvidia AI Enterprise——一个完整的软件堆栈。
那么大型机的情况如何?
在大型机的鼎盛时期,IBM主导了企业计算领域。那个时代全是硬件,软件被视为事后考虑的事情:Enterprise MIS部门(当时还不叫IT)要么自己编写程序,要么聘请顾问来做,要么程序与盒子捆绑在一起,当时还不存在商业包装的软件。软件是在特定的硬件平台上编写的,尽管模拟器已经存在,但无法替代真正的硬件。
不可否认,IBM并不是当时唯一的大型机制造商,但Honeywells、Sperry-Univacs、Control Datas和GE最终被扫入了历史的垃圾箱,为它们编写的所有程序也随之被扫入了历史的垃圾箱。20世纪70年代和80年代,随着中端计算机的兴起,也出现了类似的模式,因为为DEC编写的软件已经无法运行在Prime或者Data General机器上,如今,这些代码大部分也已经消失。
当今的世界并非是过去的翻版。专有孤岛和多平台现实并存,一个明显的例子就是苹果公司和其他厂商之间的竞争——移动设备上的Android和笔记本电脑上的Windows。但抽象程度已经足够高了,更不用说只有两个主要生态系统,移动和笔记本电脑开发者可以非常轻松地针对这两个目标平台进行开发。
另一方面,服务器已经成为了一个开放系统的领域,Linux成为事实上的标准,软件跨硬件的可移植性被视为一件理所当然的事情。同样,得益于强大的W3C标准,Web应用应该可以运行在任何一种浏览器上。
但神经网络和人工智能仍然是两码事。鉴于对计算的迫切需求,在转换到另一个硬件平台的时候,任何性能损失都是不可接受的;风险太高了。
如上所述,不仅仅是因为Nvidia在基础设施方面取得了压倒性的领先地位(尽管具有讽刺意味的是,Nvidia实际上并没有制造任何东西),但Nvidia提供了一个完全优化的堆栈,这使得在没有认真重写或重构代码的情况下很难甚至不可能在其他地方获得与之可比的性能。诚然,开发者可以采用架构的方法从平台中抽象出算法,但这需要额外的工作量和预先考虑。考虑到生成或神经网络AI模型对性能的苛刻要求,处理器的定制优化可能是模型取得成功的一个主要限制因素。
Nvidia目前处于垄断地位,但蕴含着潜在的威胁。例如,多年来,人们曾多次尝试将接口与GPU进行通用化,这可以追溯到苹果公司在2008年启动的OpenCL项目;令人惊讶的是,它实际上可以运行在CUDA上。最近,Linux基金会加入了Unified Acceleration Foundation(UXL)项目,这是一个标准框架,应该允许开发者编写可以跨平台运行的代码。借助UXL,那些为在AMD ROCm上运行而开发的模型也应该以英特尔的oneAPI为目标,而无需更改代码了。
谷歌和微软等公司也已经采取行动,在来自AMD等第二来源的基础设施上支持各种竞争对手的专有框架和开放框架。顺便说一句,随着企业在寻求更为紧凑的、特定领域的小型语言模型,这可能会为替代平台敞开一扇大门,而这些平台不必是最强大的平台。
当然,一旦供应跟上,供需法则可能就会追赶上Nvidia的发展速度了。但现在不要抱太大希望。英特尔要到2027年才会推出新的晶圆厂,AMD和苹果也可能需要几年时间才能实现类似的扩张。对CUDA替代方案的支持越来越多,例如一些流行的框架如PyTorch和TensorFlow都支持ROCm等替代方案。
当然,超大规模云提供商提供了自己的专用于训练和推理工作负载的芯片。虽然超大规模提供商希望继续获得Nvidia的青睐,但他们的首要任务仍然是售卖计算周期。超大规模提供商将根据客户需求预订容量。
尽管如此,在短期内,Nvidia最大的担忧是如何与华尔街保持一致,因为由于客户资本支出的影响,明年市盈率可能会趋于平稳。目前,Nvidia并不担忧开发者转向成本较低的平台。Nvidia AI Enterprise仍然比其他任何产品都更完整,更不用说大多数大型AI程序都是为CUDA库编写的。虽然这是一个昂贵而复杂的平台,但Nvidia如今拥有与传统大型机相同的内置防御能力。
好文章,需要你的鼓励
随着各行各业数字化变革的不断深入,人类社会正加速迈向智能化。作为智能世界和数字经济的坚实底座,数据中心也迎来了蓬勃发展。面
“未来软件定义汽车”的设想也成为马丁当前运营路线的指导方针,且高度关注数据、零件和资产管理等议题。