PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Welche IDE für CUDA?


Senior Sanchez
2010-10-02, 15:07:39
Hi,

Ich bin gerade am herumspielen mit CUDA bzw. habe ich das vor nur scheitert es für mich an einem wichtigen Thema: eine passende IDE.

Natürlich kann man das alles auch per Shell kompilieren, linken etc. oder make files erzeugen. Aber eine IDE wäre mir lieber, wo ich nur einen Knopf drücken muss und es kompiliert und linkt.

Ich habe schon ein paar IDEs ausprobiert, aber nichts will so richtig klappen:
1. Xcode und CUDA ging angeblich mal mit einem inoffiziellen Plugin. Funktionieren tut das jetzt wohl aber nicht mehr.
2. Für Eclipse CDT gibts ein Plugin, das wollte ich testen, aber da kam es auch zu irgendwelchen seltsamen Problemen, die sich nicht so einfach lösen ließen.
3. Nun habe ich mir über die Uni Visual Studio 2010 besorgt, aber eben mit Erschrecken festgestellt, dass eine Anbindung via NSight erst ab NSight Version 1.5 funktioniert. Nur diese ist bisher ausschließlich per NVidia Beta-Programm verfügbar.

Ich selber kann hier auf Mac OS X 10.6 als auch auf Windows 7 zurückgreifen. Mac OS X wäre mir lieber, aber Windows ginge notfalls auch. Habt ihr ne Idee mit welcher IDE ich nun schnell und komfortabel CUDA-Projekte in Angriff nehmen kann?

Danke

Aquaschaf
2010-10-02, 23:04:02
Du kannst doch CMake benutzen um dein Projekt aufzusetzen. Dann kannst du dir die IDE recht frei aussuchen.

Senior Sanchez
2010-10-02, 23:09:44
Ja, CMake habe ich auch schon in Betracht gezogen, aber ich bin mehr der IDE Mensch, bei dem alles einfach eingebunden ist. Wie zum Beispiel das einfache erzeugen von neuen Projekten, Anpassen von Parametern der Kompilierung ohne mich vorher durch zig man pages quälen zu müssen usw.

Sollte alles scheitern, werde ich wohl auf CMake setzen.

AlSvartr
2010-10-03, 09:14:33
Bevor ich google und auf mehrere Dinge Stoße: Wie heißt denn das Eclipse CDT-Plugin? Steh nämlich kurz vor demselben Problem, weil ich auch bald ein paar Module in CUDA basteln möchte...

Expandable
2010-10-03, 10:35:17
C/C++ Development Tooling: http://www.eclipse.org/cdt/

Gast
2010-10-03, 13:51:16
Ich würde CMake empfehlen, das hat den Vorteil dass du deinen Lieblingseditor / Umgebung verwenden kannst. Mal ehrlich, die CMakeLists.txt schreibt man einmal und gut ist, womit man wirklich viel Zeit verbringt ist das editieren der Sourcen, von daher ist es sinnvoll auch da anzusetzen.
Und die paar grundlegenden CMake Dinge sie man braucht um ein Projekt ans Laufen zu bekommen hat man sich in einer Stunde oder so draufgeschafft.

Was m.M.n. super funktioniert ist QtCreator (http://qt.nokia.com/products/developer-tools) & CMake, die CMakeLists.txt muss man zwar noch selber schreiben, ab da ist es aber super in die IDE eingebunden: CMakeLists hereinladen, die IDE erkennt alles automatisch. Zumal mir der Editor wirklich gut gefällt, angenehme Codevervollständigung und sinnvolle Gimmicks (z.b. wird ein . nach einem Pointer automatisch in -> umgewandelt :) ). Der Oberhammer ist natürlich wenn man damit Qt entwickelt...
Gibts AFAIK auch für Mac.

Senior Sanchez
2010-10-03, 14:08:37
Bevor ich google und auf mehrere Dinge Stoße: Wie heißt denn das Eclipse CDT-Plugin? Steh nämlich kurz vor demselben Problem, weil ich auch bald ein paar Module in CUDA basteln möchte...

Falls du das CUDA Plug-In meinst: http://www.ai3.uni-bayreuth.de/software/eclipsecudaqt/

AlSvartr
2010-10-03, 16:05:19
Das meinte ich, danke, werd ich mir mal ansehen :)

Allerdings denke ich, am Ende wirds auch auf CMake rauslaufen. Das verwenden bei uns sowieso mittlerweile fast alle :)

Senior Sanchez
2010-10-07, 13:37:57
An alle für den Rat mit CMake: Vielen Dank dafür!
Ich habe jetzt nur mal was klitzekleines ausprobiert, aber dank dem FindCUDA Script lief das alles auf Anhieb und so etwas gefällt natürlich. :)

