Intels Supercomputing-Chips: die Rückkehr von Larrabee

Auf der ISC2011 sorgt Intel für eine Überraschung: Larrabee, als Grafikkarte gescheitert, soll nun als Coprozessor-Board mit über 50 Cores erscheinen. So will der Chipriese Nvidias Tesla-GPUs ausbooten und bis 2018 Exaflop-Performance erreichen.

Ein Blick in die Top-500-Liste der schnellsten Supercomputer der Welt zeigt, dass drei der fünf schnellsten Computer GPU-Computing nutzen, darunter auch die Nummer zwei, der Tianhe-1A des National Supercomputing Center in Tianjin, China. Intel dürfte daran stören, dass die GPU-Chips allesamt von Nvidia in Form von Tesla-Boards stammen. Intels eigene CPUs werden auf solchen Rechnern hauptsächlich zum Verschieben von Daten eingesetzt. Die eigentliche Rechenarbeit übernehmen die GPUs.

Doch wenn es nach dem Chipriesen geht, soll sich das bald ändern. Auf der gestern begonnenen International Supercomputing Conference (ISC) in Hamburg, stellte Intel seine "Many-Integrated-Core"-Architektur (MIC) vor. Über 50 vollständige x86-Cores sollen auf einer PCI-Express-Erweiterungskarte ihren Dienst verrichten, ähnlich wie bei einer Tesla-Erweiterungskarte.

Allzu bald werden die neuen MIC-Boards allerdings nicht erscheinen. Sie sollen im 22-Nanometerverfahren produziert werden. Intel braucht nämlich noch bis 2012, um seine Fabs auf die neue Produktionsmethode mit 3D-Transistoren umzustellen. Prototypen sind allerdings bereits im Einsatz, unter anderem beim Forschungszentrum Jülich, im Leibniz-Rechenzentrum in Garching und beim CERN.

Bei der MIC-Architektur handelt es sich um einen alten Bekannten. Es ist die Wiederauferstehung der schon totgesagten Larrabee-Architektur.  Ursprünglich hatte Intel geplant, dass Larrabee-Boards sowohl als Grafikkarte als auch als GPU-Coprozessor eingesetzt werden können, musste aber später erkennen, dass die Architektur keine Grafikkarten hergibt, die mit AMD (früher ATI) und Nvidia konkurrieren können.

Allerdings gilt das nicht für den Einsatz als High-Performance-Board: Zwischen den einzelnen Cores schafft es Larrabee nämlich, die Cache-Kohärenz zu wahren, was die Boards von ATI und Nvidia nicht tun und für den Einsatz als Grafikkarte auch nicht notwendig ist.

Für Wissenschaftler, die komplexe Algorithmen parallelisieren und implementieren wollen, bedeutet die Cache-Kohärenz eine unheimliche Erleichterung bei der Programmierung: Sie müssen sich nicht damit beschäftigen, die Cache-Größe zu ermitteln, die von Board zu Board variieren kann, und ihren Code so anzupassen, dass die einzelnen Caches genau in der richtigen Größe mit Daten befüllt werden. Sie können sich besser auf ihre eigentlichen Aufgaben konzentrieren.

Auch dass die MIC-Boards x86-Code ausführen können, ist ein unbestreitbarer Vorteil. Theoretisch kann derselbe Code auf einem CPU- und einem GPU-Core laufen. Allerdings liegt dabei die Betonung auf theoretisch.

Die Vektoreinheiten einer x86-CPU und eines Larrabee-Kerns unterscheiden sich nämlich erheblich. Der notwendige Programmcode ist nicht kompatibel. Die aktuellen Sandy-Bridge-CPUs von Intel können bis zu 256 Bit gleichzeitig verarbeiten (AVX), also beispielsweise Berechnungen mit vier Double-Precision-Werten. Alle CPU-Architekturen vor Sandy-Bridge, etwa Nehalem und Westmere, schaffen nur 128 Bit (SSE2 und Erweiterungen).

