2012-10-25 69 views
16

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

我查看了http://code.google.com/p/cudpp/wiki/BuildingCUDPPwithCMake以获得有关如何在Cmake中使用CUDA的概述,但该解决方案也使用了库。

+2

OpenCV库已经通过CUDA加速了GPU模块。主要的做法是用CUDA_COMPILE CMake宏编译cuda文件,然后在您的ADD_EXECUTABLE或ADD_LIBRARY中添加目标文件。请参阅[OpenCV](https://github.com/Itseez/opencv.git) – geek

回答

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文件。

+0

感谢您的回答。无论如何,我决定去图书馆版本,谢谢 – soriak