您的位置:首页 > 其它

CUDA学习--内存处理之概述(1)

2016-09-23 21:18 190 查看

1. 高速缓存

高速缓存的最大速度与缓存的大小成反比关系。一级缓存是最快的,但他的大小一般限制在16k、32k或者64k。通常每个CPU核会分配一个单独的一级缓存。二级缓存相对而言慢一些,但他更大,通常有256k~512k。二级缓存或者三级缓存一般在处理器的核之间是共享的,或者作为连接于特定处理器核的独立缓存来维护。

与CPU不同,GPU主要依赖基于程序员托管的缓存或者共享内存区。在费米架构的GPU实现中,每个SM有一个一级缓存,这个一级缓存既是基于程序员托管的又是基于硬件托管的。在所有的SM之间有一个共享的二级缓存。缓存在处理器的核或者SM之间共享主要是为了让设备之间能够通过相同的共享缓冲进行通信,允许处理器之间不需要每次都通过全局内存进行通信。

不同存储类型的访问时间:

存储类型寄存器共享内存纹理内存常量内存全局内存
带宽~8TB/s~1.5TB/s~200MB/s~200MB/s~200MB/s
延迟1个周期1~32个周期400~600个周期400~600个周期400~600个周期
因此,如表所示,我们在进行CUDA程序开发的过程中,应考虑各存储器之间的特点,从而选择使用较快的存储器。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cuda 内存