PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 1D 4D 5D Shadereinheiten


=Floi=
2008-05-13, 01:42:58
Hallo
wo liegt denn eigenlich der große vorteil in den einzelnen designs? Ich denke das 5D-design hat erst vorteile bei einer bestimmten höheren komplexizität und für einfach sachen ist es dann zu unfexibel. Warum verfolgte man das 4D konzept nicht mehr und mit dem 1D-design is nv hier wohl am weitesten, da es am flexiblesten und effizientesten ist.

deekey777
2008-05-13, 14:22:01
Hallo
wo liegt denn eigenlich der große vorteil in den einzelnen designs? Ich denke das 5D-design hat erst vorteile bei einer bestimmten höheren komplexizität und für einfach sachen ist es dann zu unfexibel. Warum verfolgte man das 4D konzept nicht mehr und mit dem 1D-design is nv hier wohl am weitesten, da es am flexiblesten und effizientesten ist.
Man kann nicht sagen, dass "5D" für komplexe Sachen gedacht ist, "1D" dagegen für einfache.
Wenn du als "5D" die 1+1+1+1+1-Anordnung der R600-Generation meinst, so kann der G80 das Gleiche in 5 Durchgängen ausführen.
Man muss ehrlich sein: Weder hat der G80 128 SPs, noch hat der R600 320 SPs, denn diese anscheinend einzelne SPs sind zu SIMDs zusammengeschlossen (acht Vec16-ALUs beim G80, 4 Vec16-ALUs beim R600). Dabei kann man sagen: Die GPUs sind MIMDs, dadie einzelnen SIMDs unabhängig voneinander Rechenaufgaben durchführen (zeiche ein Dreieck auf einem karierten Blatt, die einzelnen Kästchen sind Threads, für diese Threads werden dann Rechenfunktionen ausgeführt).
Die ALUs der X1000-Generation waren zu Vektoren zusammengefasst, dh sie konnten einen Drei-Komponenten-Vektor und eine skalare Instruktion (nur für eine Komponente) in der Pixelpipeline parallel ausführen (vier aufeinmal). Hatte man aber nur zwei Skalare zu berechnen, hatten zwei ALUs nichts zu tun.
Also kam man bei der R600-Generation zur Überlegung: weg von den Vektoren zu dem paralleliserbaren Code.
Beim R600 werden die Vektoren in einzelne Komponenten aufgeteilt und dann zu VLIW zusammengefasst und aufeinmal (= parallel) berechnet. Das Problem ist: Es lassen sich nicht immer alle 5 Einheiten auslasten, insbesondere wenn es zwischen den einzelnen Instruktionen zu Abhängigkeit kommt.
Beim G80 ging man einen anderen Weg: Die Komponenten werden zwar auch in einzelne Skalare zerlegt, aber sie werden nicht nebeneinander, sondern nacheinader berechnet (seriell), dabei spielt die Abhängigkeit keine Rolle, womit diese effizient ausgenutzt werden.

Juerg
2008-05-13, 15:31:42
Supi :D

Endlich mal eine Erklärung auch für Laien wie mich... :biggrin:

Danke

Coda
2008-05-13, 17:38:28
Wobei man sagen muss dass bei durchschnittlichen Shaderprogrammen die Auslastung der Vec5-ALUs bei ATi wirklich ziemlich gut ist laut ihrem ShaderAnalyzer (viel besser als ich aufgrund der Messwerte erwartet hätte). Da muss es eigentlich noch wo anders klemmen.

Gast
2008-05-13, 18:39:27
Da muss es eigentlich noch wo anders klemmen.

ja, an der füllrate, 16 TMUs hat man seit R420, das ist einfach nicht mehr zeitgemäß.

deekey777
2008-05-13, 19:34:25
Wobei man sagen muss dass bei durchschnittlichen Shaderprogrammen die Auslastung der Vec5-ALUs bei ATi wirklich ziemlich gut ist laut ihrem ShaderAnalyzer (viel besser als ich aufgrund der Messwerte erwartet hätte). Da muss es eigentlich noch wo anders klemmen.
http://www.forum-3dcenter.org/vbulletin/showthread.php?p=6497026#post6497026

Coda
2008-05-13, 20:33:14
ja, an der füllrate, 16 TMUs hat man seit R420, das ist einfach nicht mehr zeitgemäß.
Ich meinte die reine Rechenleistung.

=Floi=
2008-05-18, 02:57:08
so ganz habe ich es aber noch nicht kapiert und wo liegen die einzelnen vorteile, wenn es die geben sollte. Warum macht man es so?

deekey777
2008-05-21, 13:29:35
http://techreport.com/articles.x/12458/3 -> unteres Drittel.

