NVCC警告级别

NVCC warning level

本文关键字:警告 NVCC      更新时间:2023-10-16

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

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

NVCC文档"NVIDIA CUDA Compiler Driver NVCC"甚至不包含"警告"一词。

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

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

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

因此,请执行以下操作:

项目 ->属性 ->

配置属性 -> CUDA C/C++ ->命令行 -> 附加光学器件 ->添加 --错误交叉执行空间调用

此测试程序

#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

使用上述附加编译选项。