[英]NVCC warning level
我希望 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__
函数的调用,编译器将生成错误而不是警告。
因此,请执行以下操作:
Project -> Properties -> Configuration Properties -> CUDA C/C++ -> Command Line -> Additional Optics -> 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
使用上面提到的附加编译选项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.