2012-10-25 19 views
16

Mam następującą konfigurację. Mam zamiar rozszerzyć framework napisany w C++ za pomocą MPI i innych rzeczy używając CUDA. Projekt wykorzystuje cmake do budowania. Chciałbym uniknąć korzystania z biblioteki dla moich rozszerzeń i budować pliki obiektów z moich źródeł cuda. Następnie chciałbym połączyć te pliki obiektów obiektów i inne pliki skompilowane z innymi kompilatorami. Czy ktoś ma pojęcia o tym, aby to osiągnąć?Tworzenie plików obiektów CUDA przy użyciu cmake

Zerknąłem na http://code.google.com/p/cudpp/wiki/BuildingCUDPPwithCMake, aby uzyskać przegląd użycia CUDA z cmake, ale to rozwiązanie wykorzystuje również bibliotekę.

+2

Biblioteka OpenCV ma moduł gpu przyspieszony z CUDA. Głównym podejściem jest skompilowanie pliku cuda za pomocą CUDA_COMPILE makra CMake, a następnie dodawanie plików obiektowych w ADD_EXECUTABLE lub ADD_LIBRARY. Zobacz [OpenCV] (https://github.com/Itseez/opencv.git) – geek

Odpowiedz

28

Możliwe jest kompilowanie plików obiektów z obsługą CUDA, która jest dostarczana z nowszymi wersjami cmake. Używana jest komenda cuda_compile. Zobacz poniżej.

# 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}) 

Jeśli potrzebujesz więcej informacji, spójrz na plik FindCUDA.cmake.

+0

dzięki za odpowiedź. Postanowiłem mimo wszystko przejść do wersji bibliotecznej, dziękuję – soriak

Powiązane problemy