16

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

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

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 に答える