对于 x86、Arm、MISC 和 RISC-V 等处理器架构都有深入研究的传奇处理器架构师Jim Keller批评了被外界认为是英伟达(NVIDIA)“护城河”的 CUDA架构和软件堆栈,并将其比作x86,称之为“沼泽”。
他指出,就连英伟达本身也有多个专用软件包,出于性能原因,这些软件包依赖于开源框架。
“CUDA 是沼泽,而不是护城河,”凯勒在 X 帖子中写道。“x86 也是一片沼泽。[…] CUDA 并不漂亮。它是通过一次堆积一件东西来构建的。”
确实,就像x86一样,CUDA在保持软件和硬件向后兼容性的同时逐渐增加了功能。
这使得英伟达的平台完整且向后兼容,但它影响了性能并使程序开发变得更加困难。
同时,很多开源软件开发框架可以比CUDA更高效地使用。
“基本上没有人编写 CUDA,”Jim Keller在后续帖子中写道。“如果你确实编写 CUDA,它可能不会很快。[…] Triton、Tensor RT、Neon 和 Mojo 的存在是有充分理由的。”
甚至NVIDIA本身也有不完全依赖 CUDA 的工具。
例如,Triton Inference Server 是 NVIDIA 的一款开源工具,可简化 AI 模型的大规模部署,支持 TensorFlow、PyTorch 和 ONNX 等框架。
Triton 还提供模型版本控制、多模型服务和并发模型执行等功能,以优化 GPU 和 CPU 资源的利用率。
NVIDIA的TensorRT是一种高性能深度学习推理优化器和运行时库,可加速NVIDIA GPU上的深度学习推理。
TensorRT 从各种框架(例如 TensorFlow 和 PyTorch)中获取经过训练的模型,并对其进行优化以进行部署,从而减少延迟并提高图像分类、对象检测和自然语言处理等实时应用程序的吞吐量。
但是,尽管像Arm、CUDA 和x86这样的架构可能会被认为是“沼泽”,因为它们的演进速度相对较慢、必须向后兼容并且体积庞大,但这些平台也不像GPGPU这样分散,这可能根本不是一件坏事。
目前尚不清楚 Jim Keller 对 AMD 的ROCm和英特尔的OneAPI有何看法,但很明显,尽管他花了很多年时间设计 x86 架构,但他并不迷恋其未来前景。
他的言论还暗示,尽管他曾在世界上一些最大的芯片制造商工作过一段时间,包括苹果、英特尔、AMD、博通(现在是Tenstorrent)等公司,但我们可能不会在NVIDIA的名单上看到他的名字。