cuda中变量的属性

来源:互联网 发布:免费阅读电子书软件 编辑:程序博客网 时间:2024/05/06 11:24

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

0 0
原创粉丝点击