GCC: Samsung veröffentlicht OpenACC-Compiler
Samsung-Angestellte haben eine OpenACC-Implementierung für GCC vorgestellt. Damit lassen sich spezielle Aufgaben eines Programms direkt auf einen Beschleuniger wie die GPU auslagern.

Die Parallelisierung von Programmen auf CPU und GPU ist für Entwickler mit einige Hürden verbunden. Nvidia wollte dies zusammen mit einigen Softwareherstellern vereinfachen, woraus der OpenACC-Standard entstand. Einige Samsung-Entwickler haben nun einen OpenACC-fähigen Compiler auf Basis der GNU Compiler Collection (GCC) in einem eigenen Entwicklungszweig veröffentlicht.
Der Compiler basiert auf Version 1.0 der OpenACC-Spezifikation und kann Binärdateien aus Fortran-, C- und C++-Code erstellen, wobei der Fortran-spezifische Code bis jetzt die größte Anzahl an Pragma- und Clause-Anweisungen versteht. Die Samsung-Entwickler wollen die Fähigkeiten des OpenACC-Compilers aber in Zukunft regelmäßig ausbauen.
Laut Aussage der Entwickler erzeugt der Compiler bereits funktionierende Binärdateien, die einige ihrer Programmroutinen erfolgreich auf die GPU auslagern können. Das Bootstrapping des Compilers selbst funktioniere aber noch nicht. Ebenso stehen Warnungen und Fehlermeldungen während des Kompilierens auch nur für Fortran-Code zur Verfügung.
Als Backend nutzt der OpenACC-Compiler die eigens geschriebene Bibliothek Liboacc, welche für Kernel- und Parallel-Pragmas sowie für die Copy-Clauses Code nach OpenCL 1.1 erzeugt. Entsprechend muss zur Nutzung das OpenCL-SDK installiert sein. Darüber hinaus muss der Compiler derzeit noch mit einigen speziellen Flags aufgerufen werden, die den Pfad zu der OpenCL-Bibliothek aufweisen. Künftig sollen sich Binärdateien einfach mit --enable-openacc bauen lassen.
OpenACC ist vom Konzept vergleichbar mit der OpenMP-Spezifikation, die in GCC und weiteren Compilern zur Verfügung steht.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Ich denke mal der Hauptgrund ist dass OpenACC OpenMP ergänzen / erweitern soll. Und da...