Gast_leo
2008-05-13, 17:46:47
Mir kam letztens so die Frage, wie flexibel eigentlich der G80 im Vergleich zur GeForce 6 bzw 7 wirklich ist. Laut NVIDIA hat der Chip 128 unabhängige Skalar-ALUs. In Wirklichkeit sind es bekanntlich acht 16-fach SIMD Einheiten (oder 8 mal Vec16). Man hat also quasi eine 8-fach MIMD-Architektur die jeweils in 16-Fach SIMD unterteilt ist.
Die GF6/7-Reihe hatte 4-fach SIMD (Vec4, zumindest im PS) für jeweils vier Pixel. Könnte man das ganze dann bei 32 Pixelshadern als 8-Fach MIMD unterteilt in 4-fach SIMD (Vec4, 4 Pixel) die jewils nochmal in 4-Fach SIMD unterteilt sind beschreiben?
Nach meinem Verständnis wird das ganze beim G80 jetzt so verwendet, dass für jeweils 16 Pixel eine Komponente berechnet wird. Aus Sicht eines einzelnen Pixels also ein Skalar. Jetzt stellt sich mir als Laie unweigerlich die Frage wie sinnvoll denn sowas ist? Braucht man den so oft die gleiche Instruktion auf eine Komponente von 16 verschiedenen Pixeln? Der Ansatz von G7x erscheint mir da (als Laie) irgendwie logischer, für jeden Pixel mit einer Vec4-Einheit alle Komponenten zu berechnen.
Um aber auf das eigentliche Thema zurückzukommen: Was hindert einen daran die 4-fach SIMD Einheiten eines G7x auch einfach jeweils nur eine Komponente von vier verschiedenen Pixeln berechnen zu lassen? Dann hätte man doch quasi das gleiche Design wie beim G80 nur eben anstelle von Vec16 mit Vec4. Von daher müsste der G7x ja irgendwie sogar flexibler sein, als der G80. Alles sehr verwirrend ;).
Danke schonmal für informative Antworten!
Die GF6/7-Reihe hatte 4-fach SIMD (Vec4, zumindest im PS) für jeweils vier Pixel. Könnte man das ganze dann bei 32 Pixelshadern als 8-Fach MIMD unterteilt in 4-fach SIMD (Vec4, 4 Pixel) die jewils nochmal in 4-Fach SIMD unterteilt sind beschreiben?
Nach meinem Verständnis wird das ganze beim G80 jetzt so verwendet, dass für jeweils 16 Pixel eine Komponente berechnet wird. Aus Sicht eines einzelnen Pixels also ein Skalar. Jetzt stellt sich mir als Laie unweigerlich die Frage wie sinnvoll denn sowas ist? Braucht man den so oft die gleiche Instruktion auf eine Komponente von 16 verschiedenen Pixeln? Der Ansatz von G7x erscheint mir da (als Laie) irgendwie logischer, für jeden Pixel mit einer Vec4-Einheit alle Komponenten zu berechnen.
Um aber auf das eigentliche Thema zurückzukommen: Was hindert einen daran die 4-fach SIMD Einheiten eines G7x auch einfach jeweils nur eine Komponente von vier verschiedenen Pixeln berechnen zu lassen? Dann hätte man doch quasi das gleiche Design wie beim G80 nur eben anstelle von Vec16 mit Vec4. Von daher müsste der G7x ja irgendwie sogar flexibler sein, als der G80. Alles sehr verwirrend ;).
Danke schonmal für informative Antworten!