Hat Kepler 2x oder 4x die Bandbreite von Fermi beim Zugriff auf Shared Memory?
Programmierleitfaden-Zustände: "Jede Bank hat eine Bandbreite von 32 Bits pro zwei Takt Zyklen" (für 2.X) und "Jede Bank hat eine Bandbreite von 64 Bits pro Takt cycle "(3.X), also ist 4x gemeint?
Auf Fermi hat jeder SM 32 Bänke, die alle zwei Taktzyklen 32 Bit liefern.
Auf Kepler hat jede SMX 32 Bänke, die in jedem Taktzyklus 64 Bits liefern. Da Keplers SMX jedoch grundlegend neu gestaltet wurde, um energieeffizient zu sein, und da das Laufen von schnellen Uhren eine Menge Leistung bringt, arbeitet Kepler mit einer viel langsameren Kernuhr. Schauen Sie sich die Inside Kepler von GTC an, ca. 8 Minuten in , für weitere Informationen.
Also lautet die Antwort auf die Frage, dass Kepler ~ 2x, nicht 4x hat.
Die nächste Version der Dokumente (CUDA 5.0) sollte das besser erklären.
Wie in
angegebenProgrammierhandbuch 4.2: Der gemeinsame Speicher hat 16 Bänke, die so organisiert sind, dass aufeinanderfolgende 32-Bit-Wörter auf aufeinanderfolgende Bänke abgebildet werden. Jede Bank hat eine Bandbreite von 32 Bits pro zwei Taktzyklen.
Kepler Whitepaper: Die gemeinsame Speicherbandbreite für 64-Bit- und größere Ladeoperationen ist im Vergleich zu Fermi SM auf 256 B pro Kerntakt verdoppelt.
Für kleine Ladeoperationen ist es 4X.