PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : NV40 Architecture Tech-Paper von nVidia


Corrail
2005-03-18, 03:14:59
Aus GPU Gems 2: Klick me (http://download.nvidia.com/developer/GPU_Gems_2/GPU_Gems2_ch30.pdf)

mapel110
2005-03-18, 03:44:10
Use Branching in Fragment Programs Judiciously

Because the fragment processor is a SIMD machine operating on many fragments at a
time, if some fragments in a given group take one branch and other fragments in that
group take another branch, the fragment processor needs to take both branches. Also,
there is a six-cycle overhead for if-else-endif control structures. These two effects can
reduce the performance of branching programs if not considered carefully. Branching
can be very beneficial, as long as the work avoided outweighs the cost of branching.

Interessant auch mal zu wissen, wie viel Branching kostet.
Instruction Cost (Cycles)
If / endif 4
If /else / endif 6
Call 2
Ret 2
Loop / endloop 4

Aber ich denke mal, für unsere Gurus ist das alles ein alter Hut, oder?!

ScottManDeath
2005-03-18, 03:56:01
Aus GPU Gems 2: Klick me (http://download.nvidia.com/developer/GPU_Gems_2/GPU_Gems2_ch30.pdf)

Grrr, auf der GDC gabs das Buch schon, bei Amazon steht bei meiner Bestelllung irgendwann Ende April, Anfang Mai.

Ailuros
2005-03-18, 09:42:11
Monsieur Kilgariff ;)

aths
2005-03-18, 16:25:33
Interessant auch mal zu wissen, wie viel Branching kostet.
Instruction Cost (Cycles)
If / endif 4
If /else / endif 6
Call 2
Ret 2
Loop / endloop 4

Aber ich denke mal, für unsere Gurus ist das alles ein alter Hut, oder?!Das wurde auch schon mal im Forum erwähnt, so dass man kein Guru sein muss, um zu wissen, dass jeder dieser Befehle (mindestens) 2 Takte braucht.

Interessant: Bei mehr als 4 Temp-Registern (FP32) geht die Speicherkapazität aus, so dass die Pipe nicht voll ausgelastet werden kann. Das war bislang eine Vermutung, die man schon von der einen oder anderen Seite hören konnte. Von der reinen Bandbreite her sollte man aber lt. dem Buch nur 4 FP16-Register nutzen.

Das baue ich doch glatt noch ein :)

edit: Hrm, ein grüner Fisch meinte, das könne man aus dem Buch auch anders lesen ;(

Xmas
2005-03-18, 17:50:55
Interessant: Bei mehr als 4 Temp-Registern (FP32) geht die Speicherkapazität aus, so dass die Pipe nicht voll ausgelastet werden kann. Das war bislang eine Vermutung, die man schon von der einen oder anderen Seite hören konnte. Von der reinen Bandbreite her sollte man aber lt. dem Buch nur 4 FP16-Register nutzen.

Das baue ich doch glatt noch ein :)

edit: Hrm, ein grüner Fisch meinte, das könne man aus dem Buch auch anders lesen ;(
Allerdings. Für die Bandbreite ist es ja egal, wieviele Register belegt sind, es kommt darauf an wieviele pro Takt verwendet werden, und das wird ja durch die möglichen Operationen begrenzt.
Die Bandbreite reicht offensichtlich, um die NRM-Unit, SU0 und SU1 vollständig unabhängig zu verwenden, sofern man PP verwendet. Nutzt man FP, so muss man wohl SU0 und SU1 in Serie verwenden (Ergebnis von SU0 in SU1 verwenden, nur Ergebnis von SU1 schreiben).

Also ein Shader, der zu jedem Zeitpunkt höchstens 8 FP16x4-Register "alive" hält, sollte mit höchstmöglicher Geschwindigkeit laufen.