title: CUDA 软件平台是什么?
CUDA 代表 Compute Unified Device Architecture(计算统一设备架构)。根据上下文, "CUDA" 可以指代多个不同的概念:一种 高层设备架构, 一种 针对该架构设计的并行编程模型, 或是一个扩展高级语言(如 C)以支持该编程模型的软件平台。
CUDA 的愿景在 Lindholm 等人,2008 年 白皮书中进行了阐述。我们强烈推荐这篇论文,它是英伟达文档中许多声明、图表甚至特定措辞的原始来源。
这里,我们重点介绍 CUDA 软件平台。
CUDA 软件平台是用于开发 CUDA 程序的一系列软件集合。虽然也存在针对其他语言(如 FORTRAN)的 CUDA 软件平台,但我们将重点介绍主流的 CUDA C++ 版本。
该平台大致可分为用于 构建 应用程序的组件(如 NVIDIA CUDA 编译器驱动 工具链), 以及在应用程序中 使用 或 调用 的组件(如 CUDA 驱动 API 和 CUDA 运行时 API),如下图所示。
CUDA 工具包。改编自《Professional CUDA C Programming Guide》。
在这些 API 之上构建的是用于为通用和特定领域构建优化 内核 (kernel) 的库, 例如用于线性代数的 cuBLAS 和用于深度神经网络的 cuDNN。