CUDA-将CPU变量转换为GPU常量变量
和CUDA一样,最基本的东西有时也是最难的 所以…我只想把一个变量从CPU复制到GPU的常量变量,我现在很难 这就是我所拥有的:CUDA-将CPU变量转换为GPU常量变量,cuda,gpu,Cuda,Gpu,和CUDA一样,最基本的东西有时也是最难的 所以…我只想把一个变量从CPU复制到GPU的常量变量,我现在很难 这就是我所拥有的: __constant__ int contadorlinhasx_d; int main(){ (...) int contadorlinhasx=100; status=cudaMemcpyToSymbol(contadorlinhasx_d,contadorlinhasx,1*sizeof(int),0,cudaMemcpyHostToDevice)
__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及更新版本中已被弃用]
或
如果查看,前两个参数是指针。第一个可以是字符串,这将强制在API内部进行符号查找(CUDA 4之前),也可以是设备符号地址(CUDA 4及更高版本)。第二个参数是副本的主机源内存地址。编译器错误消息非常明确-您传递的参数类型错误,编译器在库中找不到匹配的实例。谢谢!有一次我有“contadorlinhasx_d”,但我完全忘记了“&”。我真的很感谢你的帮助
cudaMemcpyToSymbol(contadorlinhasx_d,
&contadorlinhasx,
1*sizeof(int),
0,
cudaMemcpyHostToDevice);