cuda内核警告:表达式无效

cuda内核警告:表达式无效,cuda,Cuda,我是Cuda编程新手,并尝试在单元代码中使用粒子。但第一个问题是构建粒子移动器。但当我试图编译这段代码时,会收到如下错误消息: 错误:表达式必须具有整数或枚举类型/警告:表达式无效 我的代码: __global__ void kernel(int* x, int* x_1, int* E_x, int* t, int* m) { int idx = 0; if (idx < N) // move particles x_1[idx] = (E

我是Cuda编程新手,并尝试在单元代码中使用粒子。但第一个问题是构建粒子移动器。但当我试图编译这段代码时,会收到如下错误消息:

错误:表达式必须具有整数或枚举类型/警告:表达式无效

我的代码:

__global__ void kernel(int* x, int* x_1, int* E_x, int* t, int* m)
{
    int idx = 0;
    if (idx < N)
        // move particles
        x_1[idx] = (E_x[idx] / m[1]) * t[1] * t[1] + x[idx];
}

kernel<<1,1>>( dev_x , dev_x_1, dev_E_x , dev_t, dev_m );

一个问题是在内核启动参数上使用了双V形语法而不是正确的三V形语法。与此相反:

kernel<<1,1>>( dev_x , dev_x_1, dev_E_x , dev_t, dev_m );
内核(dev_x,dev_x_1,dev_E_x,dev_t,dev_m);
这样做:

kernel<<<1,1>>>( dev_x , dev_x_1, dev_E_x , dev_t, dev_m );
内核(dev_x,dev_x_1,dev_E_x,dev_t,dev_m);

Look-first-answer。也许您可以显示产生该错误消息的实际代码,因为您所发布的内容显然不是它。这将有助于了解哪一行产生了错误。内核调用上不正确的双V形语法产生了帖子所指示的错误和警告。我看不到任何地方定义了N。哦,对不起!!!当我回答这个问题时,已经是凌晨2点了。谢谢现在它工作了!!!
kernel<<<1,1>>>( dev_x , dev_x_1, dev_E_x , dev_t, dev_m );