CUDA存储器模型

        除了编程模型和执行模型,CUDA也规定了存储器模型,如下图所示:

 

        每一个线程拥有自己的私有存储器,每一个线程块拥有一块共享存储器(Shared memory);最后,grid中所有的线程都可以访问同一块全局存储器(global memory)。除此之外,还有两种可以被所有线程访问的只读存储器:常数存储器(constant memory)和纹理存储器(Texture memory),它们分别为不同的应用进行了优化。全局存储器、常数存储器和纹理存储器中的值在一个内核函数执行完成后将被继续保持,可以被同一程序中其也内核函数调用。

      下表给出了这8种存储器的位置、缓存情况,访问权限及生存域

存储器

位置

拥有缓存

访问权限

变量生存周期

register

GPU片内

N/A

Device可读/

thread相同

Local memory

板载显存

Device可读/

thread相同

Shared memory

GPU片内

N/A

Device可读/

block相同

Constant memory

板载显存

Device可读,host要读写

可在程序中保持

Texture memory

板载显存

Device可读,host要读写

可在程序中保持

Global memory

板载显存

Device可读/, host可读/

可在程序中保持

Host memory

Host内存

host可读/

可在程序中保持

Pinned memory

Host内存

host可读/

可在程序中保持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值