CUDA:float *类型的参数与float(*)类型的参数不兼容[32768]

时间:2017-02-19 07:56:14

标签: cuda

在将指针传递给指向数组时,我收到了foll错误: 类型为#34; float "与" float()[32768]

类型的参数不兼容

我的代码的相关代码段是:

{{1}}

有人能告诉我什么出错了?我是CUDA的初学者。

1 个答案:

答案 0 :(得分:4)

我们这里有一个错误的指针和数组使用。根据例程op的定义,它需要一个指向类型为float的长度为N 的数组。另一方面,当它被称为指针以类型float作为参数提供时,从而导致类型不兼容的错误消息。

如果op例程要处理float值的二维数组,最好将其参数作为指向float的指针。在这种情况下,使用索引M访问的原始2D数组的所有y“行”一个接一个地位于内存中,如下所示:

[row0][row1][row2]...[rowM-1]

每个此类行包含N“列”,由索引x访问。要获得某对(x, y)的值,我们必须生成一个将访问1D数组的全局索引:

index = y * N + x;

这很简单。