1. 设备内存L2缓存访问管理
当CUDA内核反复访问全局内存中的某个数据区域时,此类数据访问可视为持久化(persisting)访问。反之,若数据仅被访问一次,则可视为流式(streaming)访问。
从CUDA 11.0开始,计算能力8.0及以上的设备能够调控L2缓存中数据的持久性,从而可能实现更高的全局内存访问带宽和更低的延迟。
1.1 为持久化访问预留的L2缓存
可以预留部分L2缓存空间专门用于全局内存的持久化访问。持久化访问对该预留缓存区享有优先使用权,而常规(或流式)的全局内存访问仅能在该区域未被持久化访问占用时使用。
持久化访问的L2缓存预留空间大小可在限定范围内进行调整:
cudaGetDeviceProperties(&prop, device_id); # 获取 GPU 设备属性信息并存储到 prop 结构体中
siz