CUDA-Grafikkarte sinnvoll?

linuxnutzer

Commander
Registriert
Dez. 2011
Beiträge
2.499
http://www.studio1productions.com/Articles/PremiereCS5.htm
On the AMD FX-6300 system, you will notice the GT-240 and GT-640 render slower with the GPU turned on. The reason is the AMD FX-6300 processor can render the video faster than the video card can since these are lower end video cards. However, if you have an AMD Dual Core or Quad Core Processor, the GT-240 and GT-640 will render faster than the CPU.

Ich verwende zwar kein Premiere, aber einen AMD FX-8320 Eight-Core Processor und frage mich, ob es bei Videobearbeitung mit kdenlive einen Unterschied macht, wenn ich eine Asus GT620-DCSL-2GD3 oder eine MSI GeForce N610 verwende.

Verstehe ich es richtig, dass zum Rendern entweder die CPU oder die GPU verwendet wird und nicht beides? Ist das Premiere-typisch oder gilt das immer?
 
Eine CUDA Karte die Sinn hat, ist eine GTX 570 und schneller, so eine Karte ist zigfach schneller als die CPU.
Bei einer Minimalkarte ist es klar, daß die keinen Sinn hat.

Daher sind auch erst Karten wie die GTX 570 von Adobe als CUDA-Karten freigeschaltet und kleinere Karten nicht eingetragen und selber freizuschalten.

Ein Bekannter nutzt meine alte GTX 260 als CUDA Karte zu einem i7 870.
Damit sind unterstützte Filter in PS etwas schneller als ohne CUDA und stufenloses Zoomen in Echtzeit und ohne zeitweilige Unschärfe möglich.
 
Zuletzt bearbeitet:
Unterstützt kdenlive CUDA oder OpenCL? Nein?

Dann ist es irrelevant, welche Grafikkarte du einsetzt. Wenn wie unter Linux auch bei dir der Xine-core zur Wiedergabe genutzt wird, kannst du zumindest von der normalen Videobeschleunigung der Grafikkarte profitieren.
Deine CPU wird IMMER das Encoding stemmen müssen. Bis die Entwickler von ffmpeg Unterstützung für einer dieser API's implementieren, und kdenlive diese Version verwendet.

Premiere hat seinen eigenen Encoder und Renderer umgeschrieben, dass sie dementsprechende Schnittstellen von der Grafikkarte nutzen können, wenn man es so will. Das dann aber eigentlich nur mit zertifizierten Karten. Warum ist ganz einfach und ist oben in deinem Zitat bereits beschrieben: Kleinere Karten haben eine derart niedrige CUDA/OpenCL rechenleistung, das man mit dem Einsatz der CPU oft schneller fährt.
 
Zuletzt bearbeitet:
Besitze eine x6 1090T@4Ghz CPU mit HD 7870, bei AMD heisst das ATI Stream. Benutze Xilisoft Video Converter für h264 Encoding. Die CPU wird nie 100% Entlastet, ich konventiere 2 Filme gleichzeitig, womit ich erst dann meine CPU 100% ausgelastet bekomme.
Davor hatte ich eine HD 5770 und kann dir sagen dass eine stärkere Grafikkarte kaum was bringt und vernachlässigbar ist, es sei denn bist sowieso Spieler.
 
Eine ATI hat auch kein CUDA.
Erst ab Premiere CC wird Open CL unterstützt...

Videobearbeitung mit kdenlive
ja... hat das denn Open CL oder CUDA Unterstützung?!
Wenn nicht, dann ist es völlig Wumpe welche Graka drinnen ist.

Aber zur kleinen Aufklärung... eine GT 610 bringt nur 14GB/s durch ihre 48 Cores, eine popelige alte GTX 260 deren 130 durch 196 Cores!
 
Zuletzt bearbeitet:
Ja CUDA bringt es auf jeden Fall z.B. mit einer GTX660 mit 960 Cuda~Cores, die hab ich selbst.
Vorher war es eine GTS250 die CPU ist gleich geblieben - Phenom II X4 940 - beim Rendern mit Cuda sind es nun 48fps mehr bei indentischen Settings.
 
Auf kdenlive.org seh ich nix mit CUDA. Ein schneller CPU Encode bringt übrigens ein vergleichbar gutes (absolut gesehen schlechtes) Ergebnis mit sich. Für Encoding-Sachen ist eine GPU sowieso eher suboptimal, da das Bild bei x264 aus vielen Referenzframes besteht und eine GPU, die auf massiv parallele Aufgaben geschnitten ist, dabei nichts rausholen kann.

Der einzige Eintrag ist eine Bitte um Implementation: http://www.kdenlive.org/mantis/view.php?id=1806 Dass ffmpeg CUDA unterstützt wäre mir neu und beim MLT steht ebenso nix dabei.
 
Ob kdenlive CUDA unterstützt bin ich mir auch nicht klar. Bei Slashcam stand was in dieser Richtung. Darktable und Aftershot Pro unterstützt opencl auf jeden Fall, da kann ich meine GF 610 dazu aktivieren.

Es stellt sich nicht die Frage, ob ich eine Graka für ein paar Hundert Euro verwenden soll. Maximal kann ich mir eine GT 640 vorstellen. Ich will möglichst eine passive Karte einsetzen und da wird es eng. Ein GT640 kommt aber auch nur dann in Frage, wenn das bei Video- bzw. Fotobearbeitung deutlich was bringt. Wenn mit meiner 8-core-CPU die Grafikkarte sowieso nur marginal was bringt, dann macht es keinen Sinn Geld für eine schnellere Grafikkarte auszugeben. Spielen ist kein Thema.

Zu Kdenlive fand ich zB das:

http://www.slashcam.de/news/single/Kdenlive-0-7-7--indirekt--mit-NVIDIA-GPU-Unterstuet-8220.html

Wer sich dort wiederum die Release-Notes zu Gemüte führt, findet den unscheinbaren Hinweis „added decoding H.264 with NVIDIA VDPAU“. Und das bedeutet nicht weniger als dass zum Dekodieren von AVCHD-Strömen bei geeigneter NVIDIA-Grafikarte die GPU verwendet wird. Doch um in diesen Genuss zu kommen, muss FFmpeg mit vdpau-Support kompiliert sein.

aftershot_pro_opencl.jpg
 

Anhänge

  • darktable_opencl.jpg
    darktable_opencl.jpg
    30,6 KB · Aufrufe: 152
Zuletzt bearbeitet:
De- und Enkodieren sind zwei paar Schuhe. Dekodieren zaubert dir das Bild auf den Bildschirm, Enkodieren zaubert dir das Bild in die Datei (kurz gesagt). Dekodieren kann ffmpeg problemlos bspw. mit DXVA unter Windows (unter Linux mit Sicherheit genauso). Fürs Enkodieren ist ffmpeg aber weniger zu gebrauchen (da ein einheitliches Interface für hunderte Codecs herhalten muss) - da nimmt man lieber die Encoding-Tools von den Herstellern selbst, weil sie einfach mehr und genauere Optionen bieten.
 
ghecko schrieb:
Da der Videoprozessor, auf den die VDPAU API zugreift, in allen neueren Modellen identisch ist (VP5), ist die Stärke der Grafikkarte somit erneut irrelevant. Die GT610 reicht vollkommen.

Gilt das auch für Fotobearbeitung?

http://www.mail-archive.com/darktable-users@lists.sourceforge.net/msg01044.html
NVIDIA's
6xx series sucks when in comes to GPGPU. I mean, they are not extremely
bad, but you don't get a lot bangs for your bucks.

At the same time ATI's recent HD77xx or HD79xx are really fast in
computing. I now have in addition an HD7950 running in my box and it is
about 10 times faster than my CPU when it comes to file export. And it
costs less than e.g. a GTX660Ti. On the downside: AMD/ATI's drivers tend
to be less stable than NVIDIA.

Von AMD finde ich ich aber keine vergleichbaren passiven Karten mit VGA, HDMI und am besten 2x DVI.
 
Man darf CUDA nicht mit VDPAU verwechseln. Wenn ffmpeg VDPAU unterstützt bedeutet das, im Encodingprozess wird das Dekodieren des Arbeitsmaterials vom Videoprozessor übernommen, womit ein schritt des Encodings für den Prozessor wegfällt.

Andere Tools wiederum, und das schließt Bildbearbeitung mit ein, sind für OpenCL oder CUDA kompiliert, was bedeutet, das sie die Shader der GPU durch einen Befehlssatz wie viele kleine parallelisierte CPU-Kerne arbeiten lassen. Weil es so viele sind, sie wenig Instruktionen verstehen, diese aber rasend schnell abarbeiten können, sind sie bei ausreichender Anzahl einer herkömmlichen CPU überlegen. Hierbei ist die Architektur für die Aufgaben allerdings nur gering optimiert.
Anders bei VDPAU. Hierbei haben wir es mit einem Hardwaredecoder zu tun, einem richtig dummen Stück Silizium das nichts anderes tun kann als H264/VC1/Mpeg4-ASP aus seiner Datenform in Bildform zu inflatieren. Dafür ist es im Gegenzug sehr kompakt, sehr energiesparend und nahezu 100% effizient.

VDPAU wird in der Linuxwelt rauf und runter verwendet, egal ob XBMC, Mplayer, Xine, Gstreamer, sie alle können und nutzen Videobeschleunigung via VPDAU. Ist dafür auch Unixweit die zweifellos beste API in dieser Hinsicht.

Als Programm, welches aktiv Gebrauch von OpenCL/CUDA macht, insbesondere im Sinne der "Bildbearbeitung" kenne ich nur Blender. Da stützen sich einige Renderpipelines und Effektrenderer drauf, und das scheinbar mit Erfolg.

Du siehst, es steht und fällt mit der Unterstützung. Adobe macht erfolgreich Gebrauch von solchen Schnittstellen, die "freien" Tools hingegen hinken da etwas hinterher, und ärgern weiter schön die CPU.
Letztendlich wirst du unter Linux keine richtigen Gründe finden, um von einer 610 auf eine schnellere Nvidia oder eine AMD umzusatteln. Es sei denn, du beherrschst den Umgang mit Blender und willst beim Bearbeiten Wartezeiten minimieren. Dann solltest du aber auch vor einer Aktiven Lösung nicht zurückschrecken.

Die GT610 läuft sparsam, stabil und zuverlässig. Sie bietet die momentan beste Videobeschleunigung, die man sich unter Unixartigen wünschen kann. 2 Desktops sind gar kein Problem, und der 319er Treiber unterstützt nun auch endlich den Pivot Mode von Einzelnen Bildschirmen in einem Multimonitor setup. Und auch sie unterstützt Cuda, und kann sich für das ein oder andere Bild in Blender nützlich machen.
Für Gimp, kdenlive und co ist das momentan das höchste der Gefühle. Wenn du aufrüsten willst, fang beim Prozessor an.
 
Zuletzt bearbeitet:
================
We already have these features:
================

GPU decoding support
Some progress has been made to port the libx264 lookahead thread

Wie in diesem Thread schon 3 mal erwähnt, und in der Quelle dieses Zitates beschrieben, ffmpeg unterstützt VDPAU zum Decodieren, nicht aber OpenCL oder CUDA zum encodieren, aus gründen, die dort ebenfalls genannt werden.
Was nicht bedeutet, das es in Zukunft nicht implementiert wird. Aber wenn dies der Fall ist, wird es schon wieder ganz andere Grafikkarten geben, die man sich dann kaufen sollte, wenn man sie sinnvoll einsetzen kann.

Da fällt mir gerade ein, einige Brutforce-tools zum knacken von Passwörtern von W-Lan netzwerken, Bitcoin-programme und das ein oder andere Rechennetzwerktool wie Proteinfaltung etc nutzen ebenfalls unter Linux CUDA und OpenCL. Diese würden also ebenfalls von einer schnelleren Grafikkarte profitieren. Bei CUDA ist es faktisch egal ob alte oder neue Karten (Kepler oder Fermi). Die neuen Karten sind nicht langsam weil sie es sind, sondern weil die GPU-Computing Leistung im Gegensatz zur 3D-Leistung gegenüber der Vorgängerarchitektur nicht gestiegen ist. Weshalb die alten Karten aufgrund günstigerer Preise für derartige Rechenaufgaben hoch im Kurs sind.
Nvidias support für OpenCL ist eher Mager, da trumpfen die AMD-Karten auf voller Länge auf und drehen oft Kreise um die OpenCL Rechenspielchen der Nvidiakarten. Ob Nvidia die OpenCL Leistung absichtlich zugunsten ihrer eigenen API stutzt, oder die AMD-Karten einfach besser sind sei dahingestellt. Fakt ist, kommt OpenCL zum Einsatz, sind die AMD-Karten um einiges schneller.
Und das ist so ungefähr alles, was hinter dieser Aussage hier steckt:
http://www.mail-archive.com/darktabl.../msg01044.html
NVIDIA's
6xx series sucks when in comes to GPGPU. I mean, they are not extremely
bad, but you don't get a lot bangs for your bucks.

At the same time ATI's recent HD77xx or HD79xx are really fast in
computing. I now have in addition an HD7950 running in my box and it is
about 10 times faster than my CPU when it comes to file export. And it
costs less than e.g. a GTX660Ti. On the downside: AMD/ATI's drivers tend
to be less stable than NVIDIA.
 
Zuletzt bearbeitet:
Zurück
Oben