我得到了以下设置。我将使用 MPI 和其他使用 CUDA 的东西来扩展用 C++ 编写的框架。该项目使用 cmake 进行构建。我想避免为我的扩展使用库并从我的 cuda 源构建目标文件。之后,我想链接这些目标文件和用其他编译器编译的其他一些文件。 有没有人知道如何实现这一目标?
我看过 http://code.google.com/p/cudpp/wiki/BuildingCUDPPwithCMake获取有关如何将 CUDA 与 cmake 一起使用的概述,但此解决方案也使用库。
最佳答案
可以使用较新版本的 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
文件。
关于使用 cmake 构建 CUDA 目标文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13073717/