在将指针传递给指向数组时,我收到了foll错误: 类型为#34; float "与" float()[32768]
类型的参数不兼容我的代码的相关代码段是:
{{1}}
有人能告诉我什么出错了?我是CUDA的初学者。
答案 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;
这很简单。