Technik & Know-how: der Cell-BE-Prozessor – Alleskönner oder Hype?

19.10.2006
Von Thomas Steudten

Programmierung

Standard-Software, geschrieben für einen Prozessor, läuft auf mehreren Prozessoren oder einem Multi-Core-Prozessor nicht automatisch schneller. Nur wenn Teile der Software parallel abgearbeitet werden können - die Software also Multithreading-fähig ist - kann diese von mehreren Prozessoren profitieren.

Beim Cell BE ist nur ein Power-Kern für die Software und das Betriebssystem sichtbar. Ohne genaue Informationen über das auszuführende Programm ist das Betriebssystem kaum in der Lage, den Cell auszureizen. Im Embedded- oder Multimedia Bereich, wie bei der PS3, wäre dies eher der Fall, da die Software hier von der Hardware genaue Kenntnisse hat. Für den Cell gibt es mittlerweile eine dokumentierte Entwicklungsumgebung, Programmiertipps und einen Cell-Simulator.

Um den Cell BE auszureizen, sollte das Programm entsprechend dafür optimiert werden. Der Cell BE unterstützt gleichzeitig drei verschiedene Page-Größen von 4 KB, 1 oder 16 MB, was sich auf die Performance auswirken kann. Adressen, die 2 KB voneinander entfernt sind, adressieren also die gleiche Bank. Stellt man sicher, dass die acht SPEs unabhängig voneinander auf je zwei Speicherbänke zugreifen können, so kann dies eine Performance-Verbesserung von 25 Prozent ergeben.

Der Zugriff auf den lokalen Speicher der SPEs ist deutlich schneller, als Daten aus dem Hauptspeicher zu holen. Hält man die zu bearbeitenden Daten daher auf dem Chip, kann dies ebenfalls die Performance positiv beeinflussen. Man sollte jedoch im Auge behalten, dass der lokale Speicher von 256 KB pro SPE begrenzt ist und für das Programm, lokale Datenstrukturen, den Stack und DMA-Buffer genutzt wird.

Es empfiehlt sich, den Compiler entsprechende Optimierungen durchführen zu lassen und im Zweifelsfall selbst Hand anzulegen, möchte man das Optimum aus dem Cell mit seinen acht Vektorprozessoren herausholen.

Zur Startseite