PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Errm, FLOPs berechnen?


MadManniMan
2009-11-24, 09:15:51
Ahoi ihr Klugen!

Einfache Frage: wie errechnen sich eigentlich die FLOPs bei Grafikkarten?


Manni

reunion
2009-11-24, 09:19:22
ALUs * Takt. Wobei eine MADD/FMA-ALU 2 FLOPs hat und ein MUL oder ADD 1 FLOP.

Beispiel Cypress: 1600 ALUs * 2 (MADD) * 0,850Ghz = 2720MFLOPs
Beispiel Fermi: 512ALUs * 2 (MADD) * 1,6Ghz = 1638MFLOPs
Beispiel GT200b: 240 ALUs * 3 (MADD+MUL) * 1,476 = 1062,7MFLOPs.

MadManniMan
2009-11-24, 12:07:30
Danke! Es ist also nötig, um den Aufbau der Rechenwerke der Chips zu wissen.

Wie sieht es mit dem G80 und seinen Abkömmlingen aus? Und wie mit den ganz alten Chips wie dem NV30 oder R300?

(PS: manchmal sollte ich mir Deine Sig zu Herzen nehmen ;) )

reunion
2009-11-24, 12:17:13
ATi hatte von R300 bis R580 jeweils MADD plus ADD, ab R600 nur noch MADD. Bei NV wird es komplizierter: NV30/NV40 MADD plus MUL, G70 MADD plus MADD (Ansichtssache, man könnte auch sagen nur MADD bei 48 ALUs), ab G80 wieder MADD plus MUL (das allerdings nur sehr eingeschränkt verwendet werden kann). Fermi wird auch nur noch MADD haben, das MUL fällt also weg.

Spasstiger
2009-11-24, 12:21:40
Bei Double Precision verhält es sich noch etwas anders, weil dort teilweise ALUs zusammengeschaltet werden. Man muss eigentlich wissen, was so ein SIMD-Cluster/Streaming-Multiprozessor pro Takt ausführen kann, die Anzahl der Einzelalus ist imo nicht soo wichtig. Im Folgenden steht dp für double precision (fp64) und sp für single precision (fp32). SFs steht für special functions, diese benötigen mehrere Takte und fließen üblicherweise nicht in die Peak-Rechenleistung ein.

RV770/RV790: 10 SIMD-Cluster mit je 16 VEC5-ALUs, Floating-Point-Fähigkeiten pro SIMD-Cluster:
-16 dp-FMA (16*2 Flops) + 16 SFs
oder
- 32 dp-ADD (32*1 Flops) + 16 SFs
oder
- 16 dp-MUL (16*1 Flops) + 16 SFs
oder
-80 sp-MADD (80*2 Flops)
oder
-64 sp-MADD (64*2 Flops) + 16 SFs

Cypress: 20 SIMD-Cluster mit je 16 VEC5-ALUs, Floating-Point-Fähigkeiten pro SIMD-Cluster:
-16 dp-FMA (16*2 Flops) + 16 SFs
oder
- 32 dp-ADD (32*1 Flops) + 16 SFs
oder
- 32 dp-MUL (32*1 Flops) + 16 SFs
oder
-80 sp-FMA (80*2 Flops)
oder
-64 sp-FMA (64*2 Flops) + 16 SFs

GT200: 30 Streaming-Multiprozessoren (angeordnet in 10*3-Blöcken), Floating-Point-Fähigkeiten je Streaming-Multiprozessor:
- 1 dp-FMA (2 Flops) + 2 SFs
oder
- 8 sp-MADD + 8 sp-MUL (8*2 + 8*1 Flops)
oder
- 8 sp-MADD (8*2 Flops) + 2 SFs

Fermi: 16 Streaming-Multiprozessoren (angeordnet in 16*1-Blöcken), Floating-Point-Fähigkeiten je Streaming-Multiprozessor:
- 16 dp-FMA (16*2 Flops)
oder
- 32 sp-FMA (32*2 Flops)
oder
- 16 sp-FMA (16*2 Flops) + 4 SFs

Bei den SFs bin ich mir nicht hundertprozentig sicher, hier gibts Infos zum Nachlesen:
- GT200 (http://realworldtech.com/page.cfm?ArticleID=RWT090808195242&p=9)
- Fermi (http://realworldtech.com/page.cfm?ArticleID=RWT093009110932&p=5)

/EDIT: Fähigkeiten des Cypress jetzt doch aufgelistet, da es kleinere Unterschiede gibt.

P.S.: Um auf die Peak-Rechenleistung zu kommmen, sucht man sich einfach für jeden Chip den Betriebsmodus mit der höchsten Rechenleistung aus (dabei sp und dp gesondert behandeln), multipliziert die Fähigkeiten pro SIMD-Cluster/Streaming-Multiprozessor mit der Anzahl von SIMD-Clustern/SMs und multipliziert dann noch mit dem Takt.

reunion
2009-11-24, 12:34:44
Cypress: 20 SIMD-Cluster mit den gleichen Fähigkeiten wie beim RV770/RV790. Afaik sind jetzt auch bei single precision FMA-Operationen möglich, ändert allerdings nichts an den Flops.


Nicht ganz. Die ALUs wurden für DP etwas aufgerüstet. Eine DP-Addition benötigt zwar wie gehabt zwei Slots, eine Multiplikation allerdings jetzt auch nur noch 2 Slots statt 4. Nur FMA belegt die vollen 4 Slots.

Spasstiger
2009-11-24, 12:36:43
Also kann der RV770/RV790 keine 32 dp-MUL pro SIMD-Cluster, sondern nur 16 dp-MUL? Und der Cypress entsprechend die vollen 32 dp-MUL? Und wie verhält es sich bei ATI mit den special functions, können die überhaupt verwenden werden, wenn alle Slots belegt sind? Wenn nein, muss ich oben eine Korrektur anbringen.

reunion
2009-11-24, 12:37:10
Also kann der RV770/RV790 keine 32 dp-MUL pro SIMD-Cluster, sondern nur 16 dp-MUL? Und der Cypress entsprechend die vollen 32 dp-MUL?
Ja.


Und wie verhält es sich bei ATI mit den special functions, können die überhaupt verwenden werden, wenn alle Slots belegt sind? Wenn nein, muss ich oben eine Korrektur anbringen.

Natürlich, die fünfte Einheit kann immer noch eine 32bit Instruktion parallel abarbeiten. Diese wird ja für DP nicht verwendet.