使用 cmake 构建 CUDA 目标文件

标签 build cuda cmake

我得到了以下设置。我将使用 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/

相关文章:

java - 如何导出CUDA(jcuda)程序

c++ - eclipse c++ 一次从构建中排除多个文件?

visual-studio-2012 - 单独的 TFS 构建,不包括单个项目

c++ - float2 和 cuComplex 有什么区别,要使用哪个?

c++ - 推力 copy_if : incomplete type is not allowed

c++ - CMake:如何将每个资源编译器警告视为错误并抑制特定警告?

c++ - 奇怪的链接器错误

cmake 和 Visual Studio

jenkins - Jenkins 可以同时运行多个作业吗

kotlin - 配置 build.gradle 为简单的 kotlin 项目创建可执行 jar 文件