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