NVCC警告级别

时间:2013-01-31 19:33:52

标签: c++ cuda

我希望NVCC将以下警告视为错误:

warning : calling a __host__ function("foo") from a __host__ __device__ function("bar")

NVCC文档" NVIDIA CUDA编译器驱动程序NVCC"甚至不包含"警告"。

这个词

1 个答案:

答案 0 :(得分:3)

引用CUDA编译器驱动程序NVCC参考指南,第3.2.8节。 "通用工具选项":

  

--Werror kind警告指定种类的错误。以下是此选项接受的警告类型列表:

     

cross-execution-space-call对不受支持的跨执行空间调用更严格。编译器将生成错误,而不是针对从__host__ __device____host__函数的调用的警告。

因此,请执行以下操作:

项目 - >属性 - >配置属性 - > CUDA C / C ++ - >命令行 - >附加光学 - > add --Werror cross-execution-space-call

此测试程序

#include <cuda.h>
#include <cuda_runtime.h>

void foo() { int a = 2;}

__host__ __device__ void test() {
    int tId = 1;
    foo();
}

int main(int argc, char **argv) { }

返回以下警告

warning : calling a __host__ function("foo") from a __host__ __device__ function("test") is not allowed

没有上面提到的额外编译选项并返回以下错误

Error   3   error : calling a __host__ function("foo") from a __host__ __device__ function("test") is not allowed

使用上面提到的附加编译选项。