cuda中变量的属性

device亚程序中声明的变量可以有以下几种属性(device,managed, constant, sharedpinned)

 

Device数据

储存在device全局存储器中,可以通过以下方式声明:

real::a(10)

attributes(device)::a

realdevice::b(10)

 

managed

可用于hostdevice代码,可以在hostdevice之间迁移,取决于最初读取位置。可以被host读写,但在device上只能不kernels读取,在device上,mannaged变量有点类似于device变量,但没有分配到device上。

 

constant

称为device constant 变量,分配在device constant内存空间,device constant变量不能被device子程序设定和修改,可以被host子程序修改,device constant不可以是动态分配的。

 

shared

称为(device) shared变量,仅被device子程序声明和存取,或者被其他device子程序通过传递变量存取,分配位置在thread块的device shared内存,变量寿命为thread块的寿命,可以被thread块中任何一个线程读写。

 

pinned

pinned变量必须是动态可分配数组,分配时在host页面锁定内存,因而从页面锁定内存到device内存是比host正常内存拷贝要快的,操作系统和设备对其使用和大小可能有限制,若是得不到页面锁定内存,将被异步分配到host正常内存中。

 

texture

F90指针,real或者integer数据,仅在device子程序读,不可以写。通过分量的缓存在设备中,提高代码性能。


转自:http://blog.sina.com.cn/s/blog_4d036c560102v5vr.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值