Visual Studio und OpenCL
Visual Studio und OpenCL
Hallo,
kann mir jemand bitte sagen wie ich den include Verzeichnis und die opencl lib in mein visual studio projekt einbinden kann damit ich den vorgegebenen code kompilieren kann
viele Grüße
kann mir jemand bitte sagen wie ich den include Verzeichnis und die opencl lib in mein visual studio projekt einbinden kann damit ich den vorgegebenen code kompilieren kann
viele Grüße
Re: Visual Studio und OpenCL
Je nach verwendetem SDK die Pfade in der CMakeLists.txt entsprechend anpassen und dann cmake ausführen:
Das erstellt dir ein Projekt für Visual Studio, die Libraries sind dann schon eingebunden.
Code: Alles auswählen
cmake -G "Visual Studio 10"
-
- Mausschubser
- Beiträge: 73
- Registriert: 10. Apr 2011 17:24
- Wohnort: Bessungen, Darmstadt
- Kontaktdaten:
Re: Visual Studio und OpenCL
CMake kann dir Visual Studio SLN's und VCPROJ's generieren.
Re: Visual Studio und OpenCL
Hallo,
wo führe ich cmake aus ? in der Command ? heisst das ich kann das program nicht wie sont kompilieren und ausführen ?
Danke
wo führe ich cmake aus ? in der Command ? heisst das ich kann das program nicht wie sont kompilieren und ausführen ?
Danke
Re: Visual Studio und OpenCL
Wie man das Ganze auf einem Windows Rechner mit Visual Studio zum laufen bekommt würde mich aber auch mal brennend interessieren!!!
Habe das NVIDIA SDK installiert und anschließend die ensprechenden Pfade in der CMakeLists.txt Datei geändert. Dann habe ich mit cmake ein VS Projekt generieren lassen. Das Probleme ist jetzt, dass VS das Projekt nicht kompiliert sondern mit einer Fehlermeldung aufhört:
fatal error C1083: Datei (Include) kann nicht geöffnet werden: "sys/time.h": No such file or directory
Kann mir bitte jemand erklären, wie ich das Praktikum an's laufen bekomme, ohne extra eine Linux Distribution installieren zu müssen!
Da man ja nicht die RBG Rechner belasten soll und man es auf den Clustern nicht auf der CPU testen kann, muss man es ja irgendwie auf dem heimischen PC zum laufen bekommen.....
Habe das NVIDIA SDK installiert und anschließend die ensprechenden Pfade in der CMakeLists.txt Datei geändert. Dann habe ich mit cmake ein VS Projekt generieren lassen. Das Probleme ist jetzt, dass VS das Projekt nicht kompiliert sondern mit einer Fehlermeldung aufhört:
fatal error C1083: Datei (Include) kann nicht geöffnet werden: "sys/time.h": No such file or directory
Kann mir bitte jemand erklären, wie ich das Praktikum an's laufen bekomme, ohne extra eine Linux Distribution installieren zu müssen!

-
- Mausschubser
- Beiträge: 73
- Registriert: 10. Apr 2011 17:24
- Wohnort: Bessungen, Darmstadt
- Kontaktdaten:
Re: Visual Studio und OpenCL
Probiers mal ohne "sys/".
Re: Visual Studio und OpenCL
Kann leider nicht testen, ob es so gehen würde. Es gibt nämlich noch ein anderes Problem wie mir aufgefallen ist. Wenn ich die Pfade zu den Headern und den Libraries so angeben, dass cmake einwandfrei durchläuft, findet VS beim kompilieren "opencl.h" nicht
Das habe ich der CMakeLists.txt stehen:
INCLUDE_DIRECTORIES("$(NVSDKCOMPUTE_ROOT)/OpenCL/common/inc")
TARGET_LINK_LIBRARIES(Praktikum5 "$(NVSDKCOMPUTE_ROOT)/OpenCL/common/lib/Win32")
Mit Backslash geht es nicht und wenn den Pfad ala "C:\Program Data\NVIDIA......" angibt auch nicht. Dann beschwert sich jedes mal cmake, dass was nicht stimmt.
Ich krieg hier noch die Krise!

Das habe ich der CMakeLists.txt stehen:
INCLUDE_DIRECTORIES("$(NVSDKCOMPUTE_ROOT)/OpenCL/common/inc")
TARGET_LINK_LIBRARIES(Praktikum5 "$(NVSDKCOMPUTE_ROOT)/OpenCL/common/lib/Win32")
Mit Backslash geht es nicht und wenn den Pfad ala "C:\Program Data\NVIDIA......" angibt auch nicht. Dann beschwert sich jedes mal cmake, dass was nicht stimmt.
Ich krieg hier noch die Krise!

