cmake 配置 cuda支持
对于c/c++而言,编译cuda可以使用nvcc工具直接命令行进行编译,不过对于大型工程,还是需要利用cmake进行管理,下面介绍一下cmake如何配置cuda。
老版本方式 find_package
如果CMake的版本小于3.10,可以在CMakeLists.txt文件中使用find_package来导入CUDA包,然后就可以使用cuda_add_executable()或者cuda_add_library()来编译CUDA可执行文件或者库文件了。
1 | cmake_minimum_required(VERSION 3.8) |
其中变量CUDA_VERSION_STRING表示CUDA的版本号,CUDA_INCLUDE_DIRS表示CUDA头文件存放的目录,CUDA_LIBRARIES表示CUDA的库文件。更多说明可以参考CMake的官方文档
新的方式 添加cuda编程语言支持
在3.10及以上版本的CMake中,find_package的方式已经被弃用(可以用但不推荐),要编译CUDA代码可以CMakeLists.txt文件中添加对CUDA编程语言的支持。如果程序中CUDA代码是可选的,那么可以在CMakeLists.txt文件中使用下面的语句进行使能:
1 | enable_language(CUDA) |
如果CUDA代码是必须的,那么就需要像下面这样进行设置,表示在项目CUDA_TEST中要用到CUDA和C++两种编程语言:
1 | project(CUDA_TEST LANGUAGES CUDA CXX) |
可以通过CheckLanuage判断CUDA是否可用,如果确定有环境可以不要
1 | include(CheckLanguage) |
然后就可以跟编译普通C++代码一样用add_executable编译可执行文件了:
1 | cmake_minimum_required(VERSION 3.10) |
参考:
https://cliutils.gitlab.io/modern-cmake/chapters/packages/CUDA.html