cuda内核警告: expression has no effect

标签 cuda

我是 Cuda 编程新手,正在尝试使用单元代码中的粒子来碰碰运气。但第一个问题是 build 一个粒子移动器。但是当我尝试编译此代码时,我收到如下错误消息:

error : expression must have integral or enum type / warning : expression has no effect.

我的代码:

__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 );

整数定义如下:

int x[N], x_1[N], v_x[N], v_y[N], v_z[N], E_x[N], m[1], t[1];
int *dev_x, *dev_v_x, *dev_x_1, *dev_v_y, *dev_v_z, *dev_E_x, *dev_m, *dev_t;

最佳答案

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

kernel<<1,1>>( 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 );

关于cuda内核警告: expression has no effect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14046854/

相关文章:

c++ - boost::numeric::ublas::vector 内部数据存储指针

memory - CUDA 常量内存分配是如何工作的?

cuda - 了解 cudaMemcpyFromSymbol() 的符号参数

c++ - cuBlas 的不同结果

Cuda char* 变量赋值

cuda - CUDA 中的三线性插值

Cuda block /网格尺寸: when to use dim3?

c - 指向指针别名的指针和 restrict 关键字

c++ - CUDA估算2D网格数据的每个 block 的线程数和 block 号

c++ - CUDA 链接错误 Visual Studio 2008