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];
}

都可以。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章