Hochleistungsrechner: Aktuelle Trends und Entwicklungen ... · 2 Aufbau von FPGAs Eine FPGA setzt...

10
Hochleistungsrechner: Aktuelle Trends und Entwicklungen Wintersemester 2016/17 FPGA f¨ ur HPC Konrad Pr¨ oll Technische Universit¨ at M¨ unchen 02.02.2017 Zusammenfassung In dieser Seminararbeit wird zuerst der Aufbau ei- nes Field Programmable Gate Array - FPGA - vor- gestellt. Anschließend wird, nach einer ¨ Ubersicht ¨ uber die Programmierung von FPGAs, deren An- wendung im Hochleistungsrechnen aufgezeigt so- wie deren St¨ arken und Schw¨ achen hierbei beurteilt. Zum Schluss soll das Potenzial von FPGAs f¨ ur Zu- kunft beurteilt werden. 1 Einf¨ uhrung zu FPGAs Seit Xilinx 1985 mit dem XC2064 das erste Field Programmable Gate Array, kurz FPGA, auf den Markt brachte, hat sich diese Technik stetig weiter- entwickelt und zu Beginn dieses Jahrtausends sogar den Zugang zum Hochleistungsrechnen gefunden. Ein FPGA setzt sich von gew¨ ohnlichen integrier- ten Schaltkreisen dadurch ab, dass sich der Begriff programmable hierbei nicht auf normale Program- mierung bezieht, sondern darauf, dass der Aufbau der logischen Schaltung programmiert werden kann. Man spricht hierbei davon, dass das FPGA kon- figuriert wird. Dabei sind nicht nur die einzelnen Logikgatter konfigurierbar, sondern, da diese auch untereinander verbunden sind, auch gr¨ oßere Schal- tungen realisierbar ahrend der XC2064 noch ¨ uber lediglich 64 Logik- bl¨ ocke verf¨ ugte, wobei jeder davon zwei Look-Up- Tabellen f¨ ur drei Inputs hatte, und ¨ uber 38 Pins In- bzw. Output verarbeiten konnte, haben moder- nere Chips wie etwa der Xilinx XCVU440 ¨ uber 4,4 Millionen Logikbl¨ ocke und Look-Up-Tabellen mit 6 Inputs sowie 1456 Pins. Im Folgenden soll ein genereller Einblick in Aufbau und Programmierung von FPGAs gegeben werden, bevor deren Anwendung im HPC beleuchtet wird. Abschließend soll ein Ausblick auf zuk¨ unftiges Po- tenzial der Technologie gegeben werden. Abbildung 1: Der Xilinx XC2064. [1] 1

Transcript of Hochleistungsrechner: Aktuelle Trends und Entwicklungen ... · 2 Aufbau von FPGAs Eine FPGA setzt...

Page 1: Hochleistungsrechner: Aktuelle Trends und Entwicklungen ... · 2 Aufbau von FPGAs Eine FPGA setzt sich zuerst aus mehreren CLBs (kon gurierbare Logikbl ocke), welche untereinan-der

Hochleistungsrechner: Aktuelle Trends und Entwicklungen

Wintersemester 2016/17

FPGA fur HPC

Konrad ProllTechnische Universitat Munchen

02.02.2017

Zusammenfassung

In dieser Seminararbeit wird zuerst der Aufbau ei-nes Field Programmable Gate Array - FPGA - vor-gestellt. Anschließend wird, nach einer Ubersichtuber die Programmierung von FPGAs, deren An-wendung im Hochleistungsrechnen aufgezeigt so-wie deren Starken und Schwachen hierbei beurteilt.Zum Schluss soll das Potenzial von FPGAs fur Zu-kunft beurteilt werden.

1 Einfuhrung zu FPGAs

Seit Xilinx 1985 mit dem XC2064 das erste FieldProgrammable Gate Array, kurz FPGA, auf denMarkt brachte, hat sich diese Technik stetig weiter-entwickelt und zu Beginn dieses Jahrtausends sogarden Zugang zum Hochleistungsrechnen gefunden.Ein FPGA setzt sich von gewohnlichen integrier-ten Schaltkreisen dadurch ab, dass sich der Begriffprogrammable hierbei nicht auf normale Program-mierung bezieht, sondern darauf, dass der Aufbauder logischen Schaltung programmiert werden kann.Man spricht hierbei davon, dass das FPGA kon-figuriert wird. Dabei sind nicht nur die einzelnenLogikgatter konfigurierbar, sondern, da diese auchuntereinander verbunden sind, auch großere Schal-tungen realisierbarWahrend der XC2064 noch uber lediglich 64 Logik-blocke verfugte, wobei jeder davon zwei Look-Up-

Tabellen fur drei Inputs hatte, und uber 38 PinsIn- bzw. Output verarbeiten konnte, haben moder-nere Chips wie etwa der Xilinx XCVU440 uber 4,4Millionen Logikblocke und Look-Up-Tabellen mit 6Inputs sowie 1456 Pins.Im Folgenden soll ein genereller Einblick in Aufbauund Programmierung von FPGAs gegeben werden,bevor deren Anwendung im HPC beleuchtet wird.Abschließend soll ein Ausblick auf zukunftiges Po-tenzial der Technologie gegeben werden.

Abbildung 1: Der Xilinx XC2064. [1]

1

Page 2: Hochleistungsrechner: Aktuelle Trends und Entwicklungen ... · 2 Aufbau von FPGAs Eine FPGA setzt sich zuerst aus mehreren CLBs (kon gurierbare Logikbl ocke), welche untereinan-der

2 Aufbau von FPGAs

Eine FPGA setzt sich zuerst aus mehreren CLBs(konfigurierbare Logikblocke), welche untereinan-der verbunden sind, zusammen. CLBs sind hierbeieinzelne Gatter, die je nach Aufbau unterschied-lich machtig bzw. performant sind. Zuerst soll hier-bei in 2.1 der Aufbau eines Logikblocks vorgestelltwerden werden. In 2.2 soll danach der Aufbau ei-nes aus mehreren CLBs bestehenden FPGAs vor-gestellt werden.

2.1 Aufbau eines Logikblocks

Ein Logikblock besteht grundstzlich aus drei ver-schiedenen Komponenten: Look-Up-Tabellen, Flip-Flops und Multiplexern. Diese sollen nun vorgestelltwerden. Anschließend soll dargestellt werden, wiesich ein Logikblock aus diesen Komponenten zu-sammensetzen kann.

2.1.1 Look-Up-Tabellen

Ein wichtiges Konzept beim Design von Logik-blocken sind Look-Up-Tabellen. Diese konnen vomNutzer beschrieben werden, aber teilweise auchdurch die auf dem FPGA ausgefuhrte Softwareselbst. Deren Inhalt wird im RAM gespeichert.(vgl 5) Bei einer 3-input Tabelle wurde die Konfi-guration fur

Output = (A ∧ B) ∨ C

aussehen:Look-Up-Tabellen kommen in beinahe allen Logik-blocken vor. Meist wird dabei die Anzahl der maxi-mal moglichen Eingabeparameter spezifiziert. Ubereine n-Input LUT konnen logische Verknupfungenmit n Parametern dargestellt werden. [17]

2.1.2 Flip-Flop

Ein Flip-Flop ist eine Schaltung, die nichtflchtig einBit speichern kann. Sie hat im Regelfall ein Ein-gangssignal, um das Bit auf 1 zu setzen, ein Reset-Signal, mit dem das Bit auf 0 gesetzt wird, sowie

A B C Output0 0 0 00 0 1 10 1 0 00 1 1 11 0 0 01 0 1 11 1 0 11 1 1 1

Tabelle 1: Look-Up-Tabelle fur (A ∧ B) ∨ C

Abbildung 2: Schema eines Multiplexers. [2]

ein Ausgangssignal sowie dessen Invertierung. BeiFPGAs konnen Flip-Flops als Buffer genutzt wer-den. Ein Bit kann dort uber Taktzyklen hinweg ge-speichert und spater wieder verwendet werden. [12]

2.1.3 Multiplexer

Ein Multiplexer ist eine Schaltung, mit der ausmehreren Signalen ein Ausgangssignal gewahlt wer-den kann. In einem FPGA kann der Multiplexer da-zu verwendet werden, statt des Ausgangssignals desLUT den Wert des Flip-Flops ausgeben zu konnen.[17]

2

Page 3: Hochleistungsrechner: Aktuelle Trends und Entwicklungen ... · 2 Aufbau von FPGAs Eine FPGA setzt sich zuerst aus mehreren CLBs (kon gurierbare Logikbl ocke), welche untereinan-der

2.1.4 Beispiel fur einen CLB

Abbildung 3: Aufbau eines CLB, der aus den Ele-menten LUT, Flip-Flop und Multiplexer besteht.[3]

Der genaue Aufbau eines CLBs ist je nach Mo-dell unterschiedlich. Dies fuhrt unter anderem da-zu, dass die Anzahl der Logikblocke als Leistungs-indikator eines FPGAs nicht sinnvoll ist. So gibtes beispielsweise CLBs wie etwa das ACT 1 Logik-modul, deren Leistung etwa aquivalent zu drei bisvier NAND-Gattern ist wahrend andere deutlichleistungsstarker sind. [7] Auch die Einheit Gatesbzw Gate-Equivalents, die haufig in Datenblatternverwendet wird [9], hilft hierbei nicht, da es keinestandardisierte Umrechnung von CLBs in NAND-Gatter gibt. In Abbildung 4 ist der Aufbau desLogikblocks XC4000 zu sehen, der so in den Seri-en XC4000E bzw. XC4000Z von Xilinx zum Ein-satz kommt, und aus dem Jahre 1999 stammt.Im Spitzenmodell, dem Xilinx XC4085XL, kommen3136 solcher Logikblocks zum Einsatz. [19] Aus dervorherigen Erklarung erkennbar sind die ElementeLUT (Look-Up-Tabelle), M (Multiplexer) sowie amrechten Rand die Flip-Flops.

Abbildung 4: Aufbau des XC4000 Logik-Blocks. [4]

2.2 Zusammensetzung der FPGAs

Wie bereits in 1 genannt wurde, bestehen FPGAsaus hunderten bzw. tausenden dieser logischenBlocke. In Modernen Chips werden mehrere die-ser einfachen CLBs als Slices zusammengelegt. Da-bei konnen wie z. B. bei der Virtex-6-Serie einigedieser Slices fest fur logische Schaltungen vorgese-hen sein, wahrend andere auch als RAM verwendetwerden konnen. Diese sind wie in Abbildung 5 dar-gestellt miteinander verbunden und verfugen ubereinen Block-RAM, in dem die Konfiguration gespei-chert wird, sowie uber I/O, sodass die Daten vomRestsystem bzw. an das Restsystem ubergeben wer-den konnen.

3

Page 4: Hochleistungsrechner: Aktuelle Trends und Entwicklungen ... · 2 Aufbau von FPGAs Eine FPGA setzt sich zuerst aus mehreren CLBs (kon gurierbare Logikbl ocke), welche untereinan-der

Abbildung 5: Grundlegender Aufbau eines FPGAsbestehend aus mehreren konfigurierbaren Logik-blocken. [15]

3 Programmierung vonFPGAs

Traditionell werden FPGAs mit Hardwarebeschrei-bungssprachen wie z. B. VHDL programmiert, inden letzten Jahren hat sich allerdings uber OpenCLeine Moglichkeit aufgetan, FPGAs uber imperati-ve Programmierung zu konfigurieren. [11] Intel bei-spielsweise bietet hierzu sogar ein SDK an. [5] Furdie Programmierung mit Hardwarebeschreibungs-sprachen gibt es z. B. von Xilinx sehr ausfuhrlicheDokumente. [6] Im Folgenden soll anhand eines ein-fachen Beispiels das Programmieren von FPGAs inVHDL dargestellt werden, bevor ein neuerer Zweigder Forschung angeschnitten wird.

3.1 Programmierung via Hardware-beschreibungssprachen

Der Schaltungsentwurf eines FPGAs uber eineHardwarebeschreibungssprache besteht aus mehre-ren Schritten - dem Schaltungsentwurf, einer Simu-lation, der Synthese, dem Place & Route und der

tatsachlichen Konfiguration. Auf diese soll im Fol-genden eingegangen werden.

3.1.1 Schaltungsentwurf

Zunachst muss der Aufbau der Schaltung spezifi-ziert werden. Hierbei soll als Beispiel die Schaltung,die im Kapitel 2 vorgestellt wurde, implementiertwerden. Zuerst muss hierbei eine Entity dafur ge-schrieben werden, die Ein- und Ausgabe der Schal-tung beinhaltet. Diese Schaltung hat drei Inputs(in der Tabelle 1 als A, B und C bezeichnet) so-wie einen Output. Anschließend muss das Verhaltender Schaltung spezifiziert werden. Dies funktioniertuber eine architecture. Dadurch, dass es sich um ei-ne einfache logische Operation handelt, lasst sichdiese Implementierung als Einzeiler losen. [16]

Listing 1: Implementierung der in Tabelle 1 defi-nierten Schaltungentity ExampleEnt is

Port (in1 : in STD_LOGIC;

in2 : in STD_LOGIC;

in3 : in STD_LOGIC;

out1 : out STD_LOGIC );

end ExampleEnt;

architecture ExampleArch of ExampleEnt is

begin

out1 <=(in1 AND in2) or in3;

end ExampleArch;

3.1.2 Simulation

Im Gegensatz zum gewohnlichen Programmierenlasst sich fur FPGAs entwickelter Code nicht soeinfach testen, da die Architektur der Zielmaschi-ne von der eines normalen Mikroprozessors volligabweicht. Ein Testlauf vor dem Uberspielen auf dasFPGA ist aber trotzdem vorteilhaft, da eine Feh-lersuche dann sehr zeitaufwendig sein kann. Umdem Programmierer eine Moglichkeit zu geben, sei-ne Schaltung auf seiner eigenen Maschine zu te-sten, bringen praktisch alle Entwicklungsumgebun-gen eigene Software zur Simulation des Schaltungs-entwurfs auf sogenannten Testbenches mit. Durchdiese kann deutlich zeitsparender die Funktionalitat

4

Page 5: Hochleistungsrechner: Aktuelle Trends und Entwicklungen ... · 2 Aufbau von FPGAs Eine FPGA setzt sich zuerst aus mehreren CLBs (kon gurierbare Logikbl ocke), welche untereinan-der

gepruft werden, da sie verschiedene Werkzeuge mit-bringen, uber die alle Signale einfach einsehbar sind.Bei Testlaufen an der Hardware dagegen tritt oft-mals das Problem auf, dass einzelne Signale garnicht einsehbar sind. Außerdem konnen fehlerhaf-te Konfigurationen die Hardware unter Umstandensogar beschadigen. Moderne Entwicklungssystemeerlauben nicht nur die Simulation einzelner Bau-steine, sondern auch die Simulation ganzer Syste-me - inklusive der dazugehorenden Interaktion dereinzelnen Bausteine. [16]

3.1.3 Synthese

Nachdem die Schaltung entworfen und ausgiebig ge-testet wurde, muss diese in eine Netzliste ubersetztwerden werden. Die Netzliste enthalt die verwende-ten Ressourcen sowie deren Verschaltung, Platzie-rung und Startzustande spezifiziert. Hierbei konnenauch Zeitkriterien definiert werden, die beschreiben,wie schnell die schlussendliche Schaltung sein soll.[16]

3.1.4 Place & Route

Zum Schluss erfolgt der Schritt Place & Route -Platzierung und Verdrahtung. Hierbei werden dieKomponenten der Netzliste auf reale Hardware ab-gebildet. Die Ausgabe der Platzierung und Verdrah-tung ist ein Bitstrom, der so in das FPGA geladenwerden kann. Dieser Vorgang kann nur per Herstel-lersoftware durchgefuhrt werden, da die Herstelleri. d. R. den Aufbau des Bitstroms geheim halten.Je nach Schaltungsentwurfes und der gewunschtenOptimierung kann dieser Vorgang mehrere Stundendauern. Dies ist der erste Schritt, dessen Ergebnisvon der Zielarchitektur abhangt. Dieser Schritt istnotwendig, da - wie im Kapitel 2 geschildert - keineeinheitliche FPGA-Architektur existiert. [16]

3.1.5 Nutzung auf dem FPGA

Im Anschluss wird der generierte Bitstrom auf denFPGA geladen, man sollte allerdings den Bitstromauch nach dem Laden auf den FPGA nicht loschen,da der Speicher eines FPGA im Regelfall fluchtig

ist, das heißt, die Konfiguration ist nach Neustartverloren. An diesem Punkt empfiehlt es sich, dieSoftware trotz der vorherigen Simulation erneutzu testen, da in dieser Phase aus verschiedenenGrunden Fehler auftreten konnen, die so in der Si-mulation nicht sichtbar waren: Dies kann daran lie-gen, dass keine Simulation alle moglichen Ablaufetesten kann, aber auch daran, dass die Spezifikati-on der simulierten Umgebung von der des genutztenFPGA abweicht. [16]

3.2 Weitere Methoden

Da viele Programmierer in Hardwarebeschreibungs-sprachen nicht so versiert wie in bspw. C++-Programmierung sind, gibt es weitere Methoden umFPGAs zu konfigurieren, zum Beispiel uber CHDL[16] oder OpenCL [11]. Dadurch soll erreicht wer-den, dass Programmierer neben ihnen bekanntenProgrammiersprachen auch ihnen bekannte Ent-wicklungsumgebungen nutzen konnen, weil vor derPlatzierung und Verdrahtung samtliche Aufgabenauch in diesen umgesetzt werden konnen, wobeieine Netzliste generiert wird, die die Software furPlace & Route dann verwerten kann.

5

Page 6: Hochleistungsrechner: Aktuelle Trends und Entwicklungen ... · 2 Aufbau von FPGAs Eine FPGA setzt sich zuerst aus mehreren CLBs (kon gurierbare Logikbl ocke), welche untereinan-der

4 Anwendung von FPGAs imHochleistungsrechnen

Durch die, wie in den vorherigen Kapiteln darge-stellte, einfache Konfigurierung haben FPGAs imHochleistungsrechnen immer mehr an Relevanz ge-wonnen. Wahrend zu Beginn der Technologie dieKosten fur FPGAs zu hoch waren, haben sich uberdie letzten Jahre die Kosten pro Logikzelle deutlichgesenkt - zwischen 1999 und 2009 um Faktor 10 -wahrend sich die Rechenleistung derselben um Fak-tor 9 erhoht hat (vgl Abbildung 6). Weiterhin ist diemassive Parallelisierung, die uber FPGAs dank derUmkonfigurierung moglich ist, gerade im Hochlei-stungsrechnen enorm hilfreich.

Abbildung 6: Die Preisentwicklung der FPGA. [10]

4.1 Beispiele im Supercomputing

Allerdings hat sich wegen der komplexen Anbin-dung eines FPGAs an Peripherie ein Konzept eta-bliert, das sich wohl am besten als Hybrid beschrei-ben lasst:Die FHPCA (FPGA High-Performance ComputingAlliance) hat bereits 2007 ein System entworfen, beidem 32 Intel CPUs jeweils zwei Xilinx FPGAs derVirtex-4 Serie steuerten. [14]Sie testeten in drei Benchmarks die Performan-ce dieser Konfiguration aus: Eine Simulation desBlack-Scholes-Modells aus der Wirtschaft, uber dasBorsenkurse geschatzt werden, einer Bildverarbei-tung, bei der aus mehreren Bildern eine dreidimen-sionale Ansicht erstellt werden soll, sowie einer phy-sikalischen Simulation. Als Ergebnis stellten sie eine

Beschleunigung um Faktor 320 beim Black-Scholes-Modell fest, wahrend die deutlich datenintensiver-en Aufgaben nur um Faktor 2,5 (Bildverarbeitung)bzw. 5,5 (physikalische Simulation) schneller wur-den. Dabei stießen sie auf drei Hurden, namlich diehohen Entwicklungskosten, die nicht verandertenLimits bei der Speicherbandbreite sowie den Bedarfan parallelisierbarem Code (vgl. Amdahls Gesetz)Bisher gibt es - den Supercomputer Maxwell aus-genommen - keine großen Supercomputer im wis-senschaftlichen Bereich, die auf FPGAs aufbauen.Allerdings nutzt auch Microsofts Cloud seit die-sem Jahr einen Hybriden aus normalem Server undFPGAs, um Daten weit schneller verarbeiten zukonnen.

4.2 Verwendung und Beurteilungvon FPGAs im gewohnlichenHPC

Die Verwendung von FPGAs bietet im Hochlei-stungsrechnen zahlreiche Chancen, die, nachdemdie Leistungsgrenzen herkommlicher Prozessorenmehr und mehr erreicht scheinen, von den Chi-pherstellern aggressiver genutzt werden. So erwarbIntel im Dezember 2015 Altera fur geschatzte 16,7Mrd $, einen weiteren FPGA-Hersteller. [13]Dadurch, dass FPGAs frei konfigurierbar sind,konnen die einzelnen Logikschaltungen zur mas-siven Parallelisierung genutzt werden. Dies fuhrtzum einem zu einer erhohten Rechenleistung, wieschon beim Supercomputer Maxwell festgestellt,aber auch wegen der geringeren Taktfrequenzenzu einem deutlich verringerten Stromverbrauch,moderne FPGAs arbeiten schließlich mit Takt-frequenzen im Bereich von 100-300 MHz. Alteravergleicht in einem Whitepaper die Leistung vonherkommlicher CPU mit der eines FPGA undnennt dabei z. T. die benotigten Taktfrequenzen.[8] Dabei fallt auf, dass praktisch alle Algorithmentrotz der geringeren Taktfrequenz signfikant, zumTeil sogar 100 mal schneller sind. Xilinx stellteinen ahnlichen Vergleich an 1 und kommt auch zuahnlich deutlichen Ergebnissen.

1[10], Seite 7

6

Page 7: Hochleistungsrechner: Aktuelle Trends und Entwicklungen ... · 2 Aufbau von FPGAs Eine FPGA setzt sich zuerst aus mehreren CLBs (kon gurierbare Logikbl ocke), welche untereinan-der

4.2.1 Koprozessoren

Auch bietet das Einsatzgebiet der FPGA-Koprozessoren massive Chancen. Schon heutewerden diese in Bereichen wie Bildverarbeitung,Verschlusselung oder Datenkompression eingesetzt- Gebiete, an denen normale Mikroprozessorennicht nur aufgrund ihrer Leistung, sondern vorallem wegen ihrer Anbindung an den Hauptspei-cher an ihre Grenzen stoßen. Die Idee dabei ist,dass der gewohnliche Mikroprozessor diejenigenAufgaben, die durch einen FPGA kaum schnellerlaufen, ausfuhrt, und den Rest vom speziell dafurkonfigurierten FPGA losen zu lassen.Ein solches System besteht aus:

• FPGA(s)

• den lokalen Speicher des FPGA

• ein konfigurierbares Taktsystem

• eine Schnittstelle zur Konfiguration des/derFPGA, um diese auf den jeweiligen Algorith-mus anzupassen

• I/O

• Ein Interface fur Schreib- und Lesezugriffe aufden Speicher des Mikroprozessors

Durch Koprozessoren konnen einige Einschankun-gen, die durch die von-Neumann-Architektur be-stehen, umgangen werden. Die Verwendung vonFPGAs hat sich hierbei gegen anderen Konzep-te, wie etwa einen zusatzlichen Chip auf dem Pro-zessor, durchgesetzt. Durch die Rekonfigurierbar-keit ist sichergestellt, dass, wenn genug Logikein-heiten frei sind, diese immer die aktuellen Befehleausfuhren konnen - etwas, das bei ASICs (Appli-cation Specific Integradted Circuit) keineswegs derFall sein muss. [16] [10]

4.2.2 Einsatz als Schnittstelle

Ein weiteres verbreitetes Anwendungsgebiet vonFPGAs ist als Schnittstelle zwischen unterschied-lichen Systemen - bspw. als Schnittstelle zwischen

Abbildung 7: Aufbau eines FPGA-Koprozessor. [10]

Sensoren und CPUs. Dadurch, dass samtliche, sonstin Software gelosten Konfigurationen, hardwaresei-tig implementiert werden konnen, werden so deut-lich hohere Durchsatze erreicht. [10]

Abbildung 8: Nutzung eines FPGA als Interfacezwischen Mikroprozessor und Sensor. [10]

4.2.3 Einsatz als Hardwarebeschleunigerbei konstanten Funktionen

Aufgrund ihres hohen Durchsatzes, der Fahigkeitviele Daten auf einmal zu verarbeiten und der ge-ringen Latenz werden FPGAs haufig genutzt, um

7

Page 8: Hochleistungsrechner: Aktuelle Trends und Entwicklungen ... · 2 Aufbau von FPGAs Eine FPGA setzt sich zuerst aus mehreren CLBs (kon gurierbare Logikbl ocke), welche untereinan-der

große Datenmengen mit der gleichen Funktion zubearbeiten. Ein Beispielaufbau findet sich in 9.

Abbildung 9: Nutzung eines FPGA als Hardware-beschleuniger bei konstanten Funktionen. [10]

4.2.4 Beurteilung

Neben den in den vorherigen Beispielen angespro-chenen Vorteilen konnen Konzepte wie Pipeliningnoch besser umgesetzt werden, da ausgeschlossenist, dass auf bestimmte funktionelle Einheiten ge-wartet werden muss. Eine Starke, die insbesonderean diesem Punkt sichtbar wird, ist die Tatsache,dass FPGAs zwar flexibel konfigurierbar sind, aberam Ende trotzdem eine hardwarebasierte Losungund damit sehr performant sind.Im Falle von sequentiellen Algorithmen zeigt sichallerdings die geringe Taktfrequenzen der FPGAs,da diese dort deutlich weniger performant alsgewohnliche Prozessoren sind - ein Problem, dasdurch die Koprozessortechnik gelost wird. Geradedie geringen Taktfrequenzen werden bei sequentiel-len Programmen auf Dauer eine große Schwierigkeitdarstellen, wenn auf zusatzliche Mikroprozessorenverzichtet werden soll, da fest verdrahtete Schalt-kreise aus physikalischen Grunden mit deutlichhoheren Frequenzen arbeiten konnen. Weiterhin istder Stromverbrauch eines FPGAs zwar im Mittelbesser als der eines Mikroprozessoren, aber in ein-zelnen Operationen reicht er nicht an den eines dar-auf optimierten ASIC heran. Daruber hinaus sindFPGAs bei Gleitkommaoperationen noch nicht un-bedingt sinnvoller als Graphikkarten, deren explizitdarauf spezialisierte ASICs hier naturlich deutlichhohere Geschwindigkeiten erreichen konnen.

Ein weiterer Nachteil SRAM-basierter FPGAs istes, dass deren Konfiguration bei Neustart erneutgeladen werden muss, wozu ein zusatzlicher nicht-fluchtiger Speicher notig ist.

8

Page 9: Hochleistungsrechner: Aktuelle Trends und Entwicklungen ... · 2 Aufbau von FPGAs Eine FPGA setzt sich zuerst aus mehreren CLBs (kon gurierbare Logikbl ocke), welche untereinan-der

5 Ausblick und Fazit

5.1 Ausblick auf zukunftige Entwick-lungen

In den vergangenen Kapiteln wurde gezeigt, wieFPGAs schon heute einen maßgeblichen Beitragim HPC leisten konnen, doch es ist vor allem dieZukunftsperspektive, die sie zu einem derart inter-essanten Thema macht. Schon heute besteht einMarkt fur performantere Hardware. Wie aus Ab-bildung10 hervorgeht, geht man heutzutage davonaus, dass der moderne Rechenbedarf diejenige Lei-stungsfahigkeit, die Prozessoren nach dem Moo-re’schen Gesetz haben konnen, ubersteigt - insbe-sondere bei der Verarbeitung von großen Daten-mengen. Unternehmen wie Intel scheinen - der Zu-

Abbildung 10: Diskrepanz zwischen Leistungsfahig-keit herkommlicher Prozessoren und den gestiege-nen Anforderungen. [8]

kauf von Altera erweckt zumindest diesen Eindruck- das Potenzial davon erkannt zu haben, FPGAs ineine promintere Stellung zu rucken, da die Tech-nologie auch genutzt werden muss, um helfen zukonnen. Eine große Starke der FPGAs - das her-vorragende Skalieren der Speicherbandbreite (vgl.Abbildung 11) - ist gerade ein gravierendes Pro-blem der heutigen Mikroprozessoren.Ein weiteres Problem - namlich die hohen Kosten- wird durch FPGAs ebenfalls reduziert, da dieseim Gegensatz zu ASICs fur eine Vielzahl an Pro-blemen genutzt werden konnen. Weiterhin liegt der

Stromverbrauch eines FPGAs z. T. unter der einerdeutlich langsameren GPU bzw. GPP 2

Abbildung 11: Entwicklung der Speicherbandbreitevon FPGAs. [8]

5.2 Fazit

Auf den letzten Seiten wurde eine Technologie vor-gestellt, die verspricht, eines der Kernprobleme derheutigen Informatik losen zu konnen: Das Verar-beiten großer Datenmengen. Es wurde an einigenBeispielen gezeigt, wo dies schon heute funktioniert- z. T. mit erheblichem Mehrwert - und es wurdeauch vorgestellt, dass große Unternehmen wie Intelund Microsoft mehr und mehr die Moglichkeiten derVerwendung von FPGAs im Hochleistungsrechnenals Anreiz sehen, in diesen Bereich zu investieren.Außerdem wurden klare Schwachpunkte der Tech-nik dargelegt - inbesondere die Abarbeitung sequen-tieller Algorithmen - aber auch die Relevanz dieserTechnologie fur die Zukunft. Vermutlich stellen diein 4.2 dargestellten Bereiche die zentralen Anwen-dungsgebiete uber die nachsten Jahre dar, da daseben genau die Stellen sind, an denen herkommlicheProzessoren nicht mehr mithalten konnen. Durchden Zukauf Alteras durch Intel kann man vermu-ten, dass es in Zukunft fur Entwickler einen deutlicheinfachereren Zugang zur Entwicklung auf FPGAsgibt als die fur die meisten Entwickler doch rechtungewohnten Hardwarebeschreibungssprachen, wo-durch sich die Verbreitung dieses Wissens deutlichverbreiten sollte.

2vgl. [18], Seite 76

9

Page 10: Hochleistungsrechner: Aktuelle Trends und Entwicklungen ... · 2 Aufbau von FPGAs Eine FPGA setzt sich zuerst aus mehreren CLBs (kon gurierbare Logikbl ocke), welche untereinan-der

Literatur

[1] https://www.express-elect.com/part_

image/XC2064-PC68-70C2470.jpg.

[2] http://www.electronics-tutorials.ws/

combination/comb26.gif?x98918.

[3] https://upload.wikimedia.org/

wikibooks/en/c/ca/CLB_Block_Diagram.

png.

[4] http://www10.edacafe.com/book/ASIC/

CH05/CH05-7.gif.

[5] https://www.altera.com/

products/design-software/

embedded-software-developers/opencl/

overview.html.

[6] Constraints guide. https://www.xilinx.

com/itp/xilinx10/books/docs/cgd/cgd.

pdf.

[7] ACT 1 Series FPGAs, 1996. http:

//www.microsemi.com/document-portal/

doc_view/130666-act-1-series-fpgas.

[8] Accelerating High-Performance Compu-ting With FPGAs. White Paper, 2007.https://www.altera.com/en_US/pdfs/

literature/wp/wp-01029.pdf/ Version 1.1.

[9] Spartan-II FPGA Family Data Sheet, Ju-ni 2008. https://www.xilinx.com/support/documentation/data_sheets/ds001.pdf.

[10] High Performance Computing Using FPGAs.White Paper, 2010. http://www.xilinx.com/support/documentation/white_papers/

wp375_HPC_Using_FPGAs.pdf.

[11] Implementing FPGA Design with theOpenCL Standard. White Paper, 2013.https://www.altera.com/content/

dam/altera-www/global/en_US/pdfs/

literature/wp/wp-01173-opencl.pdf/

Version 3.0.

[12] Wie funktionieren FPGAs? White Paper,2013. http://www.ni.com/white-paper/

6983/de/.

[13] Intel Completes Acquisition of Al-tera, 2015. https://newsroom.

intel.com/news-releases/

intel-completes-acquisition-of-altera/.

[14] Dr. Rob Baxter. Maxwell: a 64-FPGASupercomputer, 2007. http://rssi.ncsa.

illinois.edu/docs/academic/Baxter_

presentation.pdf.

[15] Robert Dietrich. SGI RASC: Evaluierung ei-ner Programmierplattform zum Einsatz vonFPGAs als Hardware-Beschleuniger im Hoch-leistungsrechnen. Diplomarbeit, TechnischeUniversitat Dresden, 2009. http://queens.

inf.tu-dresden.de/dietrich_diplom.pdf.

[16] Klaus Kornmesser. Das FPGA-Entwicklungssystem CHDL. PhD dis-sertation, Universitat Mannheim, 2004.https://ub-madoc.bib.uni-mannheim.de/

857/1/kornmesser.pdf.

[17] Markus Wannemacher. Das FPGA-Kochbuch.1998.

[18] Wim Vanderbauwhede and Khaled Benkrid.High-Performance Computing Using FPGAs.2013.

[19] Xilinx. XC4000E and XC4000X Se-ries Field Programmable Gate Arrays,1999. https://www.xilinx.com/support/

documentation/data_sheets/4000.pdf,Version 1.6.

10