Jim Keller 批评 Nvidia 的 CUDA、x86
一位知名芯片设计师声称 Nvidia 的 CUDA 软件栈和 x86 架构是“沼泽,而不是护城河”,引发了关于这种复杂但向后兼容的平台究竟是优势还是负担的讨论。评论者将 CUDA 占主导地位的生态系统和强大的库,与 AMD 较弱的 ROCm 支持和驱动问题进行对比,同时也审视了厂商锁定、硬件可得性以及 AI 负载如何影响 GPU 采用。讨论进一步扩展到 x86 对 ARM 以及 RISC 对 CISC 的设计权衡,许多人认为,实际兼容性和数十年的工具积累比 ISA 的“纯粹性”更重要。
关于 Triton 的澄清与背景
- 多条评论指出,文章把 OpenAI 的 Triton 语言和 Nvidia 的 Triton Inference Server 混淆了;前者是一种类似 Python 的 GPU 编程语言,后者是一个模型服务系统,并不是 CUDA 的替代品。
- 有人强调,这位批评者在一家 Nvidia 的直接竞争对手工作,读者认为这本应明确作为潜在偏见加以说明;不过也有人说,正是这些观点促使他去成为竞争者。
CUDA:护城河、“沼泽”与开发者体验
- 很多人认为,当人们说“CUDA 是护城河”时,真正指的是整个 CUDA 生态系统(如 cuDNN、cuBLAS、TensorRT 这类库),而不只是底层语言。
- 大家普遍同意,大多数用户是通过更高层的框架(PyTorch、TensorFlow)来使用 CUDA,很少会编写自定义内核;少数人表示自己做过手工优化的 CUDA/PTX,体验强大但困难且耗时。
- 有人认为,这套生态的复杂性和向后兼容性构成了一片“沼泽”,但它依然是一个非常有效的护城河。
AMD、ROCm 与非 Nvidia GPU
- 多个轶事把 AMD 的软件栈描述为不稳定或性能不佳,驱动被视为主要问题,而不是硬件能力。
- ROCm 被描述为大致相当于 CUDA+各类库,HIP 作为抽象层使用,但支持碎片化,而且历史上仅限于特定“pro”或较新的显卡。
- 有人指出,尽管 Nvidia GPU 供应受限,但成熟、无痛的软件支持缺失,仍让大用户留在 Nvidia 上。
x86、ARM 与 ISA 争论
- 讨论回到 x86 作为一种“沼泽”,它逐渐演变成某种针对内部微操作的压缩编码;随着时间推移,支持旧 CISC 特性的成本,相对于总晶体管预算而言变得越来越小。
- 评论者反驳了“x86 内部有一个 RISC 核心”这种过于简单的说法,解释说几乎所有现代 CPU(包括 RISC-V)都会把指令翻译成 µops;“RISC vs CISC”被认为大体上已经过时。
- 对 ARM 崛起的讨论也存在分歧:有人强调 Apple 的 M 系列和 AWS Graviton;也有人指出其 SIMD(SVE 之外)较弱、现实性能表现不一,以及 x86 生态系统强大的惯性。
平台“沼泽”与向后兼容性
- 一些人认为,“沼泽化”(复杂、混乱、向后兼容的生态)是成功平台的共同特征:x86、Windows、PDF、Web、Linux,甚至资本主义和民主制都是如此。
- 向后兼容性既被视为对用户友好,也被视为竞争对手的障碍,即便底层设计并不完美,它仍会强化护城河。