TU Chemnitz 15. Oktober 2007
Inhaltsverzeichnis 1 Einführung Aufgabe Netgauge Cell BE 2 3
Aufgabe Einführung Aufgabe Netgauge Cell BE Netgauge + Cell = Messung Speichertransfers von Cell BE
Aufgabe Einführung Aufgabe Netgauge Cell BE Netgauge + Cell = Messung Speichertransfers von Cell BE
Aufgabe Einführung Aufgabe Netgauge Cell BE Netgauge + Cell = Messung Speichertransfers von Cell BE
Netgauge Einführung Aufgabe Netgauge Cell BE Nachfolger von Netpipe hatte nur Ping-Pong-Test schlechte Zeitmessung viel Code innerhalb von Messungen Verschiedene Module für Transfer mehrere Tests genaue Zeitmessung
Netgauge Aufbau Einführung Aufgabe Netgauge Cell BE
Cell BE Einführung Aufgabe Netgauge Cell BE Entwicklung von IBM, Toshiba, Sony Einsatz in Multimedia-Geräten (HDTV, Playstation 3) Echte Hardware : Steckkarten, Cell-Blades
Cell BE Aufbau Einführung Aufgabe Netgauge Cell BE
Cell BE SPE-Aufbau Einführung Aufgabe Netgauge Cell BE Memory Flow Controller Local Store (256 KB Speicher) Synergistic Processing Unit SIMD-Befehle für 128-Bit-Daten Vortrag Simon Wunderlich
Cell BE SPE-Aufbau Einführung Aufgabe Netgauge Cell BE Memory Flow Controller Local Store (256 KB Speicher) Synergistic Processing Unit SIMD-Befehle für 128-Bit-Daten Vortrag Simon Wunderlich
Einführung cell PPE übernimmt Speicherzugriff cell mail Transfer über Mailbox cell dma SPE greift auf Speicher zu cell dmalist SPE greift über Listen auf Speicher zu
PPE kopiert Daten in Local Store Senden Empfangen
PPE kopiert Daten in Local Store Beispiel Beispiel void l o c a l s t o r e = s p e l s a r e a g e t ( s p u c o n t e x t ) ;.... memcpy ( l o c a l s t o r e + addr, b u f f e r, s i z e ) ;
DMA-Operation durch SPE Senden Empfangen
DMA-Operation durch SPE Beispiel Beispiel spu mfcdma64 ( ( void ) &b u f f e r, e x t e r n a l b u f f e r h i g h, b u f f e r l o w, s i z e, tag, MFC GET CMD ) ; m f c w r i t e t a g m a s k (1 << tag ) ; m f c r e a d t a g s t a t u s a l l ( ) ;
DMA-Operation durch SPE Zwischen zwei SPEs Senden Empfangen
Mailbox zwischen SPE und PPE Senden Empfangen
Mailbox zwischen SPE und PPE Beispiel Beispiel PPU u i n t 3 2 t data ; s p e i n m b o x w r i t e ( s p u c o n t e x t, ( void )& data, 1, SPE MBOX ALL BLOCKING ) ; Beispiel SPU u i n t 3 2 t data = s p u r e a d i n m b o x ( ) ;
1 Erstelle Thread-Kontext 2 Erstelle SPU Kontext 3 Lade SPU-Programm 4 Starte SPU-Programm in Thread 5 Affinität festlegen 6 Informationen über Puffer versenden
1 Erstelle Thread-Kontext 2 Erstelle SPU Kontext 3 Lade SPU-Programm 4 Starte SPU-Programm in Thread 5 Affinität festlegen 6 Informationen über Puffer versenden
SPE-Übertragung initialisieren 1 Erstelle Thread-Kontext 2 Erstelle SPU Kontext 3 Lade SPU-Programm 4 Starte SPU-Programm in Thread 5 Affinität festlegen 6 Informationen über Puffer versenden
mod cell spu
mod cell dma spu
Bus Error is not your friend Einführung Unterschiede bei Datenypen PPU-void* (32-/64-Bit), SPU-void* (32-Bit) PPU-long (32-/64-Bit), SPU-long (32-Bit) char unsigned!!! DMA-Transfers Größe: 1, 2, 4, 8 Byte oder vielfaches von 16 Alignment: 16 Byte Kein impliziter Zugriff auf Hauptspeicher
Bus Error is not your friend Einführung Unterschiede bei Datenypen PPU-void* (32-/64-Bit), SPU-void* (32-Bit) PPU-long (32-/64-Bit), SPU-long (32-Bit) char unsigned!!! DMA-Transfers Größe: 1, 2, 4, 8 Byte oder vielfaches von 16 Alignment: 16 Byte Kein impliziter Zugriff auf Hauptspeicher
Bus Error is not your friend Einführung Unterschiede bei Datenypen PPU-void* (32-/64-Bit), SPU-void* (32-Bit) PPU-long (32-/64-Bit), SPU-long (32-Bit) char unsigned!!! DMA-Transfers Größe: 1, 2, 4, 8 Byte oder vielfaches von 16 Alignment: 16 Byte Kein impliziter Zugriff auf Hauptspeicher
Transferraten zwischen Speicher und SPE 65536 16384 PPE-Transfer Mailbox DMA-Transfer DMA-List-Transfer 4096 1024 MBit/s [log] 256 64 16 4 1 0.25 1 4 16 64 256 1024 4096 16384 65536 262144 Bytes [log]
Transferraten abhängig vom Gegenstelle 120000 DMA-Transfer SPE-Speicher DMA-Transfer SPE-SPE 100000 80000 MBit/s 60000 40000 20000 0 0 50000 100000 150000 200000 250000 Bytes
Transferraten zwischen zwei SPEs mit und ohne Afinitäten 262144 65536 DMA ohne Affinitaet DMA-List ohne Affinitaet DMA mit Affinitaet DMA-List mit Affinitaet 16384 4096 1024 MBit/s [log] 256 64 16 4 1 0.25 1 4 16 64 256 1024 4096 16384 65536 262144 Bytes [log]
Verbrachte Zeit in Hardware-/Software-Interrupts 10 PPE-Transfer Mailbox DMA-Transfer DMA-List-Transfer 8 6 User Hz 4 2 0 0 50000 100000 150000 200000 250000 Bytes
Einführung http://www.ibm.com/developerworks/power/cell/ http://www.unixer.de/research/netgauge/ http://blog.perlplexity.org/
Fragen?