英伟达现在为什么甩AMD几条街了?
英伟达甩的不是街,是次元。
英伟达在大概2007年前后,做了CUDA这个变革。但CUDA本质上不是技术变革,而是思想变革。
在这之前,芯片制造商,最多只考虑到芯片如何适配到OS,调好固件、写好驱动层,实现系统调用所需的接口,其余交给更下游的应用软件开发商。
CUDA并不是仅仅把算子和并行计算调度做好,然后坐等适配。而是直接触达CUDA能够落地的场景,把这个场景所需要的软件的所有中间环节都全包了。
CUDA是英伟达GPU架构的最基本的可调度执行单元,CUDA也是一门类C语言的并行计算编程的学问。但实现CUDA为基础的复杂的SIMD硬件调度架构、实现CUDA语言编译器、运行时只是英伟达所做的许多事中最基础的。
如果英伟达只做这几件事,它完全在技术上可以把开发链路打通,但绝对不会成为许多计算领域的不可替代的事实标准,更不可能变成AMD+Intel+博通等竞品联手也过不去的护城河。
英伟达最初做CUDA时,几乎是主动去高校、企业主动去采集需求,把整个行业的需求理清。然后把这些未必会支付资金、未必会一定采用CUDA套件的“潜在”客户当甲方,组建研发团队开发整套软件、函数库、sdk。
有些库并不和CUDA有关,但它是CUDA落地的某个场景可能需要的,英伟达也会投入软件人力去给开源社区贡献。
为了让客户接受CUDA,英伟达几乎直接向高校白送GPU,用户甚至不需要了解CUDA的许多细节,只要往电脑里插上N卡、装好驱动和指定的几个软件,就可以无缝接入原有工作流。
而在接入之后,用户发现,它的速度比此前快10倍都不止。然后用户就陷进去,再也离不开CUDA了。
最终,CUDA成了个体系,它既不单指GPU里的那个最小硬件单元,也不仅仅是那个类C编程语言,而是这个体系构筑的一切上层建筑。
AMD或英特尔兵临城下,也无法今天替换这个体的一部分模块,明天替换另一部分模块,慢慢的让深陷CUDA的用户无痛转移到自己的平台。
即使老黄允许、用户配合,也很难绕开英伟达的GPU做到这一点。即使从0开始复刻CUDA,那也将是一个很长的周期,哪个商业公司能够支撑起交付周期如此久的长期投入,还是个复制品呢?何况CUDA也在不断演化,等实现了CUDA复刻版,老黄已经抓住了新的增长点练新的神功了也未可知。
所以即使Jim Keller也只能说“CUDA不是护城河,是沼泽”。CUDA早就把整个行业都陷进去了,就是硅仙人,也没办法把任何一个商业公司从其中拽出来。
何况在2024年,天时也不在英伟达的对手那里。
老黄当年搞CUDA,刚好赶上2007年后全球计算机普及浪潮,在那之前,只有少数几个GPU公司注意到GPU的通用并行计算能力,但谁也不知道该如何落地。2024年,全球再没有当年的市场增量了,所以没有第二家可以重新CUDA。
HIP/OpenCL都是各家先后对抗CUDA尝试失败的结果。我认为他们的失败,最核心的原因都是因为对最终要落地哪些场景的不理解从而天马行空地盲目指定技术路线。
回看英伟达,从它的硬件架构选择SIMT形式而非VLIW、决心创造CUDA语言编译器等,都是长期规划,从未来需求反过来影响技术决策。
老黄是英伟达的创始人,是公司的灵魂人物,又是个技术出身的工程师。只有老黄这样一个人——既有卓越的技术视野、又不同于对投资者负责的职业经理人的企业总裁,才可能有能力和执行力长期持续布局和投入CUDA。英特尔、AMD、博通等大厂是不可能有这么一个人主导这一切的。
英伟达也不是没走弯路,但相比而言,ATI-AMD更像是赌,Intel在GPU领域更像是急不可耐秀技术,它们都不可能成为第二个英伟达。
ROCm至今,它能够占据一席之地依然具有偶然性。AMD某些方面,在步英伟达老路。但英伟达跑太快了,走它的老路,不仅不会追上它反而有可能被甩越来越远。
AMD在2012年终于下定决心革新GPU架构了——VLIW具有不错的能效,但在GPGPU领域的编程复杂性让它上限不高,于是第一代AMD血统的SIMT架构GCN诞生了。GCN虽然被寄予厚望,也验证了在通用计算领域具有良好表现。
但它在图形渲染的性能上并不出众,甚至是IPC偏低。AMD发现,老黄可以在计算卡架构上强行优化,做图形渲染,而自己不行。于是在GCN磨蹭了七八年后,又分成了CDNA/RDNA两个架构。
但老黄哪里会原地不动呢?RDNA开始在光栅性能上追赶英伟达时,老黄又打出了DLSS/RayTracing,开了一个新赛道,你跟不跟?
这里又能够看出老黄做芯片的思路的先进性——DLSS并不是纯粹芯片设计团队能够想出来的花活,而是软件团队搞定了算法,又发现了算法中算力瓶颈的地方,将这部分作为需求提交给芯片团队,由芯片团队设计加速单元后,软件团队再调度并包装成编程接口。
AMD最初没有考虑这么久远,它是纯软件实现并不和特定硬件绑定的,因此在FSR迭代了几版之后,效能开始被老黄甩开,又不得不考虑硬件加入加速单元。光追等其他花活同理。
老黄说,英伟达不是芯片公司,而是软件公司。它的意思是,芯片只是英伟达软件帝国的核心,它是围绕这个芯GPU把一切软件生态都做了。2024年初,英伟达拥有约24000工程师,其中17000是软件开发者。
这种方式,让AMD即使技术路线紧紧跟随,但团队构成截然不同使得后者连抄作业都抄不动。所以 A高管才会在媒体上说,AMD不准备再弄一套CUDA,除了没天时,还因为抄不动。
目前AMD和业界所认为的“CUDA软肋”,其实不过是新的增长点即大模型训练,这些软件上层框架可以绕过CUDA直接调用CPU的编程接口,代表就是PyTorch。
但这也只能说明,在这个新兴领域,CUDA具有可替代性,AMD等厂商有了机会。并不能说明CUDA将错失这个新风口,更不能说明CUDA将被全面取代。
CDNA发现至今,尤其是MI300系列,通过整合几种先进封装的方式,将HBM、CPU、GPU整合在一起。Infinity Fabric将多个CPU/GPU小芯片灵活配置,支持UMA并支持最多八路并行仍可以维持访存一致性,又能够保持强大的计算性能。这一切都表明,AMD在苏妈的带领下,拥有很强的芯片设计能力。
但即便如此,苏妈的投资者电话会议吹风,也只敢说目标的市场占有率为10%,和老黄比,这是一个何其卑微的目标?
AMD可以靠Zen架构蚕食Intel CPU在服务器领域、在客户端PC领域的存量市场从Intel身上撕下一块块肉,却对黄教主打下的江山毫无办法。