Loading market data...

NVIDIA CUDA 13.3 在C++中引入基于块的GPU编程

NVIDIA CUDA 13.3 在C++中引入基于块的GPU编程

NVIDIA 发布了 CUDA 13.3,该版本直接在 C++ 中引入了基于块的 GPU 编程。此次更新旨在更充分利用张量核心,同时降低编写内核的复杂性。

基于块的编程如何工作

基于块的编程将计算分解为固定大小的微小块,称为“块”。这些块与 GPU 内部的数据流模式相匹配,从而更容易让硬件保持忙碌。在早期版本的 CUDA 中,开发者需要自己管理这种映射。现在编译器会处理它,至少对于许多常见模式是这样。

张量核心是 NVIDIA GPU 内部的专用硬件,用于加速矩阵乘加运算。它们是 AI 训练和推理的核心。但要从中获得峰值性能,通常需要复杂的手动调优。CUDA 13.3 的块抽象自动对矩阵运算进行分块,使它们更频繁地命中张量核心。开发者编写更简单的代码,仍能获得良好的吞吐量。

内核开发变得更简单

GPU 编程中最大的痛点之一是管理线程、共享内存和同步。新的基于块模型抽象了这些细节。程序员不必编写生成数千个线程并协调它们访问共享内存的内核,而是可以将计算表达为对块的操作。CUDA 编译器随后将这些块映射到底层硬件。这应该能减少错误并加快开发速度,尤其是对于刚接触 GPU 计算的团队。

可用性

CUDA 13.3 现已可从 NVIDIA 开发者网站下载。它支持所有当前的 NVIDIA GPU 架构,包括 Hopper 和 Blackwell 系列。开发者可以立即开始尝试基于块的 API。

此次更新并未弃用旧方法,但为编写高效的 GPU 代码设定了一条新的默认路径。更广泛的社区是否会迅速采用它,将取决于编译器如何将块操作映射到真实硬件——以及在关键工作负载中,其性能是否能与手动调优的内核相媲美。