GPU 内存
GPU 提供六种不同的内存区域。它们的延迟,大小和来自不同线程的可访问性各不相同。
- 全局内存:可用的最大内存,也是少数与主机交换数据的内存之一。此内存具有最高延迟,可用于所有线程。
- 常量内存:全局内存的只读部分,只能由其他线程读取。与全局内存相比,它的优势在于延迟更低
- 纹理记忆:也是常量记忆的一部分,专门为纹理设计
- 共享内存:此内存区域靠近 SM 放置,只能由单个线程块访问。它提供比全局内存更低的延迟,并且比常量内存的延迟更少。
- 寄存器:只能由单个线程访问,并且只能访问最快的内存。但是如果编译器检测到内核需要的寄存器不足,它会将变量外包给本地内存。
- 本地内存:全局内存区域中仅可由线程访问的内存部分。用作寄存器的备份,如果可能,应避免使用。