CUDA(计算统一设备架构)是一个并行计算平台和编程模型,由Nvidia创建,于2006年首次发布,它允许开发者编写通用代码在GPU上运行,而不仅仅是用于图形渲染的代码。它为程序员提供了一种相对便捷的方式来利用GPU数千个并行核心进行任意计算,通过为C和C++等语言添加GPU专用扩展来实现。
历史与目的
在CUDA出现之前,使用GPU进行非图形计算需要将问题表达为图形操作,例如纹理和着色器,这种变通方法除了计算机图形学领域之外很少有人觉得实用。Nvidia在2006年发布CUDA消除了这一障碍,并且在接下来的十年中,该平台通过在高性能计算、计算金融以及从2010年代初开始的深度学习研究中的采用而不断成熟。2012年AlexNet的成功,正是使用CUDA加速的GPU训练的,展示了深度学习的潜力,并推动了基于CUDA的GPU训练领域的研究投入激增,巩固了该平台在这一领域中的地位。
技术角色与生态系统
CUDA提供了底层库,例如用于神经网络原语的cuDNN和用于线性代数的cuBLAS,大多数深度学习框架都构建在这些库之上。PyTorch和TensorFlow这两个主流的深度学习框架,都编写为在CUDA上高效运行,截至2020年代中期,绝大多数已发表的深度学习研究和生产级AI系统都运行在支持CUDA的Nvidia硬件上。这形成了一道强大的软件护城河:将大型AI代码库从Nvidia GPU迁移到竞争对手的硬件(如AMD的ROCm平台或Google的TPU)通常需要大量的工程工作,因为从个人研究代码到生产级推理服务器,大量工具都是专门针对CUDA编写和优化的。
意义与批评
CUDA与GPU硬件本身一起,被广泛认为是Nvidia在2020年代AI热潮中主导AI硬件市场的决定性因素,因为竞争对手很难仅靠硬件性能来撼动Nvidia的地位,而整个软件生态系统--从研究库到大语言模型训练框架--都默认假设CUDA的存在。批评者(包括竞争芯片制造商和一些AI实验室)将CUDA描述为一种专有的锁定机制,它提高了成本并限制了硬件选择,因此他们支持开放替代方案,例如OpenAI的Triton语言,旨在简化编写可跨供应商移植的GPU代码。尽管做出了这些努力,截至2025年,CUDA仍然是大多数深度学习软件(从学术研究代码到运行前沿基础模型的基础设施)的默认底层假设。