Bericht 15 Jahre Radeon: Ein Rückblick auf Grafikkarten von ATi und AMD

Asimo schrieb:
Hier ist noch ein interessanter Artikel von der Grafikkartenära vor den großen Durchbruch von Ati und Nvidia.

Danke für den Link. Allerdings würde ich nicht von AMD/Nvidias Durchbruch reden, sondern vom Durchbruch der Echtzeit-3D-Grafik (auch wenn letztlich gerade die beiden Firmen davon am meisten profitiert haben).
 
Mr.Seymour Buds schrieb:
GeForce = Spieler
Quadro = Wissenschaft und Technik
Tesla = Wissenschaft und Technik

Der Unterschied zwischen GeForce, Quadro und Tesla sind die Treiber. Nehmen wir GK110. Das war der größte Chip von Kepler. Bei den Gaming Karten war bis auf der Titan die DP-Einheiten künstlich beschnitten.
http://www.tomshardware.de/geforce-...rks-grafikkarten-gpu,testberichte-241425.html
Die GeForce GTX 780 Ti wird diesbezüglich dagegen genauso von Nvidia kastriert wie die GTX 780: Der Treiber der Karte betreibt die FP64-Einheiten der GK1110 absichtlich mit einem Achtel des GPU-Taktes. Wenn man das mit dem 3:1-Ratio von Single- zu Double-Precision-CUDA-Kernen multipliziert, kommt man auf 1/24 der Taktrate. Rechnet man das aus kommt man auf eine Single-Precision-Rechenleistung von schmucken 5 TFLOPS, aber nur auf eine Double-Recision-Rechenleistung von 210 GFLOPS.

Das heißt, bei dem GK110 sind DP-Einheiten per Hardware vorhanden. Bei Gaming Karten werden sie per Software (teils auch per Hardware) aber limitiert, so wie im Artikel erklärt.

Vor dem Release des GM200 wurde der GK210 eingeführt. Also ein "Refresh" des GK110. Wieso sollte NV das machen, wenn sie doch GM200 hätten. Ganz klar, weil GM200 keine DP-Einheiten hat. Und wenn diese nicht vorhanden sind, sind auch keine große DP-Performance vorhanden.
Somit es gibt nichts was beschnitten werden könnte. Vom GM200 gibt es maximal eine Quadro, die nur mit Single-Thread Performance beworben wird.
https://www.computerbase.de/2015-03/nvidia-quadro-m6000-hat-zu-wenig-speicher/
Angesprochen auf die Tesla-Serie und die vollkommen kastrierte Double-Precision-Leistung der GM200-Chips auf nur noch 1/32tel (0,2 TFLOPs) der Leistung bei einfacher Genauigkeit (7 TFLOPS) steht für diese Lösungen ein schwieriges Jahr vor der Tür. Es gebe zwar Einsatzgebiete für Tesla, in denen Single-Precision-Leistung gefragt sei, diese machten mit 40 bis 45 Prozent des Umsatz aber den kleineren Geschäftsbereich aus, gab PNY zu verstehen. Hier soll die nächste Generation, Codename Pascal, Abhilfe schaffen – aktuell verweist Nvidia weiter auf die Vor-Vorgängergeneration Kepler.

Die DP Performance der GM200 als Quadro ist offensichtlich genauso hoch, wie jene der Geforce 780 GTX Ti, welcher ein Kepler ist.
Aus diesem Grund hat NV kein einziges Wort über die DP-Performance der Karte gesprochen. Stattdessen hat man bei GM200 die Performance von 32FP beworben und bei Tegra K1 hat man sogar mit 16FP beworben, weil man da schön von einem Teraflop sprechen kann. Marketing at it's best.
 
Zuletzt bearbeitet:
Mr.Seymour Buds schrieb:
Daedal,

alle Nvidia GeForce GPUs sind extra für Spieler und nur für Spieler. Da ist nichts mit "Profisektor"....

Der wissenschaftliche Bereich und der professionelle Bereich in den Betrieben kauft Quadro oder Tesla, hau das endlich in deinen Kopf!

Ist doch ganz einfach:

GeForce = Spieler
Quadro = Wissenschaft und Technik
Tesla = Wissenschaft und Technik

Was gibt es daran nun nicht zu verstehen?
Nun ich schrieb Maxwell und nicht GeForce. Und wir sprachen über Titan, die auch keine Geforce ist, ebenso wenig wie Quadro und Tesla. Da nun Games anfangen DP zu nutzen, ist das nun mal auch ein Feature, eines das der Maxwell Reihe fehlt. Und der Profisektor wird hier, sicher nicht freudig, aufgegeben für eine ganze Generation. Das spricht auch nicht unbedingt für mehr Gewinnmarge wenn man es opfert für die schnellste Gamer GPU.
 
Zuletzt bearbeitet:
Korrigiert mich, wenn ich falsch liege, aber DoublePrecision für die Modellierung einer OpenWorld in einer Game-Engine hat erstmal nix mit dessen Rendering auf der GPU zu tun. Das Handling der Daten ist Sache der CPU. Was dann an die GPU für die Darstellung der Landschaft geht, das kann weiterhin SP sein.
 
Mr.Seymour Buds schrieb:
zeedy: Du bist nen Troll. Lies die Whitepaper.

Wenn man keine Ahnung hat, einfach mal die Fresse halten ;)

@Daedel doch Titans sind auch Geforces.
 
zeedy schrieb:
@Daedel doch Titans sind auch Geforces.
Dachte der Titan Brand ersetzt den GeForce Brand. Vor allem da die erste Titan besonders mit DP Leistung als Semi-Profi GPU seinen Preis gerechtfertigt hat.
 
Daedal schrieb:
DP Leistung als Semi-Profi GPU seinen Preis gerechtfertigt hat.

DP-Leistung ist nur ein Aspekt. Zertifizierte OpenGL-Treiber, 10bit pro Farbkanal, ... sind weitere (teure) Aspekte der Quadros.
 
Tja Titan ist nur eine Preisbrecher Marke, die Kundschaft soll das Gefühl haben eine besondere Grafikkarte zu haben. Dabei wurden die selben Chips verwendet wie bei den 780ern GTXen. Besonders ist bei den Titans nur der Name und eben der Preis.

Achso und jaja, die vorhandenen DP Einheiten der Kepler Teitan...mich würde mal der prozentuale Anteil der professionell eingesetzten Titans interessieren ;)
 
Zuletzt bearbeitet:
Faust2011 schrieb:
Korrigiert mich, wenn ich falsch liege, aber DoublePrecision für die Modellierung einer OpenWorld in einer Game-Engine hat erstmal nix mit dessen Rendering auf der GPU zu tun. Das Handling der Daten ist Sache der CPU. Was dann an die GPU für die Darstellung der Landschaft geht, das kann weiterhin SP sein.
Nur wenn man weiterhin die Beschränkungen und Limits in offenen Welten behalten möchte. So wie du es beschreibst war es bisher. Doch hier kommen Skalierungsprobleme wenn Einheiten unterschiedliche Entfernungen zueinander haben.
https://forums.robertsspaceindustries.com/discussion/119797/double-precision-gpu
Also for those who wonder why the GPU uses double precision:

http://en.wikipedia.org/wiki/General-purpose_computing_on_graphics_processing_units

Rumor is that the future nVidia 1000 and 1100 series are going to feature a unified standard memory architecture, so that the RAM on the graphics card and the RAM on the mainboard can be used by the CPU or GPU interchangeably. So the GPU can use system RAM and the CPU can use video RAM directly.

http://en.wikipedia.org/wiki/Pascal_(microarchitecture)#PASCAL
Mann muss einfach mal klar erkennen, dass gemeinsamer Adressraum für CPU und GPU auch tatsächlich DP benötigt, sobald die CPU in 64-bit Koordinatensysteme anlegt.
Mantle, HSA und auch DX12 sind in der Lage CPU und GPU mit einem gemeinsamen Addressbereich zu bedienen. Das kann man virtuell machen wie Nvidia, oder auch in Hardware was eben auch Performance bringt und mit Pascal auch hier nachgezogen wird mit AMDs hUMA.
 
