GCC: Samsung veröffentlicht OpenACC-Compiler

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(öffnet im neuen Fenster) 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(öffnet im neuen Fenster) , die in GCC und weiteren Compilern zur Verfügung steht.



