CUDA fmod - 不允许从__global__函数调用__host__函数

时间:2013-05-17 18:25:02

标签: c++ visual-studio-2012 cuda

我正在使用VS2012编译CUDA 5项目,我收到此错误:

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

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

我如何在他们之间“消除歧义”?

1 个答案:

答案 0 :(得分:7)

由于模板参数不匹配,这种情况正在发生。您使用浮点参数和整数参数调用fmod。对于一对单精度或双精度浮点参数,只有一个设备模板参数(参见here)。

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