Das alleine ist noch kein Problem, denn mit AVX hat Intel gleichzeitig das sogenannte VEX-Encoding eingeführt. VEX ist ein Befehlsschema, das es erlaubt, Vektorisierung unabhängig von der Breite der SIMD-Register zu kodieren. Das heißt, wie die SIMD-Befehle für künftige x86-CPUs mit 512- und 1024-Bit-Registern aussehen, steht heute bereits fest, auch wenn in den nächsten Jahren mit solchen CPU realistisch gesehen nicht zu rechnen ist.

Auf den ersten Blick erscheint es logisch, die Larrabee Kerne mit dem VEX-Encoding-Schema zu versehen. Aber genau das hat Intel nicht gemacht. Zum einen ist die Larrabee-Architektur von Intel bereits 2008 vorgestellt worden. Das heißt, die Entwicklung erfolgte parallel und unabhängig von AVX. Zum anderen beherrscht Larrabee Features, die mit VEX nicht abgebildet werden können.

So lassen sich beispielsweise unterschiedliche Operationen mit einem 512-Bit-Register durchführen: Während etwa mit vier Double-Precision-Werten multipliziert wird, wird mit den verbleibenden vier Werten gleichzeitig eine Division vorgenommen. Solche Features beherrschen Sandy-Bridge-CPUs nicht.

Aus der Sicht von Intel stellt das kein Problem dar. Der Chipriese empfiehlt zur Entwicklung einfach Intel Parallel Studio zu benutzen. Dort brauche man vor existierendem OpenMP-Code nur die Zeile #pragma offload target (mic) einzufügen und schon checkt der generierte Code automatisch, ob ein MIC-Board vorhanden ist. Ist das der Fall, wird der Code von den Larrabee-Cores ausgeführt. Ist kein Board vorhanden, wird die Aufgabe von der CPU erledigt, etwa nach folgendem Beispiel:

main()
{
  double pi = 0.0f; long i;
  #pragma offload target (mic)
  #pragma omp parallel for reduction(+:pi)

  for (i=0; i<N; i++) {
    double t = (double)((i+0.5)/N);
    pi += 4.0/(1.0+t*t);
  }

  printf("pi = %fn",pi/N);
}

Was in diesem einfachen Beispiel einwandfrei funktioniert, versagt allerdings bei komplexeren Berechnungen in der Praxis. Programmiersprachen wie C und Fortran beherrschen von sich aus keine Vektorisierung in der Sprachsyntax. Die automatische Generierung von vektorisiertem Code liefert oft kein optimales Ergebnis.

Das heißt, Entwickler müssen selbst Hand anlegen. In der Regel geschieht das durch sogenannte Compiler-Intrinsics. Das sind Befehle, die die Vektorlogik der jeweiligen CPU direkt abbilden und nur so weit abstrahiert sind, dass sie nicht mit Registern, sondern mit Variablen und anderen Argumenten der Hochsprache arbeiten.

Fazit

Mit der Wiederauferstehung von Larrabee unter dem Namen MIC-Architektur kann Intel im High-Performance-Computing verlorenen Boden wieder gut machen. Während es sich bei Nvidias Tesla-Karten im Wesentlichen um Grafikkarten ohne Monitor-Anschluss handelt, kommt Intel mit einer Architektur, die für allgemeine Rechenjobs geeigneter ist.

Intels Lösung bietet etwa Cache-Kohärenz und einen vollständigen x86-Befehlssatz, der etwa Virtual Memory beherrscht, wodurch die MIC-Architektur für mehr Aufgaben eingesetzt werden kann und einfacher zu programmieren ist. Intels ursprüngliche Planung, Larrabee auch als Grafikkarte einzusetzen, musste hingegen aufgegeben werden. Zunächst war aber offensichtlich der Reiz zu groß, Larrabee auch im Massenmarkt Grafikkarten zu positionieren.

Die Implementierung von für Grafikkarten nutzlosen Features wie Cache-Kohärenz erweist sich natürlich als Performance-Killer. Bei der Grafik-Performance kann Larrabee mit den aktuellen GPUs von AMD und Nvidia kann die MIC-Architektur nicht mithalten. Im Bereich High-Performance-Computing hingegen ist Larrabee den Tesla-Karten von der Architektur her überlegen.

Neueste Kommentare 

Noch keine Kommentare zu Intels Supercomputing-Chips: die Rückkehr von Larrabee

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *