我正在使用 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
。一对单精度或 double 浮点参数只有一个设备模板参数(参见 here )。
您可能正在寻找的是 fmod(float, (float)int)
....
关于c++ - CUDA fmod - 不允许从 __global__ 函数调用 __host__ 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16615610/