cuda mit mingw - aktualisiert

Entwickeln wir unseren code in linux, würde aber gerne kompilieren eine ausführbare windows-Datei. Die alten non-gpu-version kompiliert einwandfrei mit mingw unter windows, also hoffte ich, ich wäre in der Lage, das gleiche zu tun mit die CUDA-version.

Die Strategie ist das kompilieren von kernel-code mit nvcc in visual studio, und den rest mit gcc bei mingw.

Bisher, werden wir schnell zusammengestellt .cu-Datei (mit dem kernel und der kernel startet) in visual studio. Jedoch, wir können immer noch nicht kompilieren von c-code in mingw. Der c-code enthält cuda-api-Aufrufe wie cudaMalloc - und cuda-Typen wie cudaEvent_t ist, so müssen wir zählen cuda.h und cuda_runtime.h. Allerdings gcc gibt Warnungen und Fehler für diese überschriften, zum Beispiel:

../include/host_defines.h:57:0: warning: "__cdecl" redefined

und

../include/vector_functions.h:127:14: error: 'short_4' has no member named 'x'

Irgendwelche Ideen auf, wie können wir diese überschriften und kompilieren Sie das c-Teil des Codes?

  • Haben Sie sich überlegt mit Hilfe der Treiber API?
  • Nein - wie viel Arbeit würde es dauern, zu konvertieren von der Laufzeit-api auf die Treiber-api?
  • Wenn Sie eine Menge von CUDA-code wird es eine Weile dauern, zu konvertieren - die Treiber-API ist sehr viel Ausführlicher als die runtime-API. Die Treiber-API-code wäre einfacher zu kompilieren durch mingw, da rufen Sie die Treiber durch standard-C-Funktionen. Ich kann Ihnen nicht sagen, ob es Wert ist den Schmerz zu wechseln oder nicht wenn!
InformationsquelleAutor jmilloy | 2011-05-04
Schreibe einen Kommentar