CUDA--只读缓存

使用CUDA只读缓存有两个办法

1.你可以使用内部函数__ldg来通过只读缓存直接对数组进行读取访问:

但是我的汇报错,说__ldg未定义,非常玄奇,不知道有没有老铁看了知道的告诉我一下


__global__ void copyKernel(int *out,int *in){
    int idx = blockIdx.x*blockDim.x+threadIdx.x;
    out[idx] = __ldg(&in[idx]);
}

2.使用__restrict__ 和constant

__global__ void copyKernel_2(int *__restrict__ out,const int *__restrict__ in){
    int idx = blockIdx.x*blockDim.x+threadIdx.x;
    out[idx] = in[idx];
}

都可以。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值