与 CUDA 的任何事情一样,最基本的事情有时也是最难的......
所以...我只想将变量从 CPU 复制到 GPUconstant变量,我很难过。
这就是我所拥有的:
__constant__ int contadorlinhasx_d;
int main(){
(...)
int contadorlinhasx=100;
status=cudaMemcpyToSymbol(contadorlinhasx_d,contadorlinhasx,1*sizeof(int),0,cudaMemcpyHostToDevice);
我收到这个错误
presortx.cu(222): error: no instance of overloaded function "cudaMemcpyToSymbol" matches the argument list
argument types are: (int, int, unsigned long, int, cudaMemcpyKind)
有人可以帮助我吗?我知道这是一些愚蠢的错误,但我厌倦了用谷歌搜索它,我花了近 30 分钟试图复制一个愚蠢的变量:/
提前致谢
你需要做类似的事情
cudaMemcpyToSymbol("contadorlinhasx_d",
&contadorlinhasx,
1*sizeof(int),
0,
cudaMemcpyHostToDevice);
[请注意,这是旧的 API 调用,现已在 CUDA 4.0 及更高版本中弃用]
or
cudaMemcpyToSymbol(contadorlinhasx_d,
&contadorlinhasx,
1*sizeof(int),
0,
cudaMemcpyHostToDevice);
如果你看一下API文档 http://docs.nvidia.com/cuda/cuda-runtime-api/index.html#group__CUDART__MEMORY_1g2a229a704ade54887f7784e2e2dbd895,前两个参数是指针。第一个可以是字符串,这将强制在 API 内部进行符号查找(CUDA 4 之前),也可以是设备符号地址(CUDA 4 及更高版本)。第二个参数是副本的主机源内存的地址。编译器错误消息非常明确 - 您传递了错误类型的参数,并且编译器无法在库中找到匹配的实例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)