我有一個長度爲128的向量;所有元素在整個計算過程中都是恆定傳遞一個恆定的共享內存
我喜歡在我的CUDA內核中使用這個常量向量。我正在考慮將此矢量存儲在共享內存中,並在內核中使用它。我想知道如何去?幾行代碼會很好。
或者這是最好的方法嗎?非常感謝。
我們可以與全球內存通過頭部的頂部:
__global__ void fun(float* a, float* coeff)
{
size_t
i = blockIdx.x * blockDim.x + threadIdx.x;
if (i >= 128)
return;
a[i] *= coeff[i];
}
但是這可能不是最好的辦法。我想像
__shared__ float coeff[128];
但是,如何將CPU值複製到此共享內存?我將這個共享內存傳遞給我的內核?
你從哪裏讀到共享內存?關於如何使用它沒有任何解釋嗎?您是否閱讀過Nvidia的[CUDA C編程指南](http://docs.nvidia.com/cuda/cuda-c-programming-guide/)? – Shadow