Re: Visual Studio und OpenCL
Funktioniert bei uns unter Windows mit Eclipse...bttf hat geschrieben:Kann mir bitte jemand erklären, wie ich das Praktikum an's laufen bekomme, ohne extra eine Linux Distribution installieren zu müssen!Da man ja nicht die RBG Rechner belasten soll und man es auf den Clustern nicht auf der CPU testen kann, muss man es ja irgendwie auf dem heimischen PC zum laufen bekommen.....
Re: Visual Studio und OpenCL
Oh das wäre natürlich schön 
Da muss ich doch gleich genauer nachfragen: Muss man noch extra ein C++ Plugin installieren? Und was macht man dann mit der CMakeLists.txt oder gehts auch ohne???

Da muss ich doch gleich genauer nachfragen: Muss man noch extra ein C++ Plugin installieren? Und was macht man dann mit der CMakeLists.txt oder gehts auch ohne???
Re: Visual Studio und OpenCL
Ja, man braucht das Eclipse C/C++ Plugin und MinGW; da Eclipse CMake Dateien nicht beachtet (wobei es dafür bestimmt auch Plugins gibt), muss man die Compileeinstellungen manuell über die Projekteigenschaften einstellen
Re: Visual Studio und OpenCL
OK, Eclipse für C++ hab ich jetzt und MinGW hatte ich auch so schon.
Jetzt wieder die Frage für Dumme: Wie "verbinde" ich die beiden? Bzw. wie nutze ich MinGW aus Eclipse heraus?
Ich hab es mit "New -> Project -> Makefile Project with Existing Code" probiert, weiß dann aber schon nicht mehr weiter, weil igendwie muss man Eclipse ja letztenendes auch sagen, wo die OpenCL Dateien sind....
Jetzt wieder die Frage für Dumme: Wie "verbinde" ich die beiden? Bzw. wie nutze ich MinGW aus Eclipse heraus?
Ich hab es mit "New -> Project -> Makefile Project with Existing Code" probiert, weiß dann aber schon nicht mehr weiter, weil igendwie muss man Eclipse ja letztenendes auch sagen, wo die OpenCL Dateien sind....
Re: Visual Studio und OpenCL
Ok, hast du den Ordner MinGW/bin schon in deinem System-PATH? Gehen wir mal davon aus, dass das so ist...
Du musst über New -> C++ Project -> Executable -> Empty Project gehen und bei Toolchain den MinGW GCC auswählen (geht vllt. auch einfacher, aber so hat es bei mir immer funktioniert).
Nachdem das Projekt erstellt ist einfach die Dateien aus dem Coderahmen vom Praktikum reinkopieren per drag&drop; dann im Navigator über Rechtsklick die Properties des Projekts öffnen; über C/C++ Build -> Settings erstmal oben "All Configurations" auswählen; dann Tool Settings -> MinGW C++ Linker -> Libraries -> Add und schreib "OpenCL" rein (ohne ""); jetzt geh über C/C++ General -> Path and Symbols -> Includes -> Languages -> Add und setze die ersten beiden Haken und gib als Pfad "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" (oder ähnlich, bzw. "C:\Program Files (x86)\AMD APP\include", wenn du AMD hast) an; dann wechsel im Tab auf Library Paths und den Add-Dialog: wieder die ersten beiden Haken setzen und "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\lib\Win32" (oder ähnlich, bzw. "C:\Program Files (x86)\AMD APP\lib\x86") eintragen. Jetzt auf OK klicken und hoffen, dass es funktioniert, keine Garantie...
Du musst über New -> C++ Project -> Executable -> Empty Project gehen und bei Toolchain den MinGW GCC auswählen (geht vllt. auch einfacher, aber so hat es bei mir immer funktioniert).
Nachdem das Projekt erstellt ist einfach die Dateien aus dem Coderahmen vom Praktikum reinkopieren per drag&drop; dann im Navigator über Rechtsklick die Properties des Projekts öffnen; über C/C++ Build -> Settings erstmal oben "All Configurations" auswählen; dann Tool Settings -> MinGW C++ Linker -> Libraries -> Add und schreib "OpenCL" rein (ohne ""); jetzt geh über C/C++ General -> Path and Symbols -> Includes -> Languages -> Add und setze die ersten beiden Haken und gib als Pfad "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" (oder ähnlich, bzw. "C:\Program Files (x86)\AMD APP\include", wenn du AMD hast) an; dann wechsel im Tab auf Library Paths und den Add-Dialog: wieder die ersten beiden Haken setzen und "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\lib\Win32" (oder ähnlich, bzw. "C:\Program Files (x86)\AMD APP\lib\x86") eintragen. Jetzt auf OK klicken und hoffen, dass es funktioniert, keine Garantie...
Re: Visual Studio und OpenCL
Erst Mal Danke für die Mühe! Leider sagt er immer noch "Launch failed. Binary not found."
Weil ich inzwischen dann doch ziemlich genervt war, habe ich jetzt Ubuntu installiert
Funzt darauf auch soweit prima mit cmake, aber wenn ich dann make ausführe, bricht er bei MIcomputation.cpp ab. Hab die Fehlermeldung nicht mehr genau im Kopf, aber er hat was gegen die "exit(1);" Befehle in dem Code. Die Fehlermeldung war irgendwas mit ".... in diesem Gültigkeitsbereich nicht definiert." Auf dem Cluster habe ich diese Fehlermeldung nicht bekommen, da klappt das kompilieren einwandfrei. Jemand 'ne Ahnung woran das liegt???
EDIT: Habe des Rätsels Lösung gerade in einem anderen Thread hier im Forum gefunden. In MIcomputation.cpp noch ein #include <cstdlib> dazu und in oclutil.cpp die Abfrage raus, ab es include't werden soll und es in jedem Fall include'en. Jetzt läuft es TATSÄCHLICH!!!! Was für ein Erfolg!!!
Hat auch nur den halben Tag gedauert xD
Weil ich inzwischen dann doch ziemlich genervt war, habe ich jetzt Ubuntu installiert

