Login
Newsletter
Werbung

Mo, 13. August 2012, 08:00

Software::Entwicklung

Freier Java-Compiler für GPU-Programme

Der Compiler Rootbeer ermöglicht es, in Java geschriebene Berechnungen auf Grafikchips ausführen zu lassen.

Rootbeer ist nach den Erläuterungen seines Autors Phil Pratt-Szeliga von der Universität in Syracuse fortgeschrittener als CUDA oder die Java-Bindungen von OpenCL, denn bei diesen Bindungen muss der Programmierer seine komplexen Objektgraphen manuell in Arrays von primitiven Typen umwandeln, mit denen der Grafikprozessor etwas anfangen kann. Zudem muss der Programmierer den GPU-Kernel in CUDA oder OpenCL selbst schreiben. Rootbeer nimmt dem Entwickler diese Arbeit ab; es führt mittels Soot eine statische Analyse des Java-Bytecodes vor und generiert den CUDA-Code automatisch.

In der Praxis kann Rootbeer um Größenordnungen schneller sein als eine reine Java-Implementation, vorausgesetzt das Problem ist groß genug, so dass Serialisierung und Deserialisierung der Daten nicht ins Gewicht fallen, und die GPU schnell genug. Dies geht aus einer Präsentation (PDF) hervor. Der Compiler steht unter der MIT-Lizenz und sein Quellcode kann von Github bezogen werden.

Rootbeer wurde nach Angaben des Autors testgesteuert entwickelt und besteht aus 20.000 Zeilen Code sowie 7.000 Zeilen Tests. Er passiert alle Tests unter Linux und Windows fehlerfrei. Die meisten Sprachelemente von Java werden unterstützt, ausgenommen native Methoden, Reflexion, dynamischer Methodenaufruf und Schlafen eines Threads, wenn er sich in einem Monitor befindet. Auch Garbage Collection wird zur Zeit nicht unterstützt, ist aber offenbar geplant. Ein Artikel zu Rootbeer soll im Material zur Konferenz HPCC-2012 erscheinen.

Die Arbeit an Rootbeer wurde von der National Science Foundation (NSF) finanziert. Der Autor plant, Rootbeer zu warten, solange es Java gibt.

Werbung
Kommentare (Insgesamt: 1 || Alle anzeigen )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung