本文将以一个最小化的例子,介绍如何在cmake中使用cuda和nvcc,包含以下内容:
- 使用nvcc进行编译
- 链接CUDA库(以cublas为例)
该例子将只使用源码加载自定义库,不再使用静态链接库文件。
另外此例子要求已经安装 cuda 12.4 以上版本,并且 nvcc 也是 12.4 以上版本。
目录结构
1 2 3 4 5 6 7
| ├─main.cpp ├─CMakeLists.txt ├─src │ └─lb1.cu ├─include │ └─lib1.h └─build
|
CMakeLists.txt 逐行解析
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| cmake_minimum_required(VERSION 3.18)
project(test CUDA CXX)
include_directories(./include)
find_package(CUDA REQUIRED) include_directories($(CUDA_INCLUDE_DIRS))
file(GLOB SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cu")
add_library(MYLIB STATIC ${SOURCES})
add_executable(t ./main.cu)
target_link_libraries(t PRIVATE MYLIB) target_link_libraries(t PRIVATE ${CUDA_LIBRARIES} ${CUDA_cublas_LIBRARY})
|
代码
CODE