3.4. 什么是计算能力?
并行线程执行 (Parallel Thread Execution) 指令集中的指令仅与特定的物理 GPU 兼容。用于将物理 GPU 的细节从指令集和 编译器 (compiler) 中抽象出来的版本控制系统称为 “计算能力” (Compute Capability)。
大多数计算能力版本号包含两个组成部分:主版本号和次版本号。NVIDIA 承诺按照 洋葱层模型,主版本号和次版本号均支持前向兼容性(旧的 PTX 代码可在新 GPU 上运行)。
在 Hopper 架构中,NVIDIA 引入了额外的版本后缀,即 9.0a 中的 a,它包含偏离洋葱模型的特性:即使在同一主版本号内,这些特性的未来兼容性也不保证。
在 Blackwell 架构中,NVIDIA 引入了另一个版本后缀,即 10.0f 中的 f,该后缀同样偏离了洋葱模型,更接近 语义化版本 (SemVer):次版本号之间保证兼容性,但主版本号之间不保证。
在调用 NVIDIA CUDA 编译器驱动程序 (NVIDIA CUDA Compiler Driver) nvcc 时,可以指定 PTX 编译的目标计算能力。默认情况下,编译器还会为匹配的 流式多处理器架构 (Streaming Multiprocessor architecture) 生成优化的 SASS 代码。 nvcc 的 文档 将计算能力称为 “虚拟 GPU 架构”,与 SM 版本表示的 “物理 GPU 架构” 形成对比。
每个计算能力版本的技术规格可以在 NVIDIA CUDA C 编程指南的计算能力部分 找到。