CUDA存储器模型

来源:互联网 发布:人工智能前沿技术 编辑:程序博客网 时间:2024/05/16 18:23

 除了编程模型和执行模型,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可读/

可在程序中保持

0 0
原创粉丝点击