title: 什么是寄存器?

寄存器是内存层次结构中与单个线程相关联的内存(左图)。改编自 NVIDIA 的 CUDA Refresher: The CUDA Programming Model 和 NVIDIA CUDA C++ Programming Guide 中的图表。

内存层次结构的最底层是寄存器,它们存储由单个线程操作的信息。

寄存器中的值通常存储在流式多处理器 (SM)寄存器文件中,但也可能溢出到GPU RAM中的全局内存,这会带来显著的性能损失。

与 CPU 编程类似,这些寄存器不能通过高级语言(如CUDA C)直接操作。它们仅对底层语言可见,此处即并行线程执行 (PTX)。它们通常由 ptxas 等编译器管理。编译器的目标之一是限制每个线程使用的寄存器空间,以便可以将更多线程块同时调度到单个SM中,从而提高占用率

PTX 指令集架构中使用的寄存器记录在此处。据我们所知,SASS 中使用的寄存器则没有公开文档。