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

标签 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 不匹配

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

最佳答案

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

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

关于c++ - CUDA fmod - 不允许从 __global__ 函数调用 __host__ 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16615610/

相关文章:

c++ - CUDA 函数不改变数据

c++ - 我可以在 CUDA 代码的内核部分使用 C++ 头文件吗?

cuda - 减少奇数元素CUDA

C++ 库 : application inserts a class in inheritance hierarchy

c++ - 使用递归在 C++ 中取消混搭字符串

c++ - VCOMP100.dll 丢失?

git - Visual Studio Express 2012 和 Git

c++ - 无法将从函数返回的 vector 传递给需要引用方法的函数

c++ - 如何在类中声明和初始化静态常量字符串?

c++ - 2013 年的 boost bimap 和 multi_index_container 调试器可视化工具