基于计算能力8.0的NVIDIA A100 GPU将L1缓存、纹理缓存和共享内存的最大容量提高到192KB,比NVIDIA V100 GPU中的L1缓存大50%。具有计算能力8.6的GPU的组合L1高速缓存容量为128KB。 在NVIDIA Ampere GPU体系结构中,可以在运行时使用属性为cudaFuncAttributePreferredSharedMemoryCarveout的cudaFuncSetAttribute(),如Volta等以前的体系结构中那样,选择专用于共享内存的L1缓存部分(称为雕刻)。NVIDIA A100 GPU支持每个SM 0、8、16、32、64、100、132或164 KB的共享内存容量。具有计算能力8.6的GPU支持每个SM 0、8,16、32,64或100 KB的共享存储容量。 CUDA为每个线程块保留1 KB的共享内存。因此,A100 GPU使单线程块能够寻址高达163KB的共享存储器,并且具有计算能力8.6的GPU可以在单线程块中寻址高达99KB的共享内存。为了保持体系结构兼容性,静态共享内存分配仍限制在48 KB以内,并且还需要显式选择加入以启用高于此限制的动态分配。有关详细信息,请参阅《CUDA C++编程指南》。 与Volta一样,NVIDIA Ampere GPU架构将L1和纹理缓存的功能结合到一个统一的L1/纹理缓存中,该缓存充当内存访问的合并缓冲区,在将数据传输到warp之前收集warp线程请求的数据。与Volta L1类似,它与共享内存结合的另一个好处是在延迟和带宽方面都有所改进。 |
说点什么...