Altera FPGAs als OpenCL-Beschleuniger

OpenCL ist eine Software-Schnittstelle für Parallelrechner und wurde bisher meist verwendet, um Grafikprozessoren für allgemeine Rechenaufgaben zu verwenden. Ein OpenCL-SDK von Altera macht nun auch FPGAs zu Mitspielern im Parallel-Rechenuniversum.

Altera kündigt ein OpenCL-Software-Development-Kit für seine FPGAs an. OpenCL steht für »Open Computing Language und wird von z.B. von Intel und AMD verwendet, um die Recheneinheiten ihrer Grafikprozessoren für Vektorberechnungen zu verwenden. Altera sieht OpenCL als geeignetes Programmiermodell, um massiv-parallele Strukturen von FPGAs mithilfe von C-Code zu nutzen.

Mit dem OpenCL-SDK von Altera können FPGAs den Hauptprozessor eines Computersystems ergänzen und parallele Rechenalgorithmen beschleunigen. Der Vorteil dieser Vorgehensweise liegt nicht nur in der höheren Geschwindigkeit, sondern auch im niedrigeren Power-Budget, das eine FPGA-Implementierung bietet.

»Die Methoden, um die Performance eines Systems zu erhöhen, haben sich mit der Zeit verändert. Statt die Frequenz eines Single-Core-Systems immer mehr zu steigern setzt man heute Multi-Core-Architekturen und parallele Prozessor-Arrays ein,« sagt Vince Hu, Vice President of Product and Corporate Marketing bei Altera. »Diese Entwicklung für zu den modernen FPGAs – feingranulare, massiv-parallele Logikzellstrukturen, die entworfen wurden, um Befehle prallel ausführen zu können. Unser SDK für OpenCL gibt unseren Kunden das nötige Werkzeug in die Hand, damit sie FPGAs in ihre Anwendungen integrieren können und die Vorteile und den Leistungszuwachs dieser Bausteine nutzen können.«

Der Entwicklungsablauf

OpenCL ist ein offener, lizenzkostenfreier Standard für die plattformunabhängige Programmierung paralleler Software und Hardbeschleuniger, wie z.B. CPUs, Grafikprozessoren und FPGAs. Das Altera SDK für OpenCL bietet einen einheitlichen Entwicklungsablauf für Hardware- und Software-Entwicklung an, der zeitaufwändige Aufgaben automatisiert, die typischerweise in einer Hardware-Beschreibungssprache (HDL) ablaufen. Das OpenCL-Tool wandelt OpenCL-Kernelfunktionen (damit sind in der OpenCL-Terminologie die eigentlichen OpenCL-Programme gemeint) in FPGA-Hardwarebeschleuniger um, fügt Interfaces hinzu, generiert die Verbindungslogik und erzeugt die Programmierdatei für das FPGA. Das SDK enthält Bibliotheken, die OpenCL-Programmaufrufe innerhalb eines Host-Programms auf der Host-CPU mit dem OpenCL-Programm auf dem FPGA-Beschleuniger verbinden. So können sich die Entwickler auf das design der Algorithmen und die Programmierung der Anwendung konzentrieren, anstatt Hardware entwerfen zu müssen.

Die Plattformunabhängigkeit des OpenCL-Codes gibt den Entwicklern die Freiheit, ihre Designs auf verschiedene FPGAs oder SoC-FPGAs zu portieren – je nachdem, wie sich Anforderungen der Anwendung wachsen. Mit SoC-FPGAs sind Bausteine gemeint, in denen der Host-Prozessor integriert ist. Diese Bausteine haben eine erheblich höhere Bandbreite und weniger Latenz beim Datenaustausch zwischen CPU und FPGA als eine diskrete Lösung.

FPGAs unterstützen massiv-parallele Programmausführung

CPUs und Grafikprozessoren führen parallele Threads über mehrere Prozessorkerne aus. Mit FPGAs ist man in der Lage, OpenCL-Funktionen, die sog. OpenCL-Kernel, in Hardware-Pipelines zu transformieren, die praktisch beliebig vervielfältigt werden können. Das erlaubt eine massive Pipeline-Parallelität. FPGAs können dadurch laut Altera eine bis zu fünfmal bessere Performance pro Watt liefern als Universal- und Grafikpozessoren.

Altera arbeitet mit einigen Partnern zusammen, die Entwicklungs- und Standard-Boards für die Serie liefern. Beispielsweise unterstützen die Boards von BittWare und Nallatech das OpenCL-SDK von Altera. Mit zukünftigen Releases des SDKs sollen weitere Boards unterstützt werden.

Bis jetzt ist das SDK für OpenCL nur über ein »early access«-Programm von Altera zugänglich. Wer Interesse hat, das SDK auszuprobieren, muss sich an die örtliche Altera-Vertretung wenden. Weitere Informationen zum OpenCL-SDK gibt es auf der Altera-Website.