PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : unterschiedliche Dynamic Branching Implementationen


Gast
2007-02-18, 12:32:39
Hallo.

Ich habe mich gefragt, warum NV40 und Verwandte so langsam gegenüber ATi im Dynamic Branching sind.

Ich habe dabei gesucht und nur etwas obskures in der Form gefunden (http://www.gpgpu.org/w/index.php/Glossary#Dynamic_Branching), daß ATi scheinbar eine um den Faktor 10 kleinere Granularität hat, welchen Weg Fragmente nehmen dürfen. Wie ist das zu erklären? Werden durch einen dynamischen Sprung an ein andere Anweisung irgendwie Teile der Texturpipelines oder ALUs blockiert?

Was jemand genauer woran das liegt?

Hvoralek
2007-02-18, 19:58:35
Es sind hpts. zwei Dinge:

1. Granulität: NV40 und G70 können nur für viele hundert Pixel auf einmal einen Sprung ausführen, der so ermittelte Shadercode muss für all diese Pixel berechnet werden. Wenn nur wenige Pixel innerhalb des betreffenden Bereichs diesen Codeteil wirklich bräuchten, er aber für alle ausgeführt werden muss, kommt es zu viel Verschnitt. Dadurch verringert sich der erreichbare Gewinn. Bei R5xx ist die Granulität deulich feiner und dadurch der Verschnitt geringer (siehe dazu hier (http://www.beyond3d.com/reviews/ati/r520/index.php?p=04). Das wird im unteren Bereich auf dem linken Bild gut verdeutlicht).

2. NV40/ G70 verlieren bei jedem Sprung ein paar Takte (zwei glaube ich) und können deshalb durch dyn. Branching u.U. sogar länger für eine Berechnung brauchen as ohne. Bei ATI gibt und gab es diese Kosten für einen Sprung nicht.

deekey777
2007-02-18, 23:12:08
Die Granularität liegt nicht bei um Faktor 10, sondern...
Während der G70 noch eine Batch-Länge von 220 Quads hat (wir vermuteten bislang 256 Quads, tatsächlich sind es 220) und ein Quad schließlich aus vier Pixeln besteht, kann auch nur pro 880-Pixel-Batch der PC (Program-Counter, Befehlszeiger) geändert werden. Entsprechend grob ist die Granularität beim Dynamic Branching. Dabei ist das gegenüber dem NV40 schon eine Verbesserung, beim NV40 teilten sich noch alle Quad-Pipes einen einzigen PC.
http://www.3d-center.de/artikel/2006/12-28_e.php
In Quads: R520->G80->R580
4->8->12.
http://www.beyond3d.com/forum/showthread.php?t=31394
http://www.beyond3d.com/forum/showthread.php?t=35769