16

我得到了以下设置。我将使用 MPI 和其他使用 CUDA 的东西来扩展用 C++ 编写的框架。该项目使用 cmake 进行构建。我想避免为我的扩展使用库并从我的 cuda 源构建目标文件。之后,我想链接这些目标文件和用其他编译器编译的其他一些文件。有没有人知道如何实现这一目标?

我查看了http://code.google.com/p/cudpp/wiki/BuildingCUDPPwithCMake以获得有关如何将 CUDA 与 cmake 一起使用的概述,但此解决方案也使用了一个库。

4

1 回答 1

28

可以使用较新版本的 cmake 附带的 CUDA 支持来编译目标文件。你使用cuda_compile命令。见下文。

# CMakeLists.txt for G4CU project                                                                                                                                                                          
project(test-cuda-thrust-gdb)

# required cmake version                                                                                                                                                                                   
cmake_minimum_required(VERSION 2.8)

# packages                                                                                                                                                                                                 
find_package(CUDA)

# nvcc flags                                                                                                                                                                                               
set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS};-gencode arch=compute_20,code=sm_20)

cuda_compile(HELPER_O helper.cu)
cuda_compile(DRIVER_O driver.cu OPTIONS -G)

cuda_add_executable(driver ${HELPER_O} ${DRIVER_O})

如果您需要更多信息,请查看该FindCUDA.cmake文件。

于 2012-11-06T05:29:06.020 回答