Kompilieren mit der GPU?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Milbret
Beiträge: 827
Registriert: 26.05.2008 12:04:54
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Nörten-Hardenberg
Kontaktdaten:

Kompilieren mit der GPU?

Beitrag von Milbret » 06.07.2012 20:32:11

Ist es eigentlich möglich Software über die CPU und GPU zu kompilieren oder spricht was dagegen?
Würde gerne mal wissen ob dies möglich wäre und wenn ja wie.

Das Thema ist mir gerade in den Sinn gekommen.
Es geht hier wirklich um das auslagern von Kompilier Aufgaben über make.
Gibt es dafür schon Tools oder Ansätze?

Martin
Es gibt keine if Schleife -> http://www.if-schleife.de/
Ansonsten GPL/GNU/Linux/Debian/Free Software 4 Ever :D

gbotti
Beiträge: 846
Registriert: 16.07.2010 14:24:43
Wohnort: München

Re: Kompilieren mit der GPU?

Beitrag von gbotti » 09.07.2012 16:39:49

Hi.

Kommt drauf an, welche Graka du einsetzt. Für NVIDIA gibts zum Beispiel die CUDA-Tools. Hab ich aber noch nie installiert, da ich nicht der Entwickler bin sondern nur einer, der gelegentlich mal was kompilieren muss.
Georg
RTFM, LMGTFY, Orakel... Ach... Warum muss man suchen...
Schrödingers Backup --- "Der Zustand eines Backups ist unbekannt, solange man es nicht wiederherstellt" --- Quelle: Nixcraft

wanne
Moderator
Beiträge: 7556
Registriert: 24.05.2010 12:39:42

Re: Kompilieren mit der GPU?

Beitrag von wanne » 09.07.2012 20:30:26

gbotti hat geschrieben:Für NVIDIA gibts zum Beispiel die CUDA-Tools.
Wie soll man damit compilieren?
Milbret hat geschrieben:Ist es eigentlich möglich Software über die CPU und GPU zu kompilieren oder spricht was dagegen?
Ich will da jetzt nicht grundsätzlich wiedersprechen. Aber ich halte das ganze für nicht so gut umsetzbar ich meine parallelisieren ist beim compilieren zwar relativ gut möglich. Aber so kompilieren ist doch eher komplex. Das der GPU zu verklickern ist garnaiert nicht so simpel. (10k mal ne MD5summe berechnen ist das eine aber so ein Programmcode compilieren... Guck dir einfach mal an wie viel Zeilen das gcc oder so hat.)
rot: Moderator wanne spricht, default: User wanne spricht.

Milbret
Beiträge: 827
Registriert: 26.05.2008 12:04:54
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Nörten-Hardenberg
Kontaktdaten:

Re: Kompilieren mit der GPU?

Beitrag von Milbret » 09.07.2012 21:50:54

@wanne
Klar wäre der Aufwand sowas umzusetzen nicht gerade gering.
Aber das Ergebnis wäre schon interessant.
Alleine weil auf einer GPU an sich mehrere Minu CPUs sitzen.
Im Endeffekt müsste man lediglich einen mini compiler bauen, der den Platformspezifischen Code generiert.
Aber wahrscheinlich ist eine GPU nicht für solche Aufgaben gedacht.

Aber eine Zusatzkarte mit genügend Mini CPUs und eine API dafür könnte man bestimmt für solche Zwecke nutzen.
Wäre interessant wenn es sowas geben würde.
Kennt jemand vielleicht sowas?

Martin
Es gibt keine if Schleife -> http://www.if-schleife.de/
Ansonsten GPL/GNU/Linux/Debian/Free Software 4 Ever :D

wanne
Moderator
Beiträge: 7556
Registriert: 24.05.2010 12:39:42

Re: Kompilieren mit der GPU?

Beitrag von wanne » 09.07.2012 23:20:42

Milbret hat geschrieben:Klar wäre der Aufwand sowas umzusetzen nicht gerade gering.
Ich glaube auch das es da einfach technische Probleme gibt. Im prinzip haben die GPUs mittlerweile ordentlich RAM. Aber ich kann mir irgend wie trotzde nich vorstellen, das die mit relativ komliziertem Code mit Sprüngen und co. noch ordentlich Arbeiten. Außerdem wird der Code nach dem Übersetzen garantiert viel größer (so ein x86 Befehlssatz ist groß.) Konkret kann ich aber nicht sagen. Ich kenne mich mit dem desighn von so ner GPU nicht wirklich aus.
Milbret hat geschrieben:Alleine weil auf einer GPU an sich mehrere Minu CPUs sitzen.
Ich glaube dass so ne Mini CPU nicht wirklich viel billiger ist als eine volle. (Wenn sie volles x86 oder so spricht.)
Im Roadrunner (wo's nicht wirklich was aus macht wenn da nochmal fünf mal soviel drin hängt) haben die acuh Opterons und Cell Prozessoren verbaut. Das sind ja ordentlich Brummer. => Ich denke wenn du komplizierte Anwendungen hast hat so ein dicker Prozessor das Bessere Kosten/Rechenleistung Verhältnis. Nur für stupiede Aufgaben lohnt es sich billigere Einheiten zu Bauen, die weniger können.
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
schorsch_76
Beiträge: 2601
Registriert: 06.11.2007 16:00:42
Lizenz eigener Beiträge: MIT Lizenz

Re: Kompilieren mit der GPU?

Beitrag von schorsch_76 » 10.07.2012 07:48:19

Eine GPU ist nichts anderes als eine Ansammlung vieler relativ einfacher schneller Prozessoren. Diese sind bei weitem nicht so flexibel wie eine heutige CPU. Die GPU und CPU unterscheiden sich schon was ihre Leistung angeht. Die GPU kann sehr gut viele gleiche Sachen parallel machen. Der Compiliervorgang ist nur sehr komplex. Ich bezweifle dass das (ohne viel Aufwand) auf der GPU gemacht werden kann. Auch denke ich dass falls das laufen sollte nicht den Geschwindigkeitsunterschied ausmachen wird, da das Kompilieren eines Files (C/Cpp/Obj-C) aufwendig ist und nicht parallelisiert werden kann da etliche Schritte einfach sequentiell abgearbeitet werden müssen. Siehe dazu auch [1][4][5]

Das ist übrigens auch das gleiche Prinzip bei Supercomputern. Die können viele gleiche Sachen parallel machen. Erst dass macht sie so schnell. Ohne Parallelisierung geht auch hier nichts. Siehe dazu [2][3]

Gruß
schorsch

[1] http://www.freebsd.org/doc/de/books/dev ... iling.html
[2] http://de.wikipedia.org/wiki/Supercomputer#Aufbau
[3] http://de.wikipedia.org/wiki/Vektorrechner
[4] http://de.wikipedia.org/wiki/Parallele_Programmierung
[5] http://de.wikipedia.org/wiki/Amdahlsches_Gesetz

Benutzeravatar
Tintom
Moderator
Beiträge: 3069
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: Kompilieren mit der GPU?

Beitrag von Tintom » 10.07.2012 17:18:33

Korrigiert mich, wenn ich falsch liege, aber wird sowas nicht schon mit LLVM im mesa-Zweig realisiert?
(http://en.wikipedia.org/wiki/Llvm)

wanne
Moderator
Beiträge: 7556
Registriert: 24.05.2010 12:39:42

Re: Kompilieren mit der GPU?

Beitrag von wanne » 11.07.2012 03:34:01

Wenn ich den Artikel richtig verstanden habe optimiert der halt GPU Programme. (Auf der GPU.) Dazu müssen sie aber erst mal geschrieben werden.
Was aber immer noch nichts daran ändert, dass ich vermute dass das ding mega langsam wird, Wenn man versucht auf der GPU zu compilieren.
rot: Moderator wanne spricht, default: User wanne spricht.

Zeitgeist

Re: Kompilieren mit der GPU?

Beitrag von Zeitgeist » 11.07.2012 12:54:01

Llvm hat nichts mit Kompilieren auf der GPU zu tun. Llvm ist nichts als ein weiterer Compiler(-Frontend). Eine seiner Fähigkeiten ist, dass dieser Compiler Code, der für die Grafikkarte gedacht ist, so kompilieren kann, dass er auch auf der CPU ausgeführt werden kann. Das ist z.B mit Mesa der Fall. Auf diesem Weg kann man z.B die Gnomeshell auf Rechner ausführen ohne funktionierende 3D-Beschleunigung(zu sehen in Fedora 17).

Benutzeravatar
Tintom
Moderator
Beiträge: 3069
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: Kompilieren mit der GPU?

Beitrag von Tintom » 11.07.2012 20:37:56

Zeitgeist hat geschrieben:Llvm hat nichts mit Kompilieren auf der GPU zu tun. Llvm ist nichts als ein weiterer Compiler(-Frontend). Eine seiner Fähigkeiten ist, dass dieser Compiler Code, der für die Grafikkarte gedacht ist, so kompilieren kann, dass er auch auf der CPU ausgeführt werden kann. Das ist z.B mit Mesa der Fall. Auf diesem Weg kann man z.B die Gnomeshell auf Rechner ausführen ohne funktionierende 3D-Beschleunigung(zu sehen in Fedora 17).
Achso, also läuft das genau andersrum...
Danke, wieder was gelernt! :)

Antworten