为什么我不能在 CUDA 5.0 中使用这些编译器内在函数?
在 Visual Studio 2010 中,安装了 CUDA 工具包 5.0 和 Nsight 后,我能够编译和运行大多数 CUDA 代码,但__fadd_ru
报告为未定义等。这是我要编译的代码。
编辑:当在同一个项目中包含以下任一包含时,内在函数似乎变得未定义:
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
问题是由在项目中包含 CUDA 运行时标头引起的(不知何故)。
NVCC 编译器自动管理 cuda 运行时的包含,因此您无需手动包含它来编译。您要添加的主要原因
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
对您的代码进行修改,这样您的 IDE 就不会显示错误的语法错误。由于某种原因添加device_launch_parameters.h
(cuda_runtime.h
取决于),将导致 NVCC 用于算术的内在编译器函数出现未定义。
所以修复:当你想编译时,从项目中删除这两个包含。