C++ Compiler die mithilfe der GPU den Quellcode compilieren?
-
Gibt's eigentlich schon C++ Compiler, die die GPU zum compilieren des x86 Quellcodes verwenden?
Und falls nein, wäre das mit GPU Computing machbar?
-
Was genau würdest du dir davon erhoffen?
-
Z.B. eine schnellere Compilezeit.
-
auf der GPU rechnet man i.a. Sachen, wo auf rel. einfachen Datenstrukturen rel. einfache Algorithmen arbeiten, die sich gut parallelisieren lassen. z.B. ist eine Hashtabelle schon eine rel. komplexe Datenstruktur für die GPU
http://stackoverflow.com/questions/7474096/hash-table-implementation-for-gpu
eine C++ Parser Symboltabelle mit den ganzen Datentypen und Rekursionen läßt sich nicht so einfach auf einer GPU unterbringen. weiterhin lassen sich die Compilerabläufe auch nicht gut parallelisieren. es ist auch kein multithreaded Compiler bekannt
http://stackoverflow.com/questions/4430001/which-x86-c-compilers-are-multithreaded-by-itself
es gibt aber verschiedene Buildsysteme, die mehrere Translation Units parallel von mehreren Compilern übersetzen
http://www.gnu.org/software/make/manual/html_node/Parallel.html
http://msdn.microsoft.com/en-us/library/bb385193%28v=VS.90%29.aspx
http://qt-project.org/wiki/jom
http://www.incredibuild.com/IncrediBuild compiliert auf allen freien CPU's im lokalen Netzwerk
-
Compilerbau schrieb:
Z.B. eine schnellere Compilezeit.
"Parallelisierung" ist kein Zauberwort, das alles magisch schneller macht. "GPU" auch nicht. Wird oft so dargestellt, ist es aber nicht. Es gibt wohl kaum etwas ungeeigneteres für Parallelisierung als einen Compiler.
(Man kann natürlich bei großen Projekten mehrere Quelldateien parallel übersetzen, aber das ist vermutlich nicht das, was du meinst, denn das gibt es ja schon (für CPU))
-
Zum Glück ist der Compiler keine schlimme Bremse mehr. Früher war alles besser. Dann in den 90-ern war es schrecklich. Einmal einen hohen Header angefaßt, eine Kaffepause verdient. Jetzt ist wieder alles gut. So ein alter I7 mit 4 Kernen und Hyperthreading haut den Linux-Kernel in lächerlichen 90 Sekunden durch.
Da wird sich keiner die Mühe machen, die Code-Integrität des Compilers mit GPU-Experimenten zu gefährden. Zumal zu erwarten ist, daß die GPUs sich schneller ändern, als man seine Konzepte anpassen kann; Compiler sind teilweise verflix komplex.