Nixdorf schrieb:
Auch, wenn man Effekte auf der CPU rechnet, ist die Speicherbandbreite des Grafikspeichers weniger wichtig, denn vorher limitiert schon die Anbindung des Grafikkartenslots an die CPU.
supastar schrieb:
Nein, denn die Speicheranbindung beschreibt eher nicht den Datentransfer von der GPU zur CPU, sondern vom RAM zum Grafikkartenspeicher. Und eine einzige Lane bieten bei PCIe 3.0 985 MB/s Datendurchsatz.
Zunächst einmal liegst du richtig mit dem "Nein", aber es ist noch simpler. Danke für den Denkanstoß.
Wenn man Effekte auf der CPU rechnet, kommt die Grafikkarte dafür gar nicht zur Nutzung. Die Video-Rohdaten liegen ja sowieso primär im RAM des Schnittprogramms und es wird auf der CPU gerechnet. Es geht also nur um die Anbindung zwischen CPU und RAM.
Nadelöhr PCIe-Slot
Für Transfers zwischen RAM auf dem Mainboard und dem Grafikspeicher (VRAM) auf der Grafikkarte ist die Aussage aber korrekt:
- Der VRAM ist zum Beispiel bei der RX 570 mit 224 GB/s mit der GPU verbunden.
- Die GPU wiederum ist über 16 PCIe-3.0-Lanes und knapp 16 GB/s (genauer 15,754 GB/s) mit der CPU verbunden. Bei PCIe 4.0 steigt das auf 31,508 GB/s an.
- Die CPU ist über ihren Memory Controller mit dem RAM verbunden. Diese Anbindung hat bei Single Channel DDR4-2133 eine Bandbreite von 17 GB/s. Typischerweise nutzt man Dual Channel und ist bei mindestens 34 GB/s.
Sollen also Daten transportiert werden, so limitiert zuerst der Grafikkartenslot. Immer wenn Daten ins VRAM sollen, die dort nicht vorhanden sind, limitiert der PCIe-Slot. Die schnellere Anbindung des VRAMs an die GPU nutzt also nur dann etwas, wenn die zu bearbeitenden Daten bereits im VRAM liegen. Und das bringt uns zum nächsten Abschnitt.
Bedarf für viel Grafikspeicher
Um nochmals das verlinkte Video aufzugreifen: Da sieht man dann auch, warum es bei auf der Grafikkarte gerechneten Effekten ggf. nicht genug VRAM geben kann: Bei etwas längeren Effekten reichen ja nicht die 1,4 GB für eine Sekunde, die sich beim reinen Echtzeitzugriff auf laufendes Video ergeben. Nein, vielmehr müssen optimalerweise alle Videodaten (von allen Quellvideos plus freiem Platz für die Zieldaten) für die gesamten Effektdauer im VRAM liegen, weil man sonst entweder ins normale RAM "swappen" muss, oder es passiert das, was bei der NVidia-Karte im verlinkten Video passiert ist: Der Effekt kann gar nicht berechnet werden.
Warum OpenCL und CUDA
Die CPU rechnet die Effekte mit zum Beispiel 8 starken Rechenkernen und bei DDR4-3200 Dual Channel bestenfalls 51,2 GB/s Zugriff auf die Videodaten. Schafft man es aber, die Effekte auf der Grafikkarte zu rechnen, dann hat man zwar weniger starke Rechenkerne, aber nicht 8, sondern z.B. bei einer RX 570 gleich mal 2048 Shader-Einheiten, die mit 224 GB/s auf die Videodaten zugreifen können. Das ist es dann, wo die Performance einer Grafikkarte beim Videoschnitt wichtig wird. Und man sieht auch, wofür man soviele GB/s braucht, wenn auf einmal so viele Recheneinheiten parallel mit Daten zu füttern sind.