HOT
2008-05-21, 13:47:29
ja, an der füllrate, 16 TMUs hat man seit R420, das ist einfach nicht mehr zeitgemäß.
Na ja, da ist aber auch nur die Anzahl gleich geblieben ;). Ansonsten gibts da keine Vergleichbarkeiten zwischen damals und heute :D.

deekey777
2008-11-20, 14:25:48
Ich grab das mal aus:
Hallo
wo liegt denn eigenlich der große vorteil in den einzelnen designs? Ich denke das 5D-design hat erst vorteile bei einer bestimmten höheren komplexizität und für einfach sachen ist es dann zu unfexibel. Warum verfolgte man das 4D konzept nicht mehr und mit dem 1D-design is nv hier wohl am weitesten, da es am flexiblesten und effizientesten ist.

So stimmt das eigentlich nicht.

Die einzelnen SPs bestehen aus zwei ALUs: einer MAD-ALU und einer MUL-ALU (ja, man muss nicht alles kopmlizieren). Und da es SIMDs sind, kann pro Warp (also eine Gruppe von Threads, wo ein Thread zB ein Pixel ist) eben nur eine Operation ausgeführt werden. Die einzelnen Cluster bestehen aber nicht aus einer Recheneinheit, sondern aus zwei (G80) bzw. drei (GT200). Der Dispatcher sucht sich also zwei bzw. drei Warps aus und "ordnet jeder Recheneinheit an": "Mach mal MAD!" Das Problem: Die MUL-Einheit hat dabei nichts zu tun. Also sucht der Dispatcher nach weiteren zwei bzw. drei Warps, wo zB eine MUL-Operation ansteht.
Das heißt: Die Rechenwerke des G80 bzw. des GT200 sind nur dann ausgelastet, wenn der Dispatcher 4 bzw. 6 Warps findet, von denen 2 bzw. 3 "MAD-Warps" und 2 bzw. 3 "MUL-Warps" sind.


Oder auch nicht.

=Floi=
2008-11-20, 14:54:20
war aber eher ein vergleich mit ati und deren 5D alu solle ja noch gröber sein?! :rolleyes:

Gast
2008-11-20, 15:22:06
Die einzelnen Cluster bestehen aber nicht aus einer Recheneinheit, sondern aus zwei (G80) bzw. drei (GT200). Der Dispatcher sucht sich also zwei bzw. drei Warps aus und "ordnet jeder Recheneinheit an": "Mach mal MAD!" Das Problem: Die MUL-Einheit hat dabei nichts zu tun. Also sucht der Dispatcher nach weiteren zwei bzw. drei Warps, wo zB eine MUL-Operation ansteht.
Das heißt: Die Rechenwerke des G80 bzw. des GT200 sind nur dann ausgelastet, wenn der Dispatcher 4 bzw. 6 Warps findet, von denen 2 bzw. 3 "MAD-Warps" und 2 bzw. 3 "MUL-Warps" sind.


nicht ganz, es ist zwar richtig, dass MADD+MUL eines SPs nicht immer ausgelastet werden können, aber die verteilung funktioniert anders.

die einzelnen SIMDs in einem cluster sind voneinander unabhängig.

ein warp besteht wie du bereits gesagt hast aus 32 threads bzw. pixeln. diese werden allerdings nicht auf die einzelnen SIMDs aufgeteilt (was bei 3SIMDs/cluster auch ziemlich ineffizient wäre), sondern in 4 aufeinanderfolgenden takten in einem einzelnen 8-way-SIMD abgearbeitet.
ich vermute mal, dass die pipeline eines SPs genau 4 takte lang ist und man diesen weg geht um eventuelle stalls bei 2 voneinander abhängigen befehlen ausschließen zu können.

in einem cluster sind also im idealfall zu jedem zeitpunkt 2 bzw. 3 (ab G200) in bearbeitung.

um MADD+MUL anzusteuern wird meines wissens eine art mini-VLIW verwendet, es ist nicht möglich gleichzeitig 2 warps in einem SIMD zu bearbeiten, wovon einer MADD, der andere MUL benützt, wodurch die auslastung von MADD+MUL natürlich sinkt. um beide auszunützen muss der shadercompiler in einem warp 2 voneinander unabhängige anweisungen finden, wovon eine auf der MUL-einheit ausgeführt werden kann.

