OpenCL 数据传输操作

1.加载和保存同类型的数据:如果发送端和接收端的数据类型相同,例如将一个区域的int4型向量加载到另一区域中,只知道“=”即可。除了对变量赋值外,等号还可以将一个区域的数据赋值传输到另一个区域中。例如,内核想将全局内存中的数据加载到局部内存中,并将处理完的结果保存回全局内存。如果要将局部内存改为私有内存,只需要将数据声明中的_local标识符去掉即可,默认的标识符便是_private,因此,如果没有标识符,编译器会将变量自动保存在私有内存中。

2.将标量数组加载保存到向量中:大多数情况下,可能需要用向量来处理数据,但数据输入却一般都保存在标量数组中。这时,“=”就不管用了,你不可以将一个地址空间中的数据类型转换到另外一个地址空间中。所以OpenCL提供了函数vloadn,用来将标量数据加载保存到向量中:

vector  vloadn(size_t offset, const __(g|c|l|p) scalar *mem)

n表示的是向量所包含的向量分数量,它必须被设定为2,3,4,8或16.vector可以是任意一种向量类型,而scalar则必须

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值