EDIT: Habe des Rätsels Lösung gerade in einem anderen Thread hier im Forum gefunden. In MIcomputation.cpp noch ein #include <cstdlib> dazu und in oclutil.cpp die Abfrage raus, ab es include't werden soll und es in jedem Fall include'en. Jetzt läuft es TATSÄCHLICH!!!! Was für ein Erfolg!!!



Re: Visual Studio und OpenCL
Hast du die Perspektive auch auf C++ umgestellt und den Code erstmal kompiliert?bttf hat geschrieben:Erst Mal Danke für die Mühe! Leider sagt er immer noch "Launch failed. Binary not found."
-
- Windoof-User
- Beiträge: 31
- Registriert: 7. Nov 2010 01:42
Re: Visual Studio und OpenCL
Also ich habe das ganze unter VS zum laufen bekommen, zugegebenermaßen ist es nicht ganz einfach.
1. Gettimeofday gibt es unter Windows nicht. Einen hinreichend genauen Ersatz bekommt man aber, wenn man einfach mal gettimeofday windows google'd.
2. Ich habe das AMD App SDK verwendet (x64) und erst mal mit absoluten Pfaden gearbeitet. Zugegebenermaßen ist das sehr hässlich und wäre es nicht nur für ein GDI Praktikum würde ich das auch nicht so machen. Man erzeugt ein leeres C++ Projekt und fügt dann alle dateien aus dem src Ordner des Projektrahmens als existierende Dateiein zum Projekt hinzu.
3. Include und Libs angeben: Projekteinstellungen, Compiler, Additional Include: Hier den include Ordner aus dem App SDK angeben. Projekteinstellungen, Linker, Additional Dependencies: Opencl.dll angeben, Additional Lib Directories: App SDK lib folder angeben.
4. Projekt auf x64 umstellen: solution anwählen neue Konfiguration erstellen. plattform x64 auswählen, die einstellungen müsst ihr aus der standard win32 debug konfiguration übernehmen (ein dialog wird euch danach fragen).
Die Aufstellung ist jetzt erst mal nur so aus dem Kopf, insebsondere die Namen der Menüeinträge stimmen wahrscheinlich nicht 100%ig, sind aber sinngemäß.
Hoffe das hilf jemandem, ansonsten Rückfragen mit genauer Fehlerbseschreibung.
1. Gettimeofday gibt es unter Windows nicht. Einen hinreichend genauen Ersatz bekommt man aber, wenn man einfach mal gettimeofday windows google'd.
2. Ich habe das AMD App SDK verwendet (x64) und erst mal mit absoluten Pfaden gearbeitet. Zugegebenermaßen ist das sehr hässlich und wäre es nicht nur für ein GDI Praktikum würde ich das auch nicht so machen. Man erzeugt ein leeres C++ Projekt und fügt dann alle dateien aus dem src Ordner des Projektrahmens als existierende Dateiein zum Projekt hinzu.
3. Include und Libs angeben: Projekteinstellungen, Compiler, Additional Include: Hier den include Ordner aus dem App SDK angeben. Projekteinstellungen, Linker, Additional Dependencies: Opencl.dll angeben, Additional Lib Directories: App SDK lib folder angeben.
4. Projekt auf x64 umstellen: solution anwählen neue Konfiguration erstellen. plattform x64 auswählen, die einstellungen müsst ihr aus der standard win32 debug konfiguration übernehmen (ein dialog wird euch danach fragen).
Die Aufstellung ist jetzt erst mal nur so aus dem Kopf, insebsondere die Namen der Menüeinträge stimmen wahrscheinlich nicht 100%ig, sind aber sinngemäß.
Hoffe das hilf jemandem, ansonsten Rückfragen mit genauer Fehlerbseschreibung.