假设我有这个__device__功能:
__device__ unsigned char* dev_kernel(unsigned char* array_sh, int params){
return array_sh + params;
}
Run Code Online (Sandbox Code Playgroud)
在__global__内核中,我以这种方式使用它:
uarray = dev_kernel (uarray, params);
Run Code Online (Sandbox Code Playgroud)
uarray共享内存中的数组在哪里?
但是当我使用CUDA-gdb来看到的地址的情况uarray中的__global__内核,我得到:
(@generic unsigned char * @shared) 0x1000010 "z\377*"
Run Code Online (Sandbox Code Playgroud)
在__device__内核中,我得到:
(unsigned char * @generic) 0x1000010 <Error reading address 0x1000010: Operation not permitted>
Run Code Online (Sandbox Code Playgroud)
尽管有错误,程序仍可以正常运行(也许是cuda-gdb的某些限制)。
所以,我想知道:在__device__内核中,uarray是共享的吗?我将阵列从全局内存更改为共享内存,时间几乎相同(对于共享内存,时间会更糟)。
我正在尝试从我的应用程序中提取一些指标,并且需要执行很多次并采用指标的平均值.
我正在谷歌搜索它,但没有找到任何东西,也没有在stackoverflow这里也没有.
谢谢.