Das Thema kam nun schon zu genüge auf. Es gibt nicht gerade wenig Titanen (keine X) in Workstations u.ä..
 
Faust2011 schrieb:
DP-Leistung ist nur ein Aspekt. Zertifizierte OpenGL-Treiber, 10bit pro Farbkanal, ... sind weitere (teure) Aspekte der Quadros.
Ich schrieb doch deutlich Titan. Diese haben die Quadro Features nicht.
 
Zu dem Star Citizen Ding da.... Foren-Gerede und nicht mehr. Zudem geht's dort um Rechenaufgaben für CPU basierte Prozesse. Selbst der Threadersteller hat das dann erkannt.
Hier wird einfach mit Links um sich geschmissen die genau null Inhalt haben und so getan als würden sie irgendwas begründen.

Irgendwie glaube ich, dass es einigen wirklich nur um stumpfsinniges "schlechtreden" anderer geht. Wird's über die gegenwärtigen Fakten und nachprüfbaren Dinge schwer (Leistung, Effizienz), dann versucht mans über vermeintlich (!) fehlende "Features" nichtwahr, Daedal. 😬

Nachtrag: bevor du also hier links zu angestaubten forenthreads postest, solltest du diese ggf. lesen.

Die Antwort auf die Frage, was das letztlich wirklich clientseitig bringen soll (nicht verwechseln mit den Entwicklern) ist auch künftig: Wenig bis nichts.
 
Zuletzt bearbeitet:
Das ist kein Forengerede, sondern der Forenthread basiert auf einem Interview von Chris Roberts. Quellen muss man lesen und auch den Kontext begreifen um sich dann dazu zu äußern. Vor allem wenn man es dann auch noch öffentlich macht und jeder nachlesen kann wie nachlässig man mit Fakten umgeht.

Forengerede ist das was du gerade machst. Nur Gerede. Ich empfehle etwas Lesestoff zu ACE, hUMA und DX12 und warum DP dort wichtig ist bei gemeinsamen Speichern.
 
Und wenn die CPU und die GPU in einem gemeinsamen Adressraum schreiben und daraus lesen wollen braucht es eine GPU die die selben Addressgrößen nutzt. Welche Erleuchtung benötigst du da noch?
 
Korrigiert mich, wenn ich falsch liege, aber DoublePrecision für die Modellierung einer OpenWorld in einer Game-Engine hat erstmal nix mit dessen Rendering auf der GPU zu tun. Das Handling der Daten ist Sache der CPU. Was dann an die GPU für die Darstellung der Landschaft geht, das kann weiterhin SP sein.

Man sollte sich erst überlegen, bei welchen FP-Berechnungen große Fehler auftreten. Generell gilt, dass je größer eine FP-Zahl wird, desto geringer wird ihre absolute Auflösung. Deshalb ergeben sich für Spiele Genauigkeitsprobleme primär bei folgenden Operationen:
1. Die Differenz zwischen zwei ähnlich großen Zahlen (Auslöschung)
2. Die Addition zwischen einer großen Zahl und einer kleinen Zahl (Absorption)

Sowohl Auslöschung und Absorption sind bei Computerspielen nur für die "translatorischen" Positionen (nicht einmal für die Rotation) der Objekte von Bedeutung. Denn nur die Positionen der Objekte nehmen als einzige Größe im Spiel einen entsprechenden großen Werteintervall ein, bei welchem man sich zusätzlich eine entsprechende hohe absolute Auflösung wünscht. Ist beispielhaft die Genauigkeit der Positionen in dem gegebenen Werteintervall zu gering so liefert die Abstandsbestimmung zwischen zwei Objekten, die zu weit vom Ursprung entfernt sind, wegen Auslöschung einen großen Fehler. Die Abstandsberechnung wird zum Beispiel in der Physik für das Berechnen der Kräfte zwischen zwei Objekten benötigt, oder alternativ für den Zeichenprozess, um zu bestimmen wie das Objekt sich relativ zur Kamera befindet. Analog tritt die Absorption auf, wenn die Bewegung von einem Objekt berechnet wird. Denn für die Zeitdiskretisierung berechnet man die neue Position über eine explizite Integration, also zum Beispiel mit Euler: Neue Position = Alte Position + Geschwindigkeit * Zeitschrittgröße. Die Ursache für die Absorption bei der Integration ist, dass die alte Position im Vergleich zum Produkt zwischen Geschwindigkeit und Zeitschrittgröße sehr groß ist.

Somit beschäftigen sich die Problemlösungen für die mangelnde SPFP-Genauigkeit bei Computerspielen primär damit, wei man Auslöschung und Absorption bei den Objektpositionen vermeiden kann. Dafür existieren folgende Ansätze um die Welt dementsprechend zu modellieren:

1. Space-Partitioning-Datenstrukturen mit lokalen Koordinatensystemen und einfacher Genauigkeit:
Vorteile: Potentiell keinen oder nur kaum zusätzlichen Speicherplatzverbrauch, auch potentiell fast so schnell wie reine SP-Berechnungen, kommt ohne DP aus
Nachteile: Komplizierter zu programmieren wegen der Umrechnung zwischen den Koordinatensystemen, gerade wenn man die Vorteile nutzen möchte

2. Alles in DP-Berechnen:
Vorteile: Einfach zu programmieren; alle Berechnungen sind sehr genau
Nachteile: Langsam, hoher Speicherplatzverbrauch, dennoch ein Umformen von DP zu SP nötig, da die GPU nicht DP überall in der Rasterpipeline unterstützt

3. Adaptive Genauigkeit:
Idee: Man speichert zwar die Positionen in doppelter Genauigkeit ab. Sobald die einfache Genauigkeit jedoch für die folgenden Berechnungen reicht (zum Beispiel nach der Berechnung des Abstandsvektors) wandelt man die Zwischenergebnisse zu der einfachen Genauigkeit um. Analog wird das Inkrement bei der Positionsänderung so spät wie möglich zu DP umgerechnet.
Vorteile: Meist fast so schnell wie reines SP, je nach Anwendungsfall kaum DP benötigt
Nachteile: Etwas umständlicher zu programmieren

Da die zweite Möglichkeit bei sehr aufwändigen FP-lastigen Berechnungen extrem langsam ist, muss man dort für die Performance die 1. oder die 3. Möglichkeit verwenden. Afaik werden deshalb diese Möglichkeiten auch meist bei sehr rechenaufwändigen Anwendungen in Spielen verwendet.

Wie spielt das nun für die GPU eine Rolle:
Führt die GPU nur das Rendering durch, so muss ihr die CPU die entsprechenden Objektpositionen relativ zur Kamera mitteilen. Da die meisten Objekte klein sind reicht für diesen Abstandsvektor selbst die einfache Genauigkeit aus. Für die Berechnung des Abstandsvektors auf der CPU wird jedoch wegen der Auslöschung die doppelte Genauigkeit benötigt. Dadurch kann die GPU weiterhin komplett in einfacher Genauigkeit rechnen. Nur bei extrem großen Objekten wird der Abstandsvektor auf der GPU in doppelter Genauigkeit benötigt, was wohl die absolute Ausnahme sein sollte. Nachdem die Vertexe allerdings mit dem Abstandsvektor transformiert worden sind kann auch in diesem Fall mit einfacher Genauigkeit weitergerechnet werden. Ergo benötigt die GPU alleine für das Rendering unabhängig von der Implementierung der Spielwelt keine DP-Performance.

Führt die GPU zusätzlich GPGPU mit der Spielwelt durch, dann ist die benötigte DP-Performance von der Modellierung der Spielwelt abhängig. Bei GPGPU in Spielen lohnt es sich die GPU allerdings nur bei sehr rechenaufwändigen Aufgaben zu verwenden, wo eine hohe Performance zudem zwingend erforderlich ist. Die Modellierungsmöglichkeit der Space-Partitioning-Datenstrukturen mit lokalen Koordinatensystemen und die Modellierungsmöglichkeit der adaptiven Genauigkeit sind aber performancetechnisch gegenüber den Ansatz alles mit DP zu berechnen vorteilhaft und benötigen beide keine oder nur kaum DP-Performance, weshalb man sich meist für einen der ersten beiden Ansätze entscheiden wird. Deshalb benötigt die GPU selbst in diesem Fall keine oder nur kaum DP-Performance

Ich hoffe, dass die Erklärungen soweit anschaulich und korrekt sind. Ist leider etwas der Overkill geworden die Antwort. :(
 
Zuletzt bearbeitet:
Armandex0 schrieb:
.
So stehts sind "deiner" Quelle und auch im Eröffnungspost. Aber erleuchte die Welt bitte...

Ich haben die verlinkte Diskussion auch so verstanden, dass es hier um die CPU geht bzw. die Leute eigentlich selbst nicht wissen, wo denn nun die DP-Performance gebraucht wird :D


Nai schrieb:
Man sollte sich erst überlegen, bei welchen FP-Berechnungen große Fehler auftreten. [...]

Allein die Länge des Textes beeindruckt. Ich finde, wir sollten als nächstes den optimalen Ambient Occlusion Algorithmus diskutieren und weitere Optimierungsverfahren dazu eruieren. ;)
 
Und siehe da, die Kurzversion vom Text lautet: Für Spiele braucht man kein DP. Surprise, Surprise!
 
Nai schrieb:
1. Space-Partitioning-Datenstrukturen mit lokalen Koordinatensystemen und einfacher Genauigkeit:
Vorteile: Potentiell keinen oder nur kaum zusätzlichen Speicherplatzverbrauch, auch potentiell fast so schnell wie reine SP-Berechnungen, kommt ohne DP aus
Nachteile: Komplizierter zu programmieren wegen der Umrechnung zwischen den Koordinatensystemen, gerade wenn man die Vorteile nutzen möchte

2. Alles in DP-Berechnen:
Vorteile: Einfach zu programmieren; alle Berechnungen sind sehr genau
Nachteile: Langsam, hoher Speicherplatzverbrauch, dennoch ein Umformen von DP zu SP nötig, da die GPU nicht DP überall in der Rasterpipeline unterstützt


3. Adaptive Genauigkeit:
Idee: Man speichert zwar die Positionen in doppelter Genauigkeit ab. Sobald die einfache Genauigkeit jedoch für die folgenden Berechnungen reicht (zum Beispiel nach der Berechnung des Abstandsvektors) wandelt man die Zwischenergebnisse zu der einfachen Genauigkeit um. Analog wird das Inkrement bei der Positionsänderung so spät wie möglich zu DP umgerechnet.
Vorteile: Meist fast so schnell wie reines SP, je nach Anwendungsfall kaum DP benötigt
Nachteile: Etwas umständlicher zu programmieren

Da die zweite Möglichkeit bei sehr aufwändigen FP-lastigen Berechnungen extrem langsam ist, muss man dort für die Performance die 1. oder die 3. Möglichkeit verwenden. Afaik werden deshalb diese Möglichkeiten auch meist bei sehr rechenaufwändigen Anwendungen in Spielen verwendet.
Selektives Lesen in Reinform
Mr.Seymour Buds schrieb:
Und siehe da, die Kurzversion vom Text lautet: Für Spiele braucht man kein DP. Surprise, Surprise!
Die Möglichkeit 2 gilt für fehlende DP Performance und ist genau das was Star Citizen macht. Hier ist ein beginnen der Nutzung klar zu verzeichnen bei kommenden Spielen die offene Welten nutzen was ich auch genau so schrieb. Jetzt wurdest du informiert...nun musst du nur noch aufhören zu ignorieren.

Vor allem weil. Möglichkeit 1. Und 3. Nur so gut arbeiten wie die Programmierer gewillt und auch in der Lage sind den Programmieraufwand zu betreiben. Und selbst dann sind es keine Ergebnisse die nicht auffallen in Spielen. Das ist also nach wie vor nicht so gelöst wie es wäre wenn DP genutzt würden. Die Performance kommt nun in Bereiche wo es sich lohnt diese Methode anzuwenden...wenn man nicht gerade eine Titan gekauft hat.
 
Zuletzt bearbeitet:
Zurück
Oben