Archiv verlassen und diese Seite im Standarddesign anzeigen : Special Functions in Shadern
Matti
2010-01-14, 20:48:49
Auf ATI-Karten ist jeder 5.Stream-Prozessor eine Special Function Unit und kann also auch Wurzel, Sinus usw. berechnen. Wie ist es eigentlich auf Nvidia-Karten?
Matti
2010-01-14, 21:01:47
bei ATI ist der Anteil 20%. Und bei Nvidia?
deekey777
2010-01-14, 21:08:20
bei ATI ist der Anteil 20%. Und bei Nvidia?
50%? Nein, so funktioniert es dort nicht.
http://www.realworldtech.com/page.cfm?ArticleID=RWT090808195242
http://www.realworldtech.com/page.cfm?ArticleID=RWT090808195242&p=7
Beim Fermi ist das anders: http://www.realworldtech.com/page.cfm?ArticleID=RWT093009110932
http://www.realworldtech.com/page.cfm?ArticleID=RWT093009110932&p=7
Bei G8x und allem was darauf basiert sind es 2 SFUs für 8 ALUs.
reunion
2010-01-14, 21:13:17
Wobei die SFUs AFAIK vier Takte benötigen, das sollte man nicht unterschlagen.
Die SFUs brauchen 16 Takte für einen Warp, weil es eben nur 2 sind pro SM und nicht 8. Da gibt's nichts zu unterschlagen, das ist eine Konsequenz der Anzahl an Anheiten.
Genauer: Die SFUs haben nicht 1/16 des Durchsatzes der ALUs sondern 1/4.
Matti
2010-01-14, 22:26:03
Bei Computerbase habe ich folgende Aussage zum G80 gefunden:
...128 Shadereinheiten, die pro Takt ein MADD (Multiply-ADD) sowie ein MUL (Multiplikation) berechnen können. Letzteres ist aber nur selten für „General Shading“-Aufgaben zu gebrauchen, da das MUL meistens mit Special-Function-Unit-Berechnungen, wie beispielsweise eine Kosinus-Operation, beschäftigt ist.
http://www.computerbase.de/artikel/hardware/grafikkarten/2007/test_nvidia_geforce_8800_gts_512/2/
Daß man sin/cos/tan mit Polynomial-Funktionen annähert, ist mir bekannt. Aber wie paßt das Zitat von Computerbase zu Coda's Aussage, daß es für 8 ALUs 2 SFUs gibt?
deekey777
2010-01-14, 23:03:37
http://www.realworldtech.com/page.cfm?ArticleID=RWT090808195242&p=9
Dual-Issue?
Aber wie paßt das Zitat von Computerbase zu Coda's Aussage, daß es für 8 ALUs 2 SFUs gibt?
Eine SFU kann wohl anstatt einer Special-Function auch 4 MULs ausführen. Eine andere Erklärung habe ich für das Phänomen auch nicht.
deekey777
2010-01-14, 23:58:36
Wieviele Interpolatoren hat denn jede SFU?
deekey777
2010-01-15, 00:05:55
Das klingt aber nach mehr:
The SFU hardware for interpolation includes several 32-bit floating point multiply units, which can be issued separately for multiply instructions instead of an interpolation. The SFU is physically implemented as two execution units; each one services four of the eight execution pipelines in the SM, and multiply instructions issued to the SFU execute in the same 4 cycles as in the FMAD unit.
An welcher Stelle machst du das fest? Man interpoliert ja ganze Texturkoordinaten, also bis zu 4 Komponenten auf einmal.
Daß man sin/cos/tan mit Polynomial-Funktionen annähert, ist mir bekannt. Aber wie paßt das Zitat von Computerbase zu Coda's Aussage, daß es für 8 ALUs 2 SFUs gibt?
Ein weit verbreiteter Irrglaube.
Annäherung über Polynominalfunktionen (also Taylorreihe) ist VIIIIIIIEL zu langsam. Es wird stattdessen ein CORDIC-Algorithmus verwendet. Die Mondlandung wäre zB mit Taylerpolynomen nicht möglich gewesen, da zu aufwendig für die damalige HW.
mfg,
zgep
Auf Wiki steht dass man CORDIC nur einsetzt, wenn man kein Hardware-MUL hat. Ich vermute da gibt es noch bessere Verfahren inzwischen.
vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd.