Cuda 为什么编译器会给出错误?

Cuda 为什么编译器会给出错误?,cuda,compiler-errors,thrust,Cuda,Compiler Errors,Thrust,那就是说不允许不完整为什么?这里怎么了?可能的解决方案是什么?您在函数displayVector中错误地调用了函数generativector。应该是这样的: void generateVector(count); generateVector(count); 此外,您正在函数generateVector内部创建向量A和B,这将是函数的本地向量,并且asch::generate将对这些本地向量进行操作。全局向量A和B不会被修改。您应该删除局部向量以实现所需的目标。而是调用全局向量A和B来分配

那就是说不允许
不完整
为什么?这里怎么了?可能的解决方案是什么?

您在函数
displayVector
中错误地调用了函数
generativector
。应该是这样的:

void generateVector(count);
generateVector(count);
此外,您正在函数
generateVector
内部创建向量
A
B
,这将是函数的本地向量,并且
asch::generate
将对这些本地向量进行操作。全局向量
A
B
不会被修改。您应该删除局部向量以实现所需的目标。而是调用全局向量
A
B
来分配内存

最终代码应如下所示:

void generateVector(count);
generateVector(count);
推力::主机向量A;
推力:主向量B;
int rand_从_0_到_100_gen(无效)
{
返回rand()%100;
}
__主机\uuuuvoid generateVector(整数计数)
{
A.调整大小(计数);
推力::生成(A.begin(),A.end(),rand_from_0_to_100_gen);
B.调整大小(计数);
推力::生成(B.begin(),B.end(),rand_from_0_to_100_gen);
}
__主机\无效显示向量(整数计数)
{
生成因子(计数);

cout您在函数
displayVector
中错误地调用了函数
generativector
。它应该是这样的:

void generateVector(count);
generateVector(count);
此外,您正在函数
generateVector
内部创建向量
A
B
,这将是函数的本地向量,并且
推力::生成
将对这些本地向量进行操作。全局向量
A
B
不会被修改。您应该删除本地向量以实现what您不需要。而是调用全局向量
A
B
来分配内存

最终代码应如下所示:

void generateVector(count);
generateVector(count);
推力::主机向量A;
推力:主向量B;
int rand_从_0_到_100_gen(无效)
{
返回rand()%100;
}
__主机\uuuuvoid generateVector(整数计数)
{
A.调整大小(计数);
推力::生成(A.begin(),A.end(),rand_from_0_to_100_gen);
B.调整大小(计数);
推力::生成(B.begin(),B.end(),rand_from_0_to_100_gen);
}
__主机\无效显示向量(整数计数)
{
生成因子(计数);

谢谢你在generateVector和displayVector函数中的帮助还有一个参数定义为int*hData这可能是什么?这里没有hData。guy通过输入int*hData定义了这个函数我不知道为什么要感谢你在generateVector和displayVector函数中的帮助还有一个参数定义为int*hData wha可能是这样吗?这里没有hData。guy用int*hData定义了这个函数,我不知道为什么