在CUDA编程时遇到出现无法解析外部符号threadIdx或blockIdx问题的解决办法
在CUDA编程之前要确保工程项目的配置属性一致性如图一所示。然后点击项目—>属性确保配置属性无误。
VC++ 目录
可执行文件目录:…\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin
包含目录:…\NVIDIA GPU Computing Toolkit\CUDA\v10.2\include
库目录:…\NVIDIA GPU Computing Toolkit\CUDA\v10.2\lib\x64
链接器—>输入:附加依赖项:将…\NVIDIA GPU Computing Toolkit\CUDA\v10.2\lib\x64下的lib文件全部添加进去。
解决方法一:
要使用threadIdx、blockIdx、blockDim等内置变量时要在头文件里导入device_launch_parameters.h
如:#include<device_launch_parameters.h>
解决方法二:
不管是在.cpp或.cu或.c还是.h文件中,在使用CUDA编程时要设置该文件的项类型为CUDA C/C++
具体操作:
1:右击当前项目—>生成依赖项—>生成自定义—>勾选CUDA
2:右击当前文件—>属性—>常规—>项类型—>CUDA C/C++