2012-10-25 3 views
16

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

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

+2

OpenCVライブラリには、gpuモジュールがCUDAでアクセラレーションされています。主なアプローチは、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

関連する問題