为什么CUDA编译器内在函数__fadd_rd等不适合我?

时间:2012-12-20 06:25:18

标签: cuda compiler-errors nvcc

为什么我不能在CUDA 5.0中使用these编译器内在函数?

在Visual Studio 2010中,安装了CUDA工具包5.0和Nsight后,我能够编译和运行大多数CUDA代码,但__fadd_ru等报告为未定义。 This是我要编译的代码。

编辑: 当以下任何一个包含在同一个项目中时,似乎内部函数变得不确定:

#include "cuda_runtime.h"
#include "device_launch_parameters.h"

1 个答案:

答案 0 :(得分:2)

通过在项目中包含CUDA运行时标头(不知何故)导致问题。

NVCC编译器自动管理cuda运行时的包含,因此您无需手动包含它来进行编译。你要添加

的主要原因
#include "cuda_runtime.h"
#include "device_launch_parameters.h"

到您的代码是为了让您的IDE不会显示错误的语法错误。由于某种原因,添加device_launch_parameters.hcuda_runtime.h取决于),将导致NVCC的内部编译器函数出现未定义的算法。

所以修复:当你想编译时从项目中删除那两个包含。