IBM-Research-Projekt cloudFPGA
30.03.2022, 06:38 Uhr
Logikchips für die Hyperscaler-Cloud
Die Hyperscaler setzen in ihren Rechenzentren auf Standard-Hardware. Programmierbare und daher flexiblere Logikchips sind noch eher selten. Forscher von IBM Research Zurich haben ein Referenzdesign entwickelt und getestet.
Für das cloudFPGA mit 64 Steckkarten wurde ein Standard-Servereinschub komplett neu entwickelt
(Quelle: IBM Research Zurich)
Milliardensummen investierten die beiden Halbleiter-Giganten AMD und Intel in den vergangenen Jahren in programmierbare Logikchips (Field Programmable Gate Arrays, FPGA). Intel übernahm 2015 den FPGA-Hersteller Altera für 16,7 Milliarden US-Dollar, Anfang Jahr schluckte AMD den Weltmarktführer Xilinx im Rahmen des grössten Zukaufs der Firmenhistorie für rund 35 Milliarden US-Dollar. Zum Vergleich: Für den Grafikchip-Spezialisten ATI waren im Jahr 2006 «nur» 5,6 Milliarden Dollar geflossen.
Während Intel die FPGA-Produktion in die Programmable Systems Group (PSG) einsortierte und damit bis anhin mässig erfolgreich war, hat AMD mit Xilinx nun Grosses vor: Die programmierbaren Logikchips sollen das Portfolio für Server und Rechenzentren erweitern. Die FPGAs kommen heute erst selten in Rechenzentren zum Einsatz – trotz ihrer hohen Flexibilität und Leistungsfähigkeit. Hinderungsgründe sind die im Vergleich zu CPUs und GPUs aufwendige Programmierung, die hohen Hardware-Kosten und die fehlende Steuerungs-Software. So kommen FPGAs in heutigen Rechenzentrums-Szenarien ausschliesslich in Kombination mit CPUs oder GPUs zum Einsatz: Die Logikchips übernehmen dann spezielle Aufgaben, beispielsweise die Applikationsbeschleunigung, Analytikberechnungen oder die Virtualisierung. Wenn nur diese Tasks gefragt sind, braucht es die CPU/GPU streng genommen gar nicht. Ein Setting, in dem nur FPGAs zur Verfügung stehen, ist im kommerziellen Umfeld nicht vorhanden.
FPGA für Hyperscaler
Sechs Wissenschaftler von IBM Research Zurich haben sich der Aufgabe angenommen, ein Hyperscalerfähiges System ausschliesslich aus FPGA-Chips zu entwickeln. François Abel, Dionysios Diamantopoulos, Christoph Hagleitner, Mark Lantz, Burkhard Ringlein und Beat Weiss wollten das Potenzial von FPGAs für die ressourcensparende Verarbeitung spezifischer Arbeitslasten in der Cloud nutzen. Die Systeme sollten ausserdem auch für Nicht-FPGA-Experten leicht zugänglich sein. Dabei wurde ein Microservices-Ansatz verfolgt, der es den Anwendern ermöglicht, die Vorteile von FPGAs durch einen API-Aufruf zu nutzen, ohne dass sie etwas über FPGAs wissen müssen oder auch nur zu realisieren, dass ihre Arbeit von einem FPGA ausgeführt wird.
Ausgangspunkt für die Entwicklung der «cloudFPGA» war die Anfrage nach der Cloud-Implementierung mit 1000 FPGAs. Ein System mit Standard-Hardware hätte nicht nur sehr viel teuren Platz im Rechenzentrum eingenommen, sondern auch noch mehrere Millionen Franken gekostet. Die Forscher befanden, dass es eine bessere Lösung geben muss, und machten sich an die Arbeit.
Facebook-Racks als Vorbild
Für das Hardware-Design nahmen sie sich die Hyperscaler zum Vorbild. Facebook, Microsoft & Co. bringen die Chips, Platinen, Speicher, Kühlung etc. auf engstem Raum unter. Die cloudFPGA-Forschungsplattform besteht aus einem 2U-System (zwei Units oder Höheneinheiten) mit zwei Trägerplatinen, in die insgesamt 64 FPGA-Module gesteckt sind, bedeutet: ein FPGA-Modul alle 7,6 Millimeter. Bei einem so geringen Abstand ist kein Platz für Kühlkörper und Lüfter. Stattdessen wurden Kupfer-Wärmespreizer auf die Die des FPGAs montiert, um die Wärme seitlich vom Chip abzuführen. An den beiden Seiten des Wärmespreizers kommt die Abwärme mit zwei Flüssigkeits-Kühlkörpern, den Kühlschienen, in thermischen Kontakt. In den Kühlschienen zirkuliert Wasser, um die von den FPGA-Modulen, dem Ethernet-Switch und den übrigen Steuerungskomponenten erzeugte Wärme zu sammeln und abzuführen.
Bei den FPGA-Modulen handelt es sich nach Angaben der Forscher um ein Xilinx Kintex UltraScale XCKU060. Der Chip mittlerer Leistungsklasse zeichnet sich durch ein sehr gutes Preis-Leistungs-Verhältnis, niedrigen Stromverbrauch und hohe Signalverarbeitungsbandbreite aus. Jede Trägerplatine verbindet die 32 FPGAs über einen Ethernet-Switch (Intel FM6000), der auf die Grösse eines Smartphones geschrumpft wurde, um vertikal in ein 2U-Gehäuse zu passen. Darüber hinaus verfügt jedes der 2U-Systeme über 16 Gigabyte DDR4-Speicher, einen Flash-Speicher für die Konfiguration und einen programmierbaren System-on-Chip-Controller. Mit dem Design von 64 FPGAs in einem 2U-Einschub passen mehr als 1000 FPGAs in ein einziges Rack.
Volle Kontrolle für den Benutzer
Die Konfiguration und Kontrolle der cloudFPGA geschieht über eigens von den IBM-Forschern programmierte Software, darunter Entwickler-Kit, Ressourcenmanager, Unterstützungspakete etc. Die Software basiert auf einer Shell/Role-Architektur, wobei die Shell die Logik ist, die Systemfunktionen wie die Netzwerkanbindung implementiert. Role ist die Logik des Benutzers, bei der es sich um selbst programmierte Algorithmen handeln kann oder um eine Funktion aus einer Bibliothek. Wie IBM-Wissenschaftler Abel ausführt, gibt es derzeit Bibliotheken für Bildverarbeitung, Finanzalgorithmen, Videokodierung. Weiter könnten FPGAs beispielsweise auch zur Beschleunigung von Anwendungen mit künstlicher Intelligenz, Datei- oder Videokompression, Verschlüsselung etc. eingesetzt werden, doppelt er nach.
“Das cloudFPGA ist leistungsfähiger als neuere kommerzielle Server-Hardware„
François Abel, IBM Research Zurich
Da die FPGAs direkt mit dem Netzwerk verbunden sind, kann der Benutzer eine direkte Verbindung zu ihnen herstellen. Diese Netzwerkanbindung macht es einfach, die Anzahl der verwendeten FPGAs zu erhöhen oder zu verringern sowie die Anzahl der genutzten FPGAs durch den Betreiber des Rechenzentrums zu skalieren. Ausserdem kann die direkte Netzwerkanbindung die Kommunikationsverzögerung zwischen Benutzer und FPGAs reduzieren.
Vergleich mit kommerzieller Hardware
Im Unterschied dazu gibt es heute bei den Hyperscalern zwar FPGA-Ressourcen, die aber hauptsächlich als Co-Prozessoren genutzt werden. Der Benutzer hat zum Beispiel bei Microsoft Azure NP-series maximal vier FPGAs zur Verfügung, denen allerdings eine herkömmliche CPU vorgeschaltet ist. Anwendungsfälle sind laut Microsoft unter anderem Datenbank-Analytics, Machine Learning und Video Transcoding.
Den Vergleich mit den kommerziellen Alternativen muss die Entwicklung von IBM Reseach Zurich nicht scheuen.
Die sechs Entwickler zeigten in mehreren Benchmarks, wie leistungsfähig ihr System ist. Als Vergleichskonfiguration diente ihnen ein IBM Power System S822L mit zwei Power8-CPUs und vier Tesla-Stream-Prozessoren von Nvidia. Der kommerzielle Server erreicht beim Single-Precision-Benchmark 42 Teraflops (Trillion Floating Point Operations Per Second, Deutsch: Billionen Gleitkommaoperation pro Sekunde). Beim Half-Precision-Test schafft das System 85 Teraflops. Die FPGA-Maschinen aus den Rüschlikoner IBM-Labors kommen auf 53 Teraflops respektive 106 Teraflops.
Für Abel und seine Kollegen sind die Benchmark-Resultate eine schöne Bestätigung ihrer Arbeit, weil ihr cloudFPGA, der auf 20-Nanometer-Transistor-Technologie basiert, es auch schaffte, neuere GPU-Systeme mit 12-Nanometer-Technologie zu übertrumpfen.
Aktuell wird cloudFPGA als Hardware-Plattform für das EU-Projekt «Everest» verwendet. Eines der Ziele ist es, die Vorteile der FPGA-Beschleunigung zu demonstrieren, z. B. in Anwendungen wie einem auf Wetteranalysen basierenden Vorhersagemodell für die Produktion erneuerbarer Energien oder der Modellierung des Verkehrs in intelligenten Städten. Zudem können Interessenten das quelloffene «cloudFPGA Development Kit» via GitHub (www.github.com/cloudFPGA) beziehen und selbst testen.