title: 什么是 NVIDIA CUDA 编译器驱动程序? abbreviation: nvcc


NVIDIA CUDA 编译器驱动程序是一个用于编译 CUDA C/C++ 程序的工具链。它输出符合主机 ABI 的二进制可执行文件,其中包含要在 GPU 上执行的 PTX 和/或 SASS —— 即所谓的"胖二进制文件"。这些二进制文件可以使用与其他二进制文件相同的工具(如 Linux 上的 readelf)进行检查,但还可以使用专门的 CUDA 二进制工具集 进行额外操作。

包含的 PTX 代码按 计算能力 (Compute Capability) 进行版本控制,通过向 --gpu-architecture--gpu-code 选项传递 compute_XYz 值来配置。

包含的 SASS 代码按 流式多处理器架构版本 (SM architecture version) 进行版本控制,通过向 --gpu-architecture--gpu-code 选项传递 sm_XYz 值来配置。将 compute_XYz 传递给 --gpu-code 也会触发生成与 PTX 版本相同的 SASS 代码。

主机/CPU 代码的编译是使用主机系统的编译器驱动程序完成的,例如 gcc 编译器驱动程序。请注意,不要将编译器驱动程序与硬件驱动程序(如 NVIDIA GPU 驱动程序)混淆。

nvcc 的文档可以在 此处 找到。