2

我正在用 VS2012 编译一个 CUDA 5 项目,我收到了这个错误:

error : calling a __host__ function("fmod<float, int> ") from a __global__ function is not allowed

编译器实际上将 CUDA __device__ fmod 与 math.h 中定义的 fmod 不匹配

我怎样才能在它们之间“消除歧义”?

4

1 回答 1

11

这是由于模板参数不匹配而发生的。您正在fmod使用浮点参数和整数参数进行调用。一对单精度或双精度浮点参数只有一个设备模板参数(请参见此处)。

您可能正在寻找的是fmod(float, (float)int)......

于 2013-05-17T18:40:21.537 回答