title: 什么是寄存器?
寄存器是内存层次结构中与单个线程相关联的内存(左图)。改编自 NVIDIA 的 CUDA Refresher: The CUDA Programming Model 和 NVIDIA CUDA C++ Programming Guide 中的图表。
在内存层次结构的最底层是寄存器,它们存储由单个线程操作的信息。
寄存器中的值通常存储在流式多处理器 (SM)的寄存器文件中,但也可能溢出到GPU RAM中的全局内存,这会带来显著的性能损失。
与 CPU 编程类似,这些寄存器不能通过高级语言(如CUDA C)直接操作。它们仅对底层语言可见,此处即并行线程执行 (PTX)。它们通常由 ptxas 等编译器管理。编译器的目标之一是限制每个线程使用的寄存器空间,以便可以将更多线程块同时调度到单个SM中,从而提高占用率。