Ich muss jetzt nur mal genau rausfinden, wie ich Xcode Projekte erstelle. Ich dachte eigentlich, dass ich das als Generator angegeben habe, aber es sieht irgendwie nicht danach aus.

Gast
2010-10-07, 13:56:12
CMake kann von den freien IDEs nur CodeBlocks und Eclipse:
http://www.cmake.org/cmake/help/cmake-2-8-docs.html#section_Generators

Deshalb der Hinweis auf QtCreator, dort ist die CMakeLists.txt gleich auch das Projektfile für die IDE :)

Senior Sanchez
2010-10-07, 14:07:55
Hm, aber dann kapier ich folgendes Optionenlisting nach dem Aufruf von Cmake nicht:


Generators

The following generators are available on this platform:
Unix Makefiles = Generates standard UNIX makefiles.
Xcode = Generate XCode project files.
CodeBlocks - Unix Makefiles = Generates CodeBlocks project files.
Eclipse CDT4 - Unix Makefiles
= Generates Eclipse CDT 4.0 project files.
KDevelop3 = Generates KDevelop 3 project files.
KDevelop3 - Unix Makefiles = Generates KDevelop 3 project files.

Senior Sanchez
2010-10-07, 14:17:43
So, jetzt gings. Keine Ahnung was ich diesmal anders gemacht habe, aber mein Xcode Projekt wurde jetzt erzeugt. :)

Gast
2010-10-07, 23:39:46
Tatsächlich... bei meinem CMake steht auch KDevelop3.
Komisch dass es auf der Website nicht erwähnt ist.

Senior Sanchez
2010-10-08, 10:56:22
Jopp. :-)
Ich werde aber denke ich auf Eclipse wechseln, dass ist mir als C/C++ Idee eben lieber. :-)

Nun wäre die Frage, ob es noch einen guten CUDA-Emulator gibt. Mit CUDA 3.1 wurde ja die Device Emulation abgeschafft, aber ich habe noch Ocelot und Barra gefunden.
Während Barra einfacher zu nutzen scheint, aber wohl nicht die sämtliche Funktionen der CUDA-Runtime abbilden kann, ist Ocelot wesentlich mächtiger. Wenn ich aber sehe, was es für ein Aufwand ist, Programme für Ocelot zu kompilieren (da wird gegen viele Libraries gelinkt und ob das am Ende noch auf nem echten CUDA läuft?), habe ich darauf auch irgendwie nicht so Lust.

Im Moment überlege ich, dass ganze über CUDA 3.0 zu machen, aber das ist ja nun auch schon ein bisschen älter.

Gast
2010-10-09, 19:58:27
Jopp. :-)
[...]
Im Moment überlege ich, dass ganze über CUDA 3.0 zu machen, aber das ist ja nun auch schon ein bisschen älter.
Da würd ich mir keine Sorgen machen, ich hab bis vor kurzem noch mit 2.3 entwickelt. Hast du überhaupt eine Fermi? Sonst bringt dir >2.x eh nix.

Senior Sanchez
2010-10-09, 20:16:02
Da würd ich mir keine Sorgen machen, ich hab bis vor kurzem noch mit 2.3 entwickelt. Hast du überhaupt eine Fermi? Sonst bringt dir >2.x eh nix.

Ne, eine Fermi habe ich nicht.
Aber ich dachte, dass da vielleicht intern noch andere Sachen geändert wurden, die auch ältere Chipsätze betreffen.

Vielen Dank aber für den Hinweis. Ich denke, ich werde 3.0 einfach installieren.

Aber dazu noch eine Frage: Bei Parallel NSight, müssen auf beiden Maschinen die selben CUDA-Versionen laufen?

Gast
2010-10-11, 14:45:13
Natürlich werden immer wieder auch andere Kleinigkeiten geändert...
Der große Sprung von 2.x auf 3.x ist die Unterstürzung für Fermi, dort hat sich auch am meisten geändert. Dass jetzt class inheritance, templates usw. unterstützt werden ist z.b. nur für Fermi richtig relevant (weil entprechend performant) selbiges gilt für die Erweiterungen bei double Precision. Für ältere Architekturen sind diese Features "ganz nett" (wenn man es denn überhaupt nutzt) aber kein must-have. IMHO


Aber dazu noch eine Frage: Bei Parallel NSight, müssen auf beiden Maschinen die selben CUDA-Versionen laufen?

Da kann ich leider nicht weiterhelfen, bin auf Linux unterwegs...