NVIDIA CUDA Python 1.0 推出,为 GPU 开发者带来稳定性
NVIDIA 正式发布了 CUDA Python 1.0 和 CUDA 13.3,这标志着利用 GPU 能力的 Python 开发者的一个重要里程碑。该版本于 2026 年 5 月 26 日宣布,通过语义版本控制承诺提供稳定的 API,并将 Python GPU 生态系统整合到一个统一的框架中。对于开发者来说,这消除了工具和绑定的历史性碎片化,简化了 Python 中的 GPU 编程。
CUDA Python 1.0 并不是单一产品,而是一组旨在与 NVIDIA CUDA 平台无缝集成的库和工具。亮点包括:
cuda.core1.0.0:以 Python 风格访问 CUDA 运行时功能,例如设备、流和内存缓冲区。cuda.compute1.0.0:访问并行算法,例如排序、归约和变换,这些算法针对 GPU 加速进行了优化。cuda.bindings13.3.0:对 CUDA C API 的低级 1:1 绑定,可全面访问 CUDA 的功能。nvmath-python1.0:NVIDIA 的数学库移植到 Python。cuda-pathfinder:一个在 Python 环境中定位 CUDA 组件的工具。
在这些组件中,cuda.core 是一个具有变革意义的元素。它为 Python GPU 库提供了一个通用基础,支持 PyTorch 和 CuPy 等框架之间的互操作性和资源共享。例如,CuPy 分配的 GPU 内存现在可以直接被其他库使用,而无需额外的兼容性层。
这对开发者来说为何重要
从历史上看,Python 开发者在使用 GPU 时面临两种选择:使用像 PyTorch 或 RAPIDS 这样的高级库,但这些库限制了高级自定义选项;或者深入到 CUDA C++ 中编写自己的扩展。CUDA Python 1.0 通过在 Python 中提供对 CUDA 全功能的直接访问弥合了这一差距——无需切换语言或管理单独的构建工具链。现在有了语义版本控制,开发者还可以依赖 API 的稳定性,减少未来更新带来的破坏性变化风险。
新的功能如绿色上下文(green contexts),可以划分 GPU 资源以优化延迟敏感型工作负载,以及进程检查点功能,可以快照并恢复 GPU 状态。这些新增功能使 CUDA Python 1.0 成为库作者和应用开发者的强大工具。例如,构建自定义库的开发者现在可以专注于高层功能,而不是维护低层的 CUDA 绑定,而应用程序则受益于改进的互操作性和减少的开销。
对生态系统的更广泛影响
CUDA Python 1.0 的发布是 NVIDIA 统一 Python GPU 编程的更广泛战略的一部分。通过将 cuda.core 作为基础层进行标准化,生态系统已经开始融合。例如,PyTorch 现在在其 CUDA 轮子中使用 cuda.bindings,简化了其依赖关系图并减少了版本冲突。另一个流行的库 CuPy 在利用共享基础时受益于更小和更快的构建。
这种整合减少了碎片化,使开发者更容易构建和维护 GPU 加速应用程序。它还简化了新开发者的入门过程,因为他们不再需要在一系列竞争的工具和绑定中导航。NVIDIA 对 CUDA Python 和 CUDA C++ 之间功能对等性的承诺确保了 Python 现在成为 GPU 编程的第一阶工具。
开发者的下一步
要开始使用 CUDA Python 1.0,开发者可以通过以下方式安装相关组件:
pip install cuda-python cuda-cccl numba-cuda-mlir[cu13]
额外的库如 nvmath-python 可以单独安装。唯一的先决条件是一个最新的 NVIDIA 驱动程序,大多数情况下无需单独安装 CUDA 工具包。
对于数据科学家来说,高级工具如 RAPIDS 可能已经足够,但那些需要优化算法的用户可以探索 cuda.compute。希望编写自定义内核的开发者可以使用 Numba 或 Numba CUDA MLIR,而需要低级控制的高级用户可以利用 cuda.core 和 cuda.bindings。
CUDA Python 1.0 的推出标志着 GPU 编程的重大演变。通过解决长期存在的痛点并确保 API 稳定性,NVIDIA 正在赋能开发者,推动 Python 在高性能计算和机器学习领域的能力边界。