deekey777
2008-11-20, 15:53:01
Eureka!:smile:
Hier wird Dual-Issue erklärt: http://www.realworldtech.com/page.cfm?ArticleID=RWT090808195242&p=9
One of the interesting complexities of NVIDIA’s microarchitecture is the relationship between latency and throughput. In general, CPUs execute most operations in a single cycle - but the latency of the fastest operation for an SP core is 4 cycles. Since the SM can issue one warp instruction every 2 'fast' cycles, it should be possible to have multiple instructions in flight at once. In fact, this ability is what NVIDIA refers to as ‘dual issue’ – although in reality it is simply parallel execution across functional units. The SP cores execute one instruction over 4 cycles, and other execution units can be in use, processing a different warp instruction simultaneously.
http://www.abload.de/img/g100-63gva.gif
Figure 6 – Dual 'Issue' for NVIDIA's Execution Units

As Figure 6 illustrates, the SM can issue a warp instruction every 2 clocks. In the first cycle, a MAD is issued to the FPU. Two cycles later, a MUL instruction is issued to the SFU. Two cycles after that, the FPU is free again and can execute another MAD. Two cycles after that, the SFU is free and can begin to execute a long running transcendental instruction. Using this technique, the computational throughput of the shader core is increased by 50%, while retaining the simplicity of issuing only one warp every 2 cycles, which simplifies the scoreboarding logic. Not all combinations can be executed in parallel. For instance, the double precision unit and the single precision units share logic and cannot be active simultaneously as a result.
Und Arun schrieb mal, dass anstelle des Dual-Issue eines Warps auch ein anderer Warp die "Nichtstuer" nutzen kann.

Leonidas
2010-09-24, 13:58:20
Aus aktueller Sichtweise wäre hinzuzufügen, daß NV ab der GF100-Generation nicht mehr das Auslastungsproblem bei der MUL-Einheit hat, sondern - da nur noch die MADD-Einheit vorhanden ist - nochmals viel effizienter zu Werke geht.

Und AMD wird wie bekannt über kurz oder lang auf 4-D umstellen.

Gast
2010-09-24, 14:13:04
Wobei seit GF104 der Sonderfall besteht, dass wenn keine Parallelität im Befehlsstrom existiert, nur 2/3 der ALUs eines Clusters ausgelastet werden können.

Savay
2010-09-25, 11:06:35
vorallem was bringen einem super ausgelastete 1D einheiten wenn die flächeneffizienz bei den breiteren VLIW mit 4 oder 5 einheiten scheinbar deutlich besser ist...vorallem je größer der anteil der shader an der diefläche ist!? ;)

mal abgesehen von dem programmseitig einfacher erzeugbaren code der die einheiten so gut wie möglich auslastet, und der tatsache das egal wie der workload aussieht die auslastung stets sehr hoch ist, holt man sich mit 1D einheiten ganz offensichtlich ja auch nachteile ins haus vorallem was die chipkomplexität betrifft.

Gast
2010-09-26, 12:01:39
vorallem was bringen einem super ausgelastete 1D einheiten wenn die flächeneffizienz bei den breiteren VLIW mit 4 oder 5 einheiten scheinbar deutlich besser ist...vorallem je größer der anteil der shader an der diefläche ist!? ;)


Offenbar bei deutlich geringerer Rohleistung immer noch eine vergleichbare Endleistung.

Auch die Effizienz/Transistor ist mit "1D" nicht wirklich schlechter, der einzige der aus der Reihe schlägt ist GF100 und da liegt es nicht an 1D sondern an der hohen DP-Leistung und den anderen GPGPU-Optimierungen.

GF104 kommt mit ähnlicher Transistorenmenge ziemlich genau in den Leistungsbereich von RV870.

Und dass die Effizienz mit der Größe bei ATI zunimmt kann ja wohl nicht dein ernst sein, wenn man die letzten ATI-Generationen vergleicht merkt man dass die Effizienz stark abgenommen hat, was auch ATI erkannt hat und deshalb an northern-islands arbeitet.

Gasti
2010-09-26, 13:00:29
Offenbar bei deutlich geringerer Rohleistung immer noch eine vergleichbare Endleistung.

Auch die Effizienz/Transistor ist mit "1D" nicht wirklich schlechter, der einzige der aus der Reihe schlägt ist GF100 und da liegt es nicht an 1D sondern an der hohen DP-Leistung und den anderen GPGPU-Optimierungen.

GF104 kommt mit ähnlicher Transistorenmenge ziemlich genau in den Leistungsbereich von RV870.

Und dass die Effizienz mit der Größe bei ATI zunimmt kann ja wohl nicht dein ernst sein, wenn man die letzten ATI-Generationen vergleicht merkt man dass die Effizienz stark abgenommen hat, was auch ATI erkannt hat und deshalb an northern-islands arbeitet.

Was hat die insgesammmte Spieleleistung mit der Leistung der Shadereinheiten zu tun?

Savay
2010-09-26, 13:05:47
Offenbar bei deutlich geringerer Rohleistung immer noch eine vergleichbare Endleistung.


nicht was die reine shaderleistung angeht.
in spielen verpufft die bei den ATis nur, bzw kommt nicht richtig durch...aber das hat andere gründe.
es gibt abseits davon aber durchaus szenarien in denen die shader näher am optimum laufen als im durchschnittspiel und dann zieht der rv870 kreise...auch bei DP.
sieh dir einfach mal ein paar von den GPGPU BOINC projekten an.
gibt nicht sehr viele für die radeons weil die softwareunterstützung bei nV einfach besser ist aber die wenigen die es gibt zeigen das prinzipielle potenzial recht gut auf. :smile:

ich verstehe AMD da nicht...die GPUs haben echt potenzial was GPGPU angeht aber sie überlassen das feld im grunde nV...das ist einfach idiotisch.


hmm mal als anmerkung: warum tun hier im forum soviele als wären 1D einheiten das allheilmittel!?!?

es hat beides vor und nachteile. es gibt nicht DIE lösung! beides ist legitim und ein gangbarer weg...aber hier im forum wird ja gern mal alles was von nV kommt über den grünen klee gelobt. :D ich mein es muss ja "das best vom besten vom besten" sein

natürlich bieten Vec5 einheiten prinzipiell eine größere flächeneffizienz...die logik drumherum füttert nämlich 5 ausführungseinheiten...statt nur eine.

die frage ist nur inwieweit es lohnt...wenn der workload es erlaubt spart man einfach eine menge transistoren!
wenn nicht hat man halt pech gehabt. die sache ist nur die das grade bei grafikberechnungen der workload meistens von alleine eine relativ hohe auslastung der einheiten bedingt....zwar selten 100% aber dennoch hoch genug das es sich scheinbar rentiert.

dazu kommt die packdichte, die grade was die shader angeht bei den VecX einheiten ja offensichtlich auch besser ist als bei 1D einheiten. ich glaube einfach nicht daran das nV schlechter darin ist transistoren möglichst dicht zu packen...das wird zu 99,9% konzeptionelle gründe habe...und nicht daran liegen das AMD da so besonders toll drin ist! :)
es ist ja auch kein wunder das es in dem fall leichter ist wenn ich 5 (bzw. 4+1 oder demnächst 4) "uniforme" schaltungen nebneinander packen und verschalten möchte. :)

HOT
2010-09-26, 17:24:35
NV versucht mit einem Multi-Skalarrechner Vektoraufgaben zu lösen - das kann nicht effizient sein. Ich verstehe auch überhaupt nicht, warum da alle so versessen darauf sind. Natürlich ist das besser programmierbar und einfacher handhabbar, wenn man auchmal andere Aufgaben lösen möchte. Aber das ist ja wohl nicht der Sinn dieses Teils - das Ding soll Vektoraufgaben lösen und das möglichst schnell. Das ist der Grund warum Fermi scheitert, auch im GP-Bereich. Sicher im Moment gibt es nicht besseres, das muss aber nicht so bleiben. Ich sehe die 1D-Technik als einen schweren Nachteil an ggü. platz- und stromsparenden 4D Einheiten. Das wird man bei der Cayman-Generation auch sehen. Man muss beim 5xxx immer bedenken, dass er ein Ahne des R600 ist und auch dessen konzeptionelle Probleme mit sich rumschleppt.
AMD überlässt NV die grossen Werbeausgaben, wird aber dennoch an dem Markt partizipieren. AMD ist nicht so unter Zugzwang wie NV, man hat ja auch x86-CPUs und in 2011 wohl auch garnicht mal so langsame. Warum sollte AMD sich in der Werbeschlacht beteiligen? Man wird hinterher so oder so die Früchte miternten. Ich sehe das eher so, dass NV massiv unter Zugzwang ist und sich mit seiner 1D-Technologie total verrennt. Ich sehe da die Gefahr, dass die an AMD grafiktechnisch den Anschluss verlieren und bei GP-Leistung von AMD und Intel überholt werden ...

Gast
2010-09-26, 20:29:25
es gibt abseits davon aber durchaus szenarien in denen die shader näher am optimum laufen als im durchschnittspiel und dann zieht der rv870 kreise...auch bei DP.

Der RV870 soll Kreise um einen nicht ausgebremsten GF100 in DP ziehen? Sicher nicht. Natürlich wird man immer ein Szenario schaffen können in dem die theoretische Rechenleistung eines Chips praktisch vollständig ausgelastet wird. Die Frage ist nur wann das der Fall ist, mit "1D" ist man einfach immer nahe am Optimum, mit 4D/5D nur in ausgesuchten Fällen.

Abgesehen davon dürfte die Stromversorgung der Karten weit unterdimensioniert sein um für solch einen theoretischen Fall gerüstet zu sein. Für die Karten müsste man sich einen Art Turbo-Mode wie bei Intels CPUs einfallen lassen, der die Takte an den aktuellen Stromverbrauch anpasst.




hmm mal als anmerkung: warum tun hier im forum soviele als wären 1D einheiten das allheilmittel!?!?

Macht keiner, du bist der Einzige der in 1D den "Todesstoß" sieht.



natürlich bieten Vec5 einheiten prinzipiell eine größere flächeneffizienz...die logik drumherum füttert nämlich 5 ausführungseinheiten...statt nur eine.


Bei echtem 1D wäre das so, nur gibt es bei Nvidia eben nicht wirklich 1D, das will uns nur das Marketing sagen.
In Wirklichkeit arbeitet man mit 8D (G80-G2xx) bzw. mit 16D (ab GF100)-Hardware. Der Trick besteht nur darin, die Befehle so umzusortieren, dass es für die Software wie 1D aussieht.

Man macht im Prinzip eine Art out-of-order-execution über mehrere (sehr viele) Threads.

dazu kommt die packdichte, die grade was die shader angeht bei den VecX einheiten ja offensichtlich auch besser ist als bei 1D einheiten. ich glaube einfach nicht daran das nV schlechter darin ist transistoren möglichst dicht zu packen...das wird zu 99,9% konzeptionelle gründe habe...und nicht daran liegen das AMD da so besonders toll drin ist!

Ich sehe hier keine großen Unterschiede, G2xx war merklich schlechter als die damalige ATI-Konkurrenz, mit der GF1xx-Reihe bewegt man sich auf vergleichbarem Niveau zur RV8xx-Reihe.

es ist ja auch kein wunder das es in dem fall leichter ist wenn ich 5 (bzw. 4+1 oder demnächst 4) "uniforme" schaltungen nebneinander packen und verschalten möchte

Es ist aber noch leichter 8 bzw. 16 "uniforme" Schaltungen zu verbauen ;)

Die ALUs selbst sind bei NV wesentlich simpler als bei ATI (daher auch der hohe Takt)

Savay
2010-09-26, 21:14:53
Die Frage ist nur wann das der Fall ist, mit "1D" ist man einfach immer nahe am Optimum, mit 4D/5D nur in ausgesuchten Fällen.

wenn man 4D oder 5D einheiten verbaut nimmt man doch bewusst inkauf das sie nur selten zu 100% ausgelastet werden können :tongue:
eine 100% auslastung ist doch nur dann relevant wenn man es darauf anlegt das möglichst viele der verbauten transistoren möglichst oft schalten.

wirklich relevant für einen chiphersteller ist aber letzten endes die komplexität eines designs und die flächeneffizienz!
beim fermi ist das nicht grade optimal (auch wegen des DP schnickschnack der ja nochmals in extraeinheiten resultiert, im ggs zu den Vec5 einheiten des RV870 einheiten die in dem fall "zusammengefasst" werden.)...

zumal die vielen schaltenden transistoren sich auch negativ auf den energieverbrauch und die perf/W auswirken. :smile:

beim G80 war sowohl die energieeffizienz als auch die flächeneffizienz im vergleich zum R600 noch wesentlich besser...dieses verhältniss ist bis zum GF100 kontinuierlich schlechter geworden...bei den AMDs dagegen seit dem R600 besser.

der R600 war da ja richtig grottig...unter anderem auch weil das frontend und der ganze rest im vergleich zu den shadern wesentlich mehr diefläche eingenommen hat als bei den neueren inkarnationen.


Macht keiner, du bist der Einzige der in 1D den "Todesstoß" sieht.

wo habe ich das geschrieben? ;D



Bei echtem 1D wäre das so, nur gibt es bei Nvidia eben nicht wirklich 1D, das will uns nur das Marketing sagen.
In Wirklichkeit arbeitet man mit 8D (G80-G2xx) bzw. mit 16D (ab GF100)-Hardware. Der Trick besteht nur darin, die Befehle so umzusortieren, dass es für die Software wie 1D aussieht.

die sogenannten Vec5 einheiten sind doch auch nicht als Vec5 sortiert sondern in VLIW blöcke oder auch "wavefronts" :freak:
das ändert immernoch nichts daran das für jede ausführungseinheit in einer "1D ALU" eine separate steuerlogik aussen rum gebaut werden muss...
ist doch klar das man relativ gesehen transistoren spart wenn man diese steuerlogik nur für je 5 einheiten bauen muss.
das im worst case vielleicht nur 1 der 5 einheiten auslasten kann nimmt man halt einfach inkauf.

die granularität ist bei den Vec1+n einheiten somit zwar schlechter...allerdings bekommt man wie gesagt ja auch andere vorteile.


Es ist aber noch leichter 8 bzw. 16 "uniforme" Schaltungen zu verbauen ;)

Die ALUs selbst sind bei NV wesentlich simpler als bei ATI (daher auch der hohe Takt)


wenn du die ausführungseinheiten und die logik drum rum als geschlossenen block betrachtet stimmt das... :rolleyes:

die komplexität der rechenwerke spielt dabei ausserdem eigentlich garkeine rolle und ist nochmals ein gänzlich anderer sachverhalt...du bekommst nunmal prinzipiell kein funktionierendes rechenwerk ohne die dazugehörige steuerlogik hin.
ich spreche davon das das die shadercores selber dichter gepackt werden können wenn sie datenparallel arbeiten, aus der selben logik bedient werden und somit problemlos physikalisch nebeneinander angeordnet können.
ob man nun nen Vec1 hochfrequenz design baut oder nicht ist garnicht wichtig...man könnte ja auch wenn man masochist ist versuchen ein Vec5 hochfrequenzdesign zu bauen. nur die rahmenbedingungen was den prinzipiellen aufbau der ALUs betrifft bleiben dann ja trotzdem noch die gleichen.
wenn ich datenparallele ALUs nutze spare ich transistoren, muss aber im gegenzug eine schlechtere granularität inkauf nehmen.

das ist ja bei den aktuellen designs auch ganz offensichtlich so der fall... :smile:

Gast
2010-09-26, 23:02:06
Vergleich zwischen Diesel- und Otto- Motor:
- Der Dieselmotor ist effizienter (hat einen höheren energetischen Wirkungsgrad), zudem stellt er weniger Anforderungen an den Kraftstoff.
- Der Otto- Motor ist effizienter (erreicht eine höhere Leistung pro installiertem Gewicht), zudem kostet er weniger in der Herstellung.
/ Computer - Auto - Analogie
Wenn von "Effizienz" die Rede ist, meint man ja immer das Verhältnis Output/ Input. Eine klare Definition der beiden ist sehr hilfreich.
Je nachdem, welcher Faktor entscheidend ist, wird die eine oder die andere Lösung bevorzugt!
Deshalb werden Dieselmotoren kaum in Motorräder und Flugzeuge, dafür auch kaum Benzinmotoren in Lokomotiven und Frachtschiffe verbaut.
/ Oops

Gasti
2010-09-26, 23:29:09
Der RV870 soll Kreise um einen nicht ausgebremsten GF100 in DP ziehen? Sicher nicht. Natürlich wird man immer ein Szenario schaffen können in dem die theoretische Rechenleistung eines Chips praktisch vollständig ausgelastet wird. Die Frage ist nur wann das der Fall ist, mit "1D" ist man einfach immer nahe am Optimum, mit 4D/5D nur in ausgesuchten Fällen. usw...


So einfach ist Das nicht.
NV setzt auf einen Hardwarescheduler, der auch für die gute Auslastung verantwortlich ist, aber eben viele Transistoren und Diefläche benötigt.
Der scheduler bei AMD ist in software und spart wiederum transistoren ein.

Zur Auslastung:
Selbst bei Spielen soll die Auslastung bei 3.5/5 liegen, bei GPGPU-Anwendungen dürfte der wert noch wesentlich besser sein.

Dass man eine bessere Stronversorgung benötigt, wenn die Einheiten besser ausgelastet werden ist auch Käse, da der Chip immer noch zu einem Großteil aus FF-Logik besteht. Nur weil Programme wie Furmark auch diese voll Auslasten gibt es einen derart hohen Stromverbrauch.

In der Theorie mögen nahe zu 100% auslastbare Einheiten toll sein, aber in der Praxis benötigt man wohl deutlich mehr Fläche (und wahrscheinlich auch Transistoren und Energie) für die selbe Leistung.

Nighthawk13
2010-09-27, 11:36:50
So einfach ist Das nicht.
Zur Auslastung:
Selbst bei Spielen soll die Auslastung bei 3.5/5 liegen, bei GPGPU-Anwendungen dürfte der wert noch wesentlich besser sein.

Kann man so nicht verallgemeinern.

Manche Aufgaben sind massiv parallel auf Threadlevel(Matrix-Matrix-Multiplikation von grossen Matrizen z.B.), da geht ATIs VLIW-Konzept voll auf.
Andere Aufgaben lassen sich nicht so effektiv auf VLIW abbilden(Suchen in Binärbäumen beim Raytracing z.B., mit vielen kurzen Codeabschitten in if-Abschnitten), da hat Nvidias 1D mit hoher Taktrate Vorteile.

Klassische Spiele-Shader(viel Vektor-Rechnen, wenig bedingte Sprünge) sind schon ziemlich VLIW-freundlich.

Gast
2010-09-27, 13:39:44
Selbst bei Spielen soll die Auslastung bei 3.5/5 liegen, bei GPGPU-Anwendungen dürfte der wert noch wesentlich besser sein.

Vec4/5 ergibt sich aus den Anforderungen an Grafikberechnungen, Pixelshader waren immer Vec4 (RGBA) bzw. Vertexshader Vec5, als man bei ATI beide zusammengefasst hat ist man bei Vec5 geblieben.

Bei anderen Berechnungen dürfte die Auslastung im Allgemeinen eher deutlich geringer sein, wobei es sicher Spezialfälle gibt in denen sie auch deutlich höher liegt.

Gasti
2010-09-27, 13:51:50
Kann man so nicht verallgemeinern.

Manche Aufgaben sind massiv parallel auf Threadlevel(Matrix-Matrix-Multiplikation von grossen Matrizen z.B.), da geht ATIs VLIW-Konzept voll auf.
Andere Aufgaben lassen sich nicht so effektiv auf VLIW abbilden(Suchen in Binärbäumen beim Raytracing z.B., mit vielen kurzen Codeabschitten in if-Abschnitten), da hat Nvidias 1D mit hoher Taktrate Vorteile.

Klassische Spiele-Shader(viel Vektor-Rechnen, wenig bedingte Sprünge) sind schon ziemlich VLIW-freundlich.

Wie du schon sagst in den Breichen für die die GPU designed wurde ist das Konzept ausgezeichnet.
Für Software mit vielen Programmsprüngen/Bedingungen etc. sind die GPU-Core eh nicht gemacht. Da sind andere Konzepte einfach effizienter.

Gasti
2010-09-27, 13:54:02
Vec4/5 ergibt sich aus den Anforderungen an Grafikberechnungen, Pixelshader waren immer Vec4 (RGBA) bzw. Vertexshader Vec5, als man bei ATI beide zusammengefasst hat ist man bei Vec5 geblieben.

Bei anderen Berechnungen dürfte die Auslastung im Allgemeinen eher deutlich geringer sein, wobei es sicher Spezialfälle gibt in denen sie auch deutlich höher liegt.

Ati hat keine Vektorrechner sondern VLIW.
Die einzige Bedingung die für diese gelten ist, dass Sie unabhängig voneinander
sein müssen.

Ailuros
2010-09-27, 14:29:57
NV versucht mit einem Multi-Skalarrechner Vektoraufgaben zu lösen - das kann nicht effizient sein.

Marketing-Gefusel zur Seite ich sehe keine im strengen CPU Sinn skalaren Einheiten bei NV noch irgendwelche "Vektor-aufgaben". Aber wenn's nach der eher krummen Logik sein muss lass mal einen Entwickler scalaren code "vektorisieren" und lass Dich von der Antwort ueberraschen.

Ich verstehe auch überhaupt nicht, warum da alle so versessen darauf sind. Natürlich ist das besser programmierbar und einfacher handhabbar, wenn man auchmal andere Aufgaben lösen möchte.

Ergo wohl doch nicht eine so grosse Schnappsidee am Ende oder?

Aber das ist ja wohl nicht der Sinn dieses Teils - das Ding soll Vektoraufgaben lösen und das möglichst schnell. Das ist der Grund warum Fermi scheitert, auch im GP-Bereich.

Das mit den angeblichen vektoraufgaben muss mir jemand mal erklaeren und dann direkt danach in welchem GP Bereich Fermi genau scheitern soll.

Sicher im Moment gibt es nicht besseres, das muss aber nicht so bleiben. Ich sehe die 1D-Technik als einen schweren Nachteil an ggü. platz- und stromsparenden 4D Einheiten.

Und diese Einsicht basiert auf was genau?


AMD überlässt NV die grossen Werbeausgaben, wird aber dennoch an dem Markt partizipieren.

Falls dieses fuer die professionellen Maerkte gelten sollte sehe ich nichts davon in absehbarer Zukunft. NVIDIA investiert hier hauptsaechlich grosse Summen in sw Unterstuetzung was sich auch zu ihrem Vorteil ausspielt. Wenn man wenig investiert, hat man auch keine grossen Erwartungen.


AMD ist nicht so unter Zugzwang wie NV, man hat ja auch x86-CPUs und in 2011 wohl auch garnicht mal so langsame. Warum sollte AMD sich in der Werbeschlacht beteiligen? Man wird hinterher so oder so die Früchte miternten. Ich sehe das eher so, dass NV massiv unter Zugzwang ist und sich mit seiner 1D-Technologie total verrennt. Ich sehe da die Gefahr, dass die an AMD grafiktechnisch den Anschluss verlieren und bei GP-Leistung von AMD und Intel überholt werden ...

Na dann geh aber bloss keine grossen Wetten ein was das letztere betrifft.

Wer garantiert mir ueberhaupt dass in Zukunft GPU ALUs nicht dazu faehig sein koennten sowohl scalare als auch VLiW Befehle mit gleicher Effizienz bearbeiten koennten? Und der einzige Punkt in solch einem Fall waere dass (wenn moeglich) man die positiven Punkte zwei verschiedener Loesungen kombiniert man vielleicht einen groesseren Gewinner haben koennte als auf nur die eine oder die andere Seite zu setzen und ja natuerlich gibt es auf beiden Seiten sowohl Vor- als auch Nachteile.

AMD hat nach wie vor CPUs als Kern-geschaeft und NV hat mit CPUs nichts zu tun. Dass es fuer NVIDIA eng werden wird dank PC/notebook SoCs von INTEL und AMD weiss in der Zwischenzeit wohl fast jeder. Mir persoenlich machen NV's Tegra relevante Projektionen fuer die Zukunft keinen besonderen Sinn, aber generell konzentrieren sie sich nach wie vor hauptsaechlich auf die Profi-Maerkte und diese Konzentration beinflusst eben zu einem Teil auch mainstream Produkte. Stichwort fuer NV ist hier eher CUDA als alles andere und dieses ist auch der eigentliche treibende Entwicklungs-zug fuer NV's roadmap selber.

Nighthawk13
2010-09-27, 14:53:33
Wie du schon sagst in den Breichen für die die GPU designed wurde ist das Konzept ausgezeichnet.
Für Software mit vielen Programmsprüngen/Bedingungen etc. sind die GPU-Core eh nicht gemacht. Da sind andere Konzepte einfach effizienter.
Bedingte Sprünge sind auf der GPU an sich nicht schlimmer als auf der CPU, solange sie für alle Elemente eines Warps/Wavefront gleich ausfallen(meistens zumindest).
Sonst wäre Raytracing auf der GPU nicht performant möglich.

Ob eine Software für GPUs(oder Parallelrechner im allgemeinen) geeignet ist, hängt hauptsächlich davon ab, ob sich das Problem in viele gleichartige Threads aufteilen lässt.

Savay
2010-09-29, 22:51:35
.
Andere Aufgaben lassen sich nicht so effektiv auf VLIW abbilden(Suchen in Binärbäumen beim Raytracing z.B., mit vielen kurzen Codeabschitten in if-Abschnitten), da hat Nvidias 1D mit hoher Taktrate Vorteile.

lässt sich beim raytracing nicht prinzip bedingt das bild hervorragend in voneinander unabhängige tiles aufteilen? :confused:
es dürfte dann doch eigentlich kein allzu fundamentales problem darstellen diese tiles derartig auf ein VLIW abzubilden, dass die datenparallelität der rechnenwerke wunderbar ausgenutzt werden kann, oder begehe ich einen denkfehler?

LovesuckZ
2010-09-29, 23:07:07
Laut nVidia profitiert Raytracing deutlich vom L1 Cache. Eine GTX480 ist mit Raytracing auch ca. 4x schneller als eine GTX285 bei nichtmal doppelt so hoher MADD-Rechenleistung.

Nighthawk13
2010-09-30, 11:35:28
es dürfte dann doch eigentlich kein allzu fundamentales problem darstellen diese tiles derartig auf ein VLIW abzubilden, dass die datenparallelität der rechnenwerke wunderbar ausgenutzt werden kann, oder begehe ich einen denkfehler?
Ich meinte die Instruktions-Parallelität innerhalb eines Threads, für einen Pixel:
- Wenn der Code durch if-Anweisungen in kleine Abschnitte unterteilt ist, hat es der Compiler relativ schwer, je 5 unabhängige Instruktionen zu finden um ein VLIW aufzufüllen.
- Wenn es nur einen grossen Block gibt(klassischer Pixelshader ohne loop/if), wo alle Instruktionen anhand ihrer Abhängigkeiten umsortiert werden können, hat der Compiler einfach eine grössere Auswahl und damit eine höhere Wahrscheinlichkeit, die VLIW aufzufüllen.

Coda
2010-10-02, 04:24:45
NV versucht mit einem Multi-Skalarrechner Vektoraufgaben zu lösen - das kann nicht effizient sein.
Sorry, aber hier habe ich aufgehört zu lesen. Du solltest dringend mehr über das Thema wissen bevor du solche Aussagen tätigst.