曾从事 x86、Arm、MISC 和 RISC-V 处理器研究的芯片架构师 Jim Keller 批评了英伟达的 CUDA 架构和软件技术栈,他认为 CUDA 是英伟达的沼泽而非护城河。
“CUDA 是沼泽,而不是护城河。x86 也是一片沼泽。[…] CUDA 并不美好,它是通过一次堆积一件东西来构建的。”
https://twitter.com/jimkxa/status/1758943525662769498
他指出,就连英伟达本身也有多个专用软件包,出于性能原因,这些软件包依赖于开源框架。
就像x86一样,CUDA在保持软件和硬件向后兼容性的同时逐渐增加了功能。这确保英伟达的平台完整且向后兼容,但它影响了性能并使程序开发变得更加困难。同时,很多开源软件开发框架可以比CUDA更高效地使用。
Jim Keller 写道:“基本上没有人编写 CUDA,如果你确实编写 CUDA,它可能不会很快。[...] Triton、Tensor RT、Neon 和 Mojo 的存在是有充分理由的。”
甚至英伟达本身也有不完全依赖 CUDA 的工具。例如,Triton Inference Server 是英伟达的一款开源工具,可简化 AI 模型的大规模部署,支持 TensorFlow、PyTorch 和 ONNX 等框架。Triton 还提供模型版本控制、多模型服务和并发模型执行等功能,以优化 GPU 和 CPU 资源的利用率。
英伟达的TensorRT是一种高性能深度学习推理优化器和运行时库,可加速英伟达 GPU上的深度学习推理。TensorRT 从各种框架(例如 TensorFlow 和 PyTorch)中获取经过训练的模型,并对其进行优化以进行部署,从而减少延迟并提高图像分类、对象检测和自然语言处理等实时应用程序的吞吐量。
尽管像Arm、CUDA 和x86这样的架构可能会被认为是沼泽,因为它们的演进速度相对较慢、必须向后兼容并且体积庞大,但这些平台也不像GPGPU这样分散,这可能根本不是一件坏事。