Konfiguration von CMake setup CUDA auf Windows
Ich versuche, mit CMake für die Kompilierung der CUDA-basierten Anwendungen für Windows (Visual Studio 2005). Hier ist ein Beispiel abgespeckte CMake-Datei:
cmake_minimum_required (VERSION 2.6)
project (HELLO)
#Support for CUDA Integration
FIND_PACKAGE(CUDA)
if(CUDA_FOUND)
SET(CUDA_NVCC_FLAGS "-arch;sm_13")
CUDA_ADD_EXECUTABLE(Hello hello.cu)
else(CUDA_FOUND)
message("CUDA is not installed on this system.")
endif()
Es gibt ein paar Dinge, die ich wünschte, um zu verstehen, mit diesem.
Wenn ich öffnen Sie die Projektmappen-Datei (Hello.sln), sehe ich keinen custom build Regel setup für das Projekt (Rechte Maustaste auf Projekt -> Benutzerdefinierte Regeln erstellen)
Sehe ich ein "Hello_generated_hello.cu.obj" Hinzugefügt, um mein Projekt in Visual Studio. Was ist diese Datei und warum ist es zu dem Projekt Hinzugefügt?
Standardmäßig CUDA-Runtime-API-Abschnitt kommt nicht in den Projekteigenschaften.
Wenn ich Sie aktivieren eine entsprechende benutzerdefinierte buildregel (NvCudaRuntimeApi.Regeln), ich kann jetzt sehen, CUDA-runtime-API beschrieben. Wenn ich jetzt nach GPU-Unterabschnitt, sehe ich die GPU-Architektur noch festgelegt werden sm_10.
Selbst wenn ich CUDA_INCLUDE_DIRECTORIES () - Makro, fügen Sie einige Verzeichnisse, die für CUDA-Kompilierung, ich will nicht sehen, diese Einstellungen in den Projekt-Eigenschaften -> die CUDA Runtime API -> allgemein -> Zusätzliche Include-Verzeichnisse.
Möchte ich wissen, ob FindCUDA () - Paket ist sehr in der Lage, richtig zu konfigurieren VS 2005-Projekt für die CUDA-basierten Zusammenstellung. Vielleicht muss ich noch weitere Optionen festlegen, um richtig zu konfigurieren Sie das Projekt. Ich würde sicherlich wissen wollen. Ich möchte sichergehen, dass die Optionen, die ich angegeben habe, durch die CMakeLists-Datei, ich sollte in der Lage sein, Sie zu überprüfen, einfach in meinen generiert VS 2005-Projekt.
Was ist der geeignete Weg, um dies zu konfigurieren?
- Sieht für mich wie Sie fehlt der host-C/C++ - code in den Aufruf
CUDA_ADD_EXECUTABLE
. Versuchen Sieset(CUDA_VERBOSE_BUILD ON)
und sehen, ob das hilft.
Du musst angemeldet sein, um einen Kommentar abzugeben.
CMake unterstützt keine benutzerdefinierte Regeln erstellen (wie der CUDA runtime API .rules-Datei), und daher können Sie nicht Bearbeiten Sie die CUDA-Eigenschaft der Blätter, die .Regeln-Dateien bereitstellen wenn Sie CMake konfigurieren Sie Ihr Projekt. Jedoch können Sie eine beliebige CUDA-Einstellungen direkt in der CMakeLists.txt erzeugt das Projekt und der Wiederaufbau wird Ihr Projekt erkennen diese änderungen und regenerieren und laden Sie die Projekt-Dateien automatisch.
Den zusätzlichen Vorteil der FindCUDA (abgesehen davon, dass cross-Plattform) ist die richtige Analyse der Abhängigkeiten, so dass Sie nie am Ende mit veralteten builds, wie Sie normalerweise bei der Verwendung von CUDA .cu-Dateien in Visual Studio (mit oder ohne .Regeln-Dateien).
Finden Sie Beispiele für die Verwendung von CMake mit CUDA in der CUDPP Projekt in die folgenden Dateien:
http://code.google.com/p/cudpp/source/browse/trunk/CMakeLists.txt
Hoffe, das hilft.