CPU oder GPU beim rendern besser?

  • Hallo Leute,


    ich bin etwas unschlüssig, und ich finde im Netz nicht so viel dazu.


    Folgendes:


    Ich rendere mit meinem PC für ein 25min Video (1080p 60FPS) etwa 1 1/2 Stunden.


    Nun habe ich die Möglichkeit einen kleinen Server zu bekommen mit Dual Xeon CPUs und RAID 10, alles logischerweise ohne Grafikkarte.
    Würde es mehr Sinn machen, die LPs darüber rendern zu lassen oder sollte ich es lieber auf meinem Rechner (AMD FX8350 und GTX 770) mit dem rendern belassen. Das ganze ist, dass ich auf meinem PC während des Render Prozesses nicht aufnehmen kann, da der Render Prozess etwa 50-60% CPU Last verursacht.


    Eine andere Möglichkeit wäre eine Quadro GraKa bei Ebay zu holen, und mit einem anderen Rechner den ich rumstehen habe zu rendern, was natürlich mit kosten verbunden wäre, die 1. und 2. Möglichkeit wären für mich kostenlos.


    Gibt es im Netz iwo eine Liste bzw. eine Art Benchmark, welche zeigt, welche Hardware fürs Rendern geeignet ist bzw. am performantesten ist?


    Freue mich auf eure Antwort

    Einmal editiert, zuletzt von sem () aus folgendem Grund: Fremdlinks entfernt.

  • Fürs Rendern ist GPU gut.
    Fürs Encodieren ist CPU gut.


    Encodierer die eine GPU nutzen wären NVIDIA NVEnc, AMD VCE, Intel Quick Sync
    Encodierer die eine CPU nutzen wären alle restlichen ;D


    Rendern (Video/Audio) = Neuberechnung von Frames und Samples. Halt alles was extrem gut parallelisiert werden kann.
    Encodieren (Video/Audio) = Das Komprimieren und Verschlüsseln von Informationen, weshalb man die Dinger dann auch Codecs nennt ;D



    Fazit: Ein GPU Encoder wie er bei einigen Programmen wie Sony, Magix, Adobe, etc. zu finden ist, ist schlechter konfiguriert und somit schneller. Ein CPU Encoder genauso Moderat konfiguriert würde schneller sein. Oder umgekehrt genauso, wenn man den GPU Encoder genauso einstellen würde wie ein CPU Encoder wäre der CPU Encoder schneller. Einfach aufgrund dessen das beim Encodieren so gut wie gar nix parallelisiert werden kann.



    Nur ist es blöd fürs Marketing wenn man GPU Encoder präsentiert und die schlechter laufen ;D Darum werden die halt ganz raffiniert schlechter konfiguriert um den User zu verarschen und diesem glauben zu machen das die Dinger schneller sind ^^



    Bei Aufnahmen kann man aber die CPU entlasten, wenn man mit einem GPU Encoder aufnimmt. Weil die Spiele können parallelisiert, während der GPU Encoder da rum dödelt ^^ Da hat dann die CPU sehr viel Freiraum dann.


    Bei Bearbeitungsprogrammen wie gesagt bringt einen das relativ gar nix. Da ist die CPU schneller.
    Die Bildberechnung wie Effekte und Co. sollte aber in einem Bearbeitungsprogramm am besten von der GPU erledigt werden. Sprich das Rendern.

  • Ok, da ich ich meinen Videos nicht so viele effekte drin habe, wäre der kleine server mit 2 Xeons also besser?


    Bin zwar Fachinformatiker, aber ich die Ganze geschichte Encoding und Rendering muss ich mich erst einmal reinlesen und bisschen probieren :)

  • Ok, da ich ich meinen Videos nicht so viele effekte drin habe, wäre der kleine server mit 2 Xeons also besser?

    Solange du deine Videos in irgendeine Art von Videobearbeitungssoftware stecken tust. (Sony Vegas, Magix, Premiere, und und und). Solange wird immer eine Neuberechnung der Frames stattfinden.
    Das Video wird in einem Schnittprogramm immer erst decodiert und in eine Rohfassung gebracht. In den meisten Fällen wird sogar alles auf den RGB Farbraum geeicht und Audio wird auf PCM Signale geeicht.
    Und bevor du Encodierst wird dein Video immer zwangshaft vom Programm neu berechnet. Deswegen steht auch meist immer das Wort "Rendern" da. Was du aber unter Rendern angibst sind die Encodierer.


    Weil der Ablauf ist immer gleich:
    Video / Audio -> Rendern (Neuberechnung) -> Encodieren -> Neues File


    Und bevor du halt Encodieren kannst muss es neu berechnet werden halt. Darum wird Rendern und Encodieren immer auch zusammengeworfen von den Leuten und heißt für die Masse halt fälschlicherweise bzw. zur hälfte falsch, einfach nur "Rendern". Fällt halt alles darunter.
    Sind aber 2 separate Prozeduren.


    Rendern halt via GPU am besten und Encodieren via CPU. Und dann machste schon mal nix falsch.


    AVISynth berechnet z.B. über die CPU die Frames neu, statt der GPU.
    Bei Sony Vegas kann man das sogar umstellen, ob CPU oder GPU.
    Dann steht da meist was von CUDA Nutzung, wenn man eine NVIDIA hat


    Damit hab ich aber noch nicht Encodiert ;D


    Den Encoder kann man dann ebenfalls wählen. Die meisten sind dann oft CPU Encoder. Darunter fallen z.B. der x264vfw, x264, XVID, DIVX, MagicYUV, UTVideo, etc. pp


    Und dann gibt halt die GPU Encoder wie z.B. NVEnc, Intel QuickSync oder AMD VCE



    Musst halt nur Rendern und Encodierung auseinander halten. Die haben an sich nix miteinander zu tun, sondern werden nur oft hintereinander durchlaufen.


    Vllt. hilft dir dieses Bild zur groben Veranschaulichung des Ganzen:

  • Ok, eine Mischung aus beidem (CPU und GPU) wäre gut, wenn ich das verstanden habe^^


    Benutze Premiere CC im Abo, da kann man das jedenfalls mit GPU Beschleunigung machen.
    Jedoch, wenn ich meine Auslastung von der Grafikkarte anschaue, hat die nix zu tun die ganze Zeit, dümpelt immer bei 1-5% rum.


    Irgendwie erschließt es sich mir noch nicht, wieso die nicht beansprucht wird obwohl ich das CUDA angeschalten habe :/

  • Kennste das Stau Prinzip?
    Stell dir ne Sanduhr vor. Oben ist dein Video (Sand) und der würde ganz schnell nach unten rieseln, wenn da nicht der Trichter wäre. Der Trichter ist der Encoder. Und jetzt versuchst du mit nem Koben nachzuhelfen (das wäre jetzt in diesem Falle die GPU)


    Was passiert wohl? Der Kolben würde genauso schnell nach unten zu drücken gehen als wenn du den Sand so durch rieseln lassen wolltest ^^


    Mit anderen Worten: Der Renderprozess ist fertig und vor dem Encoder stapeln sich die fertigen Frames die noch encodiert werden müssen.


    Weil der Encoder nicht parallelisierbar ist, der Rendervorgang aber schon.



    Ich kenne deine Encodereinstellungen nicht, eventuell kann man da einiges optimieren damit das ein wenig oder gar erheblich schneller von Statten geht.

  • Ok, ich glaube das verstehe ich :P


    Also desto größer (mehr Kerne) der CPU fürs Encoden ist, desto besser kann die GPU dann helfen.


    Naja ich habe die Einstellungen so genommen, dass die beste Qualität herauskommt, sofern ich das zur Zeit beurteilen kann. Da kann man sicher noch vieles herausholen, ich bin aber noch nicht dazu gekommen mit den einzelnen Einstellungen zu beschäftigen :D

  • Sofern du den Standard Mainconcept Encoder von H264 nutzt in Premiere und solange Premiere seine Urgestein rudimentären Einstellungen dir präsentiert, bei denen selbst ein echter Profi verzweifeln würde, würde ich sagen das es ein nicht ganz so effizienter Weg ist.

  • Würde sich deiner Meinung nach der Server mit Dual Xeon lohnen?

    Wenn du sowas wie eine Art Auto Encoder machen möchtest, ja.


    Aber dann frage ich mich wozu du dann Premiere nutzen willst noch?


    Weil für so ein Auto Encoder reicht an sich ein CMD Encoder wie x264, FFmpeg oder dergleichen.


    Weil verstehe grad den Grund nicht warum du auf einen Server kommst? Ein Server ist doch ein 2tes Gerät. Ein 2ter separater PC sozusagen wo dann deine Software von wegen Website etc drauf ist.
    Verstehe da noch nicht was da dein Premiere noch mittendrin soll ^^


    Dann verzichteste doch auf die GPU wieder irgendwo wenn das auf dem Ding alles laufen soll. ^^
    Wie gesagt... komm da mit deiner Logik noch nicht ganz mit was du vor hast ^^



    Hier einmal meine Einstellungen:


    Einstellungen 1


    Einstellungen 2

    Ohje. WMV9. Bitte sag mir das du ein Joke machst ^^

  • Das ganze was ich mit dem Server vor habe ist eigentlich das Rendering.


    Also folgendes:


    Ich mache das zur Zeit alles auf einem PC (aufnehmen und rendern etc.)


    Durch das render und encoden ;) ist meine CPU Last bei 60-70% was bedeutet dass ich keine weiteren Aufnahmen machen kann während mein Premiere das Video rund macht.


    Ich will es eigentlich so hinbekommen, dass ich gleichzeitig aufnehmen und mein Video fertig machen kann ;) Da war halt jetzt die 2. Idee mit dem kleinen Server :)



    Und ja das sind meine jetzigen Einstellungen, und es läuft erst einmal irgendwie :D

  • Durch das render und encoden ist meine CPU Last bei 60-70% was bedeutet dass ich keine weiteren Aufnahmen machen kann während mein Premiere das Video rund macht.


    Ich will es eigentlich so hinbekommen, dass ich gleichzeitig aufnehmen und mein Video fertig machen kann Da war halt jetzt die 2. Idee mit dem kleinen Server

    Ich weiß jetzt nicht wie du den Media Encoder einstellen kannst das dein Zeug in der Warteschlange steht und auf einem anderen Rechner (dein Server) encodiert werden kann.


    Aber zu 100% kann ich dir schon mal sagen das der Render Prozess auf deinem PC stattfinden wird und nicht auf dem Server PC. Soviel kann ich dir jetzt schon halt sagen, sofern du weiterhin Premiere verwendest und die Premiere eigenen Sachen.


    ABER es gibt für dich eine simple und recht ansprechbare Lösung die A) 100% funktioniert und B) effizient laufen würde.


    Als erstes bräuchtest du einen Frameserver der die Daten von A nach B leitet (Am besten machste das mit nem festen stationären LAN-Kabel und zwei Netzwerkkarten die zusammen eine ordenliche Übertragung gewährleisten.)


    Frameserver wären z.B. der DebugMode Frameserver oder der Advanced Frameserver


    Einer davon geht auf jedenfall mit deinem Adobe.



    Und dann brauchst du auf deinem Server ein Encoder System/GUI. z.B. MeGUI oder FFmpeg oder xMediaRecode oder oder oder...


    Das Ganze hat ein Nachteil dann auch: Es wäre keine Batchfunktion möglich. Also mehrere Projekte hintereinander würde nicht gehen.
    Und natürlich der Nachteil das das Rendering immer noch, wie oben geschrieben schon, auf deinem primär PC ablaufen würde.


    Das wäre eine Möglichkeit.



    ODER


    Du machst dein Rendering + Encoding auf dem Server PC, aber dann musst du auf deinem Server PC die Bearbeitung machen. Sprich du müsstest die Videos zum Server PC übertragen.



    Andere Möglichkeiten gibt es dann nicht mehr.


    Und ja das sind meine jetzigen Einstellungen, und es läuft erst einmal irgendwie

    Hatte ich eben schon erwähnt. Eine Möglichkeit effizient zu Encodieren wäre das Video über einen Frameserver an ein Drittprogramm zu übergeben. Sprich das Rohe Video aus Premiere raus und z.B. in MeGUI encodieren lassen oder in FFmpeg.


    Wäre eine Möglichkeit.


    Die zweite effiziente Methode wäre die Nutzung von x264vfw
    Nach der Installation von dessen kann man diesen Codec als VFW Codec auswählen.
    Weitere Infos zur Einstellung und Herangehensweise findest du hier: x264vfw für Videoschnittprogramme

  • Ok, sollte das noch etwas vertiefen :D


    Der Server würde in keine Rechenzentrum stehen ;)
    Er würde lokal bei mir zu Hause stehen, wo ich dann Premiere drauf installiere und der kann nebenher laufen.


    Folgende Ausführung hätte ich mir da vorgestellt:


    1. Aufnehmen
    2. Daten auf Server schieben mit Gigabit
    3. Auf dem Server in Premiere alles fertig schneiden etc.
    4. Auf dem Server das Rendering starten


    Ich glaube das hätte ich erwähnen sollen, das er lokal bei mir zu Hause steht :)

  • Der Server würde in keine Rechenzentrum stehen

    Das war mir schon klar und habe es daher auch berücksichtigt.



    3. Auf dem Server in Premiere alles fertig schneiden etc.
    4. Auf dem Server das Rendering starten

    Diese Möglichkeit hatte ich dir auch genannt.


    Problem ist halt das du keine Grafikkarte auf dem Server dann haben wirst, laut deiner Aussage aus dem Startpost.


    Heißt: Der Encoder ist dann fertig und wartet womöglich auf die Frames, weil die CPU die Frameneuberechnung (Rendering) nicht schnell genug macht.


    Weil wie schon oben geschrieben ist es die GPU die die Neuberechnung schnell macht, damit der Encoder sich nicht langweilen muss.


    Fazit: Die GPU beim Rendering hat schon seine Daseinsberechtigung. Weil es halt parallelsierbar ist.
    Wenn die CPU das nun macht, dann Staut sich der Kram noch mehr. ^^ Sprich der Kolben in der Sanduhr wird immer größer. Und die Zeit das der Sand durchläuft auch.


    Also: Wenn du schnell Encodieren willst mit so ein Bearbeitungsprogramm, dann ist halt eine GPU für das Rendering schon von Vorteil. Zumal du ja auch Zeit sparen möchtest.


    Oder du sagst halt wirklich das alles auf CPU laufen soll. In diesem Falle müsste man dann A) schauen ob Premiere überhaupt only CPU Fähig wäre ohne Grafikeinheit und B) ob sich das Zeittechnisch so negativ auswirkt das du selbst sagst das es dir so nicht rechtens ist.


    Kannst halt auch AVISynth dann in diesem Falle verwenden und MeGUI. AVISynth als CPU Renderer und MeGUI mit sein x264 als CPU Encodierer.


    Ich denke mal letzteres würde sogar um einiges Effizienter dann laufen, wenn keine GPU auf dem Server ist.

  • Alles klar, jetzt hab ichs kapiert :D


    Ich muss mir da noch einmal Gedanken machen wie ich es am besten mache, probiere das mal auf dem Server aus ob es schneller geht ohne Grafikkarte, wenn es ewig dauert muss ich es halt erst einmal weiter laufen lassen bis ich da vllt ne normale Grafikkarte reinbauen kann.


    Mal schauen wie ich es anstelle, danke aber erst einmal für deine Hilfe :)


  • Du solltest aber wissen das du zumindestens für das Einrichten eine GPU brauchst, denn die Xeon werden die kein Bild geben :D


    Eine Frage hätte ich wozu brauchst du eine Quadro GPU ? Hat das bestimmte Gründe wieso diese ?



    Noch was zu Adobe. Cuda bzw eine GPU wird dir da sehr sehr wenig helfen wenn du nicht mit Effekten arbeiten wirst. Solang du da nur schneiden tust wird die GPU auch so gut wie nix machen.


    Es kann auch sein das Adobe vlt nicht deine GPU in der Liste hat. Die kannst du aber nachträglich eintragen.

  • Die Serverboards haben onBoard Grafik, keine Angst das geht schon :D


    Die Quadro Karten sind von der Performance beim Rendern schneller als meine derzeitige GTX770


    Meine Grafikkarte habe ich in Adobe in die Liste aufgenommen, hat auch beim ersten Video geklappt, einen Tag später hat er sie wieder nicht haben wollen.

  • Die Serverboards haben onBoard Grafik, keine Angst das geht schon :D


    Die Quadro Karten sind von der Performance beim Rendern schneller als meine derzeitige GTX770


    Meine Grafikkarte habe ich in Adobe in die Liste aufgenommen, hat auch beim ersten Video geklappt, einen Tag später hat er sie wieder nicht haben wollen.


    Okay gut hat halt nicht jedes Board.


    Naja eine gute Quadro die auf sowas spezialisiert ist kostet auch meist paar tausend € ^^


    Die Günstigen sind meist nicht mehr zu empfehlen weil es uralte Modelle sind die nicht mehr aktuell sind.


    Hmm das ist komisch. Ist sie denn noch in der Liste ?

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!