Locuza
Lötkolbengott/-göttin
Für Modeerscheinungen kommt kein Industriegremium zusammen, um etwas für die nächste Dekade als Standard zu spezifizieren.[...]
Weder Vulcan noch Mantel sind der Grund für Dx12 als Lowlevel-Api. Lowlevel Api sind halt einfach wieder "in mode" obwohl sie gewaltige Nachteile haben.
Lustigerweise ist es OpenGL das heir Vorreiter ist - und dann behaupten leute auchnoch Vulkan sei die Weiterentwicklung....
Natürlich hat alles seine Vor- und Nachteile, Vulkan und DX12 sind weitere Tools in der Entwicklung, welche Probleme adressieren, die vorherige APIs nur noch suboptimal erfüllen (werden).
Wo war übrigens hier OGL der Vorreiter? Auf AZDO-Folien und einer Implementierung die nur bei Nvidia robust funktioniert?
Ist es nicht, es ist ein Konzept welches dem Entwickler hilft seinen Workload näher zu spezifizieren und der GPU dabei helfen kann den Workload besser einzuteilen, mit Prioritätsmarkern ist auch mehr Kontrolle über den Arbeitsablauf möglich.Auch Hat nvidia ganz normal Dx12 in Hardware - sonst würde das ganze nicht wirklicch rund Laufen. Nur es gibt eben dafür verschiedene Ansätz. So hat zB AMD Async-Compute mehr als nur ein bisschen gehyped - denn im Grunde ist es ncihts anderes als eine Entschuldigung das ganze Scheduling den Software-Entwicklern auf den Hals zu brummen. Und bei nvidia? ja, sie haben ganz normal Dx12 Async Compute in Hardware - schon seit viele Generationen. Nur eben wird hier auf einen anderen Ansatz gesetzt: Die GPU wird von haus aus vollkommen ausgelastet und das Scheduling von Graphic- und Compute-Workloads funktioniert einwandfrei. Nur wenn dann ein programm auf die idee kommt das ganze Scheduling über den haufen zu werfen und einfach fröhlich drauf los dauerhaft context-switches durchführt dann leidet die Leistung unter der grotten schlechten Programmierung.
Die GPUs bei Nvidia sind typischerweise besser ausgelastet, aber nicht vollständig und teilweise auch nicht, weil eben das Hardwaredesign limitiert.
Auch Nvidia verwendet Fixed-Function-Hardware für das Rendering und besitzt mehrere interne States, Anwendungen belasten unterschiedliche Hardwareteile, wenn der Entwickler spezifiziert du kannst im Zeitraum x 3D und Compute wie es dir beliebt verwalten, dann kann das potentiell bei jedem die Idle-Times kürzen, Voraussetzung ist natürlich ein flexibles Scheduling-Model, welches die Hardware selber unterstützen muss.
Kepler und Maxwell tun es nicht, die ignorieren die zusätzlichen Compute-Queues und vereinfachen das Scheduling indem wieder alles in die 3D-Queue gepackt wird.
Pascal führt aber Dynamic-Load-Balancing und Pixel/Instruction-Level-Preemption ein, jetzt funktioniert das Konzept auch unter Nvidia.
Von Nvidia selber auf der GDC im März 2017:
GDC: NVIDIA betont die Vorteile von Async Compute - Hardwareluxx
In jedem Fall, wo die CPU schwach ausfällt und in einer Welt, wo wir stärkere GPUs besitzen, uns mehr Objekte leisten können und nicht alles zwanghaft instancen müssen, damit der Overhead nicht explodiert.Ist das selbe wie auch mit den "Vulkan/Dx12 können soooo viele drawcalls" bullshit.
In wlechem fall bringt sowas einen Vorteilß Ach ja - nur wenn gegen jede Vernunft alles von CPU-seiten her gemanaged wird, der Hardware-scheduler umgangen und jedes einzelne Objekt als drawcall gesendet wird. leistungstechnisch ein Abltraum da man nicht nur eine vorhande Hardwarefunktion in Software implementiert sondern die ganzen daten nun auchnoch von der Cpu zur GPU gestreamed werden müssen.
Reuse - Reduce - Recycle:Fiji done right reicht aber wohl eben nicht AMD
Wenn das Ding genau aufgebaut ist wie schon 2015 Fiji, wenn auch inklusive GCN 5/1.4 und wir sogesehen nur auf 14nm gesprungen sind, wieso ist das Ding von 596mm² nur auf knapp unter 500mm² gesunken?
Das einzige was ich mir spontan denken kann, ist das VEGA seine Rohleistung dank Neuerungen weitaus besser auf die Straße bringen kann... als Fiji und co und man deswegen wenig mehr Rohleistung braucht?
Bei der gleichen Packdichte wie bei Polaris 10 wäre Fiji ~ 360mm² groß.
Hawaii (GCN Gen 2): 14,2 Millionen Transistoren pro mm² (6,2 Mrd. Transistoren / 438mm²)
Tonga (GCN Gen 3) : 13,9 Millionen Transistoren pro mm² (5 Mrd. Transistoren / 359mm²)
Fiji (GCN Gen 3): 14,9 Millionen Transistoren pro mm² (8,9 Mrd. Transistoren / 596mm²)
Polaris 10 (GCN Gen 4): 24,4 Millionen Transistoren pro mm² (5,7 Mrd. Transistoren / 234mm²)
Eher kleiner, da Fiji eine höhere Packdichte erreicht hat, als andere GCN-Chips.
Was könnte Vega 10 so aufpumpen im Vergleich zu Fiji?
Ein paar Dinge aus folgendem Menü:
Von Gen 4:
- Instruction Buffer sind größer geworden
- Intstruction Prefetch wird unterstützt
- Primitive Discard Accelerator
- Die Geometry-Engines puffern jetzt die meshes selber, nicht mehr der L2$.
- Die verbesserte Delta-Color-Compression
Von Gen 5:
- Draw-Stream-Binning-Rasterizer
- Der Rasterizer wird nun auch Conservative Rasterization unterstützen
- Die Instruction Buffer werden erneut vergrößert
- Die ALUs sollen eine höhere Taktrate unterstützen
- Die ALUs werden Double-Rate FP16 unterstützen, aktuell ist es nur Single-Rate und vermutlich ist vierfach Int8 auch etwas neues, was GCN Gen 4 noch nicht konnte
- Die Geometry-Engines werden den theoretischen Durchsatz von einem Dreieck auf 2,75 erhöhen (liest sich krude, gilt vielleicht nur für spezielle Fälle), was insgesamt 11 Dreiecke pro Takt bedeutet, anstatt 4 wie bei Fiji.
- Die ROPs sind nun die Clients vom L2$, weswegen AMD möglicherweise auch Rasterizer Ordered Views unterstützt, es könnte sein das deswegen der Flächenbedarf steigt.
- Da der Rasterizer jetzt Kacheln im L2$ speichert und auch die ROPs die Konsumenten vom L2$ sind, wird die Kapazität vom L2$ garantiert steigen, vermutlich von 2MB auf 4MB.
- Und AMD hat noch mehr Dinge getan, die aktuell noch nicht genannt wurden.


