Raucherdackel! schrieb:
Aua, Aua... In der Überschrift des Artikels schon so ein schwerer Fehler. Der Begriff "Multi-GPU" wird erst seit DX12 verwendet, weil Microsoft die Unterstützung mehrerer Karten (herstellerunabhängig!) in DX12 integriert hat. Vorher - also von DX9.0c bis DX11 - war SLI/CF alleinige Sache des jeweiligen Herstellers.
Nein - der Begriff "Multi-GPU" ist hier einfach ein Synonym für die Verwendung von mehreren Grafikkarten zum Rendern. Nicht mehr und nicht weniger. Das wird übrigens auch nicht erst seit DX12 so verwendet sondern findet sich auch Jahre vor DX12 in den den Texten wieder.
Raucherdackel! schrieb:
So nutzt man SLI/Crossfire:
- zweite Karte rein bzw. aktivieren
- Kantenglättung im Treiber aktivieren. Aber entweder 2x/4x Multi Sampling ohne temporale Komponente oder 2x Supersampling - je nachdem wie gut die Skalierung ist.
SLI/Crossfire ist eher schlecht geeignet, um Leistung zu steigern. Läufts mit einer Karte nicht richtig, läufts auch mit mehreren nicht gut. Aber zur Qualitätssteigerung des Bildes ist es hervorragend geeignet! Leider geht jeder Test hier auf Computerbase nur auf Leistungssteigerung ein.
So funktioniert das aber in der Praxis nicht. Keine Ahnung wann du das letzte mal ein MGPU Gespann im Einsatz hattest - aber in 2019 ist es schlicht nicht mehr sonderlich oft möglich (abseits ein paar weniger AAA Titel) entsprechende Leistungsskalierung zu bekommen. Dabei ist es auch völlig bumms egal ob du die Leistungsskalierung versuchst in FPS umzusetzen oder die mehr FPS in mehr BQ zu pressen.
Skaliert das MGPU Gespann nicht, gibts weder mehr FPS noch mehr BQ.
PS: AA per Treiber funktioniert seit spätestens DX10 auch nicht mehr richtig. Bis einschließlich DX9.0c konnte man bei NV via AA-Bits in vergleichsweise vielen Titeln MSAA/SSAA/SGSSAA via Treiber erzwingen. Für DX10 und drüber gibts es nur noch eine Hand voll Bits - und die funktionieren idR auch nicht abseits der Titel für die sie erschaffen wurden.
Die einzige Möglichkeit eine Kantenglättung per Treiber zu ermöglichen ist VSR, DSR oder das seitens NV über Custom Resolution erzwingbare Downsampling. Der Rest geht zu 99,9% nicht (mehr) in aktuellen Titeln mit DX10 und neuer.
Übrigens, das MSAA und Co. als klassische Hardwaregestützte AA-Implementierungen nicht mehr funktionieren haben auch die Spieleentwickler entdeckt. Heute nutzt man so Weichzeichnerunsinn ala FXAA und Co. was im Endeffekt nichts mehr mit einem echten AA zu tun hat.
Retro-3dfx-User schrieb:
Woher willst du das denn wissen, das dies heute nicht mehr gehen soll, das Bild entsprechend so ab zu Arbeiten wie 3dfx es getan hat... wo steht das denn?
Sicherlich ist diese Technik heute noch umzusetzen, die Theorie ist bekannt, der Rest ist Programmierung und geschluckt wurde das ganze ja 2001 von NVIDIA mit allen technischen Details!
Das Problem ist, dass ein SFR Modus (also ein Split Frame Rendering - nicht am Namen aufhängen, ich meine damit jegliche Art von Zerhackstückeln, also horizontal/vertikal/Schachbrettmuster usw.) durch das aufteilen eines einzigen Bildes in mehrere Teilabschnitte schlicht nicht sonderlich gut bis gar nicht skalieren wird. Warum? Du hast einfach das Problem, dass entgegen der damaligen Engines viel mehr Teile übereinander im Bild liegen und davon in großen Teilen auch auf Daten angewiesen sind, die nicht aus dem konkret zugewiesenen Teilabschnitt bestehen... Screen Space Reflections bspw. wäre hier ein klassicher Vertreter. Wenn der linke Bildbereich sich in einem Objekt im rechten Bildberech spiegelt, kann nicht mittig im Bild geteilt werden -> weil der rechte Bildbereich dann nicht mit der Geometrie des linken Bildbereichs arbeiten kann. Er kennt davon ja überhaupt nichts...
Um sowas umzusetzen müsste man also je nachdem eine Menge redundant berechnen, was der Skalierung massiv entgegen steht. Keine Ahnung, was bringt es dir für 10-20% oder so ins blaue geraten 100% mehr Geld auszugeben?? -> nichts...
Mit DX12 gibts wohl noch andere bestrebungen um MGPU besser skalierbar zu machen. Aber so 100% funktioniert das auch alles nicht.
Von NV gibts dazu bspw. hier was zu lesen:
https://developer.nvidia.com/explicit-multi-gpu-programming-directx-12
Faust2011 schrieb:
Du meinst, ob es einen Unterschied gibt zwischen Multi-GPU, aufgebaut aus zwei Grafikkarten, und echten "Dual GPU Grafikkarten", wie die Radeon Pro Duo, R9 295X, ... usw.? Nein, das Problem ist genau dasselbe.
Das kann man so nicht sagen - es gibt (siehe oben) Mittel und Wege in Form von APIs, welche es technisch ermöglichen, Daten von einer GPU zu einer anderen zu schubsen. Dummerweise ist das bei einem klassichen PCIe MGPU Setup eben auf die Bandbreite vom Bus respektive der der Brücken begrenzt. Bei AMD gibts gar keine Brücken mehr.
Technisch gesehen wäre aber ein extrem schneller OnPCB Interconnect hier dann in der Lage, das Syncronisierungsproblem massivst abzumildern. Im Dev. Link oben wird bspw. erwähnt, dass bei 8x PCIe für 64MB Daten ca. 10ms Zeit benötigt werden. 10ms alleine für ein Copy Task - das wäre ein 100 FPS Cap, wenn die Bilderzeugung quasi gar keine Zeit benötigen würde - real kommen da also noch xx ms drauf und die Skalierung bricht zusammen.
Also nein, eine native Implementierung in welcher Form auch immer hat zumindest in der Theorie hier massivste Vorteile. Theorie halt deswegen, weil es aktuell keine konkrete Umsetzung davon gibt.
Die GV100 Cluster verbunden via NVSwitch könnten hier schon deutlich Pluspunkte aufzeigen - testen wirds aber in so einem Gerät wohl zu 99,99% keiner. Zumal Gaming-Benchmarks damit wohl auch absolut nicht laufen würden