web-dev-qa-db-ja.com

cmakeを使用したCUDAオブジェクトファイルの構築

次の設定をしました。 MPIおよびCUDAを使用するその他のものを使用してC++で記述されたフレームワークを拡張します。プロジェクトはビルドにcmakeを使用します。拡張機能とビルドオブジェクトファイルにライブラリを使用することは避けたいです。私のcudaソースから。その後、これらのオブジェクトオブジェクトファイルと他のコンパイラでコンパイルされた他のいくつかのファイルをリンクしたいと思います。誰かがそれを達成するための手がかりを持っていますか?

CmakeでCUDAを使用する方法の概要については、 http://code.google.com/p/cudpp/wiki/BuildingCUDPPwithCMake を参照しましたが、このソリューションではライブラリも使用しています。

16
soriak

新しいバージョンの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ファイルをご覧ください。

28
nwhsvc