title: 什么是 CUDA 线程?

线程是线程组层次结构中的最低层级(顶部、左侧),并被映射到流式多处理器核心上。改编自 NVIDIA 的 CUDA 复习:CUDA 编程模型 和 NVIDIA CUDA C++ 编程指南 中的图表。

执行线程(简称"线程")是 GPU 编程的最低单位,是 CUDA 编程模型线程层次结构的基础和原子单位。线程拥有自己的寄存器,但除此之外几乎没有其他资源。

SASSPTX 程序都以线程为目标。相比之下,POSIX 环境中的典型 C 程序以进程为目标,而进程本身是一个或多个线程的集合。与 POSIX 线程不同,CUDA 线程不用于进行系统调用。

与 CPU 上的线程类似,GPU 线程可以拥有私有的指令指针/程序计数器。然而,出于性能原因,GPU 程序通常被编写为让一个线程束中的所有线程共享相同的指令指针,以锁步方式执行指令(另请参阅线程束调度器)。

同样类似于 CPU 上的线程,GPU 线程在全局内存中拥有栈,用于存储溢出的寄存器和函数调用栈,但高性能内核通常限制两者的使用。

单个 CUDA 核心执行来自单个线程的指令。