我正在用 VS2012 编译一个 CUDA 5 项目,我收到了这个错误:
error : calling a __host__ function("fmod<float, int> ") from a __global__ function is not allowed
编译器实际上将 CUDA __device__ fmod 与 math.h 中定义的 fmod 不匹配
我怎样才能在它们之间“消除歧义”?
我正在用 VS2012 编译一个 CUDA 5 项目,我收到了这个错误:
error : calling a __host__ function("fmod<float, int> ") from a __global__ function is not allowed
编译器实际上将 CUDA __device__ fmod 与 math.h 中定义的 fmod 不匹配
我怎样才能在它们之间“消除歧义”?
这是由于模板参数不匹配而发生的。您正在fmod
使用浮点参数和整数参数进行调用。一对单精度或双精度浮点参数只有一个设备模板参数(请参见此处)。
您可能正在寻找的是fmod(float, (float)int)
......