我的项目中只有带有* .cpp或* .h扩展名的源文件。但是其中一些调用cuda主机函数并使用cublas库。使用enable_language(CUDA)
之后,该cmake可以在配置阶段找到nvcc:
-- The CUDA compiler identification is NVIDIA 8.0.61
-- Check for working CUDA compiler: /gpfs/share/software/cuda/cuda-8.0/bin/nvcc
-- Check for working CUDA compiler: /gpfs/share/software/cuda/cuda-8.0/bin/nvcc -- works
-- Detecting CUDA compiler ABI info
-- Detecting CUDA compiler ABI info - done
但是,在编译这些源文件时,出现此错误:
fatal error: cuda.h: No such file or directory
cmake选择的编译器仍然是/ usr / bin / c ++而不是nvcc。如何处理这个错误?我必须将这些源文件重命名为.cu
和.cuh
吗?
答案 0 :(得分:1)
否,您需要在include_directories()
中包含CUDA标头。应该来自CUDA_INCLUDE_DIRS
变量。
使用CUDA标头包含C ++文件是完全可以的,但是您需要像其他任何库一样添加包含文件。