Comparazione prestazioni rendering solo CPU Vs solo GPU

rctimelines

Utente registrato
Professione: Consulente Hard/Software per studi di progettazione, imprese, aziende
Software: AutoCAD, Revit, Inventor, Vectorworks, Allplan, Archicad, Solidworks, Blender, C4D
Regione: Friuli Venezia Giulia
#1
Salve,
Sono nuovissimo di questo forum, ma non del mestiere. Spero che la sezione sia corretta, altrimenti spostatemi: vorrei chiedere se mi potete postare dei link (se esistono, ho cercato un po' ma con difficoltà) in cui vengono comparati tempi di rendering della stessa scena, o benchmark di confronto, elaborati con motori che usano solo la CPU e altri solo GPU (tipo Octane).

La questione che vorrei derimere riguarda la spesa da dover sostenere per ottenere risultati analoghi con uno o l'altro metodo di calcolo.

Inviato dal mio Nexus 5 utilizzando Tapatalk
 

thelittlesniper

Utente poco attivo
Professione: Disegnatore
Software: Auto CAD, Revit
Regione: Alto Adige
#2
Hai aperto un universo!!! Intanto sarebbe da capire quale programma desideri utilizzare, l'intensità e frequenza con cui ci lavorerai e/o se utilizzerai altri programmi sulla stessa macchina e un valore di spesa di partenza da investirvi.
Se parliamo così in generale benchmark di vari sistemi ce ne sono a bizzeffe, per programmi in 'ambito professionale molti di meno.
 

rctimelines

Utente registrato
Professione: Consulente Hard/Software per studi di progettazione, imprese, aziende
Software: AutoCAD, Revit, Inventor, Vectorworks, Allplan, Archicad, Solidworks, Blender, C4D
Regione: Friuli Venezia Giulia
#3
Bene. Se di benchmark ce ne sono a bizzeffe, me ne potresti linkare qualcuno, come ho chiesto?

Il fatto è che trovo benchmark per render solo CPU (vedi cinebench), per solo GPU (vedi octanebench) o ibridi (vedi vray result)!e anche siti che provano uno o l'altro.. ciò che non trovo è una comparazione attraverso un parametro unico, che è ciò che mi servirebbe avere.

Inviato dal mio Nexus 5 utilizzando Tapatalk
 

thelittlesniper

Utente poco attivo
Professione: Disegnatore
Software: Auto CAD, Revit
Regione: Alto Adige
#4
cosa intendi per "parametro unico"? un applicazione sola? un sistema composto da uno specifico hardware?
Se vuoi una comparativa tra cpu e gpu non troverai praticamente nulla in quanto è ovvio che i render girano 100 volte meglio su gpu (fermo restando il fatto che il motore di render deve supportare ambedue i componeti).
Se invece vuoi sapere quale cpu va meglio con il programma X o quale gpu col programma Y quello è già più fattibilee ha un senso.
Ecco comunque alcuni test:
- https://benchmark.chaosgroup.com/cpu?page=16
- https://www.cgdirector.com/octanebench-benchmark-results/
- https://www.tomshw.it/hardware/nvid...ttore-professionale/benchmark-specviewperf12/
- https://www.videocardbenchmark.net/gpu.php?id=3719
 

rctimelines

Utente registrato
Professione: Consulente Hard/Software per studi di progettazione, imprese, aziende
Software: AutoCAD, Revit, Inventor, Vectorworks, Allplan, Archicad, Solidworks, Blender, C4D
Regione: Friuli Venezia Giulia
#5
Parametro unico, quello che sia.. immagino possa essere semplicemente il tempo di esecuzione. Il fatto che "girino 100 volte meglio sulla GPU" non significa niente. Intanto si tratta di algoritmi fondamentalmente diversi quindi girano entrambi bene, il fatto che fino a qualche anno fa non fossero usati dimostra che solo ora ci sono schede video con prestazioni tali da essere veramente competitive e, probabilmente, disponibili alla portata di tutti.

I link che hai postato purtroppo già li conoscevo, ho trovato anche altro, ma quello che cercavo era una comparazione, magari basata sui tempi per la stessa scena.

Inviato dal mio Nexus 5 utilizzando Tapatalk
 

enri

Utente Senior
Professione: Architetto
Software: Rhino-VectorWorks e altri
Regione: Italia
#6
Come risultato avresti tutto e il contrario di tutto, e non ti porterebbe da nessuna parte.
Ci sono engine di render che sono ottimizzati per la cpu, altri per la gpu, solo alcuni hanno entrambi i sistemi di calcolo, tra questi certi nascono per la cpu, ed hanno aggiunto CUDA, altri nascono con CUDA e permettono anche il calcolo solo cpu ( che non ha senso, esiste solo per sommare l'hardware).
Poi ci sono quelli biased (quasi sempre cpu, uno solo gpu, RedShift che va su CUDA, che credo abbia il record di velocità su gpu) ed unbiased (quasi tutti gpu, ma anche cpu) Poi ci sono i biased la cui controparte gpu, non è biased manco per niente, tipo Vray.
Ha ragione thelittlesniper, è un universo.

Ti faccio alcuni esempi.
Se tu usi la stessa scena su Vray, prima cpu poi gpu, quasi sempre è più veloce il calcolo su gpu, ( con qualche limitazione su alcune features) soprattutto su quelle di fascia alta, nonostante il primo calcolo adotti algoritmi di calcolo parziale (biased) ma forse in qualche caso, e con due cpu, potresti avere un ribaltamento del risultato, pochi casi secondo me, se ci sono.
Stessa cosa su Blender, con Cycles, in maniera più marcata, perchè l'algoritmo è lo stesso.
Se invece confronti due engine diversi sulla stessa scena, che so Corona (cpu unbiased) ed Octane (gpu ubiased) probabilmente avresti tempi migliori con il primo, soprattutto interni...ma non è detto, dipende dalla scena, e dall'hardware, con due gtx di fascia alta la vedo dura per Corona, ma anche qui, dipende dalla scena.
Se poi usi un Realtime di alta qualità, come Unreal Engine, su alcune scene a parità di qualità, asfalta tutti, con una qualità a dir poco sbalorditiva, è il futuro.
Considera poi che gli engine gpu su CUDA/OpenCL hanno il limite della memoria ram, la scena infatti va sulla memoria della gpu, se contiene, molte decine di milioni di poligoni, la vram della scheda potrebbe non bastare, ed il render non parte. Per questo motivo, se esiste l'esigenza dell'alta qualità, per render archiviz, grandi, si sceglie un unbiased cpu, e Corona in questo sta riscuotendo molto successo.

Ti do un consiglio, non ne vieni fuori così, fissa alcune tue esigenze:
-che render realizzi? (interni, esterni, modelli con milioni di poligoni, solo migliaia ecc)
-che tipo di hardware hai/vuoi acquistare e con quale budget?
-quali tempistiche di render sono idonee per il tipo di lavoro che fai?
Di conseguenza decini l'engine, possibilmente dopo aver provato quelli che si adattano ai tuoi scopi.
Se fai il consulente valuta per ogni studio lquali sono le scelte migliori, e fai a loro queste domande.
 

thelittlesniper

Utente poco attivo
Professione: Disegnatore
Software: Auto CAD, Revit
Regione: Alto Adige
#7
Parametro unico, quello che sia.. immagino possa essere semplicemente il tempo di esecuzione. Il fatto che "girino 100 volte meglio sulla GPU" non significa niente. Intanto si tratta di algoritmi fondamentalmente diversi quindi girano entrambi bene, il fatto che fino a qualche anno fa non fossero usati dimostra che solo ora ci sono schede video con prestazioni tali da essere veramente competitive e, probabilmente, disponibili alla portata di tutti.

Inviato dal mio Nexus 5 utilizzando Tapatalk
No, le gpu sono sempre state piú potenti e significa eccome! Parlando di potenza di calcolo abbiamo quanto segue per prodotti piú o meno della stessa generazione:
- E5 2600 v4 circa 500GFlops
- i9 9900K circa 280Gflops
una scheda video invece si parla di Tera-Flops:
- quadro P5000 circa 8,7TFlops
- geforce RTX2070 circa 7,9TFlops

Quindi se il mio programma mi permette di renderizzare con cpu e gpu ovvio che prediligeró quest'ultima.
 

thelittlesniper

Utente poco attivo
Professione: Disegnatore
Software: Auto CAD, Revit
Regione: Alto Adige
#8
Come risultato avresti tutto e il contrario di tutto, e non ti porterebbe da nessuna parte.
Ci sono engine di render che sono ottimizzati per la cpu, altri per la gpu, solo alcuni hanno entrambi i sistemi di calcolo, tra questi certi nascono per la cpu, ed hanno aggiunto CUDA, altri nascono con CUDA e permettono anche il calcolo solo cpu ( che non ha senso, esiste solo per sommare l'hardware).
Poi ci sono quelli biased (quasi sempre cpu, uno solo gpu, RedShift che va su CUDA, che credo abbia il record di velocità su gpu) ed unbiased (quasi tutti gpu, ma anche cpu) Poi ci sono i biased la cui controparte gpu, non è biased manco per niente, tipo Vray.
Ha ragione thelittlesniper, è un universo.

Ti faccio alcuni esempi.
Se tu usi la stessa scena su Vray, prima cpu poi gpu, quasi sempre è più veloce il calcolo su gpu, ( con qualche limitazione su alcune features) soprattutto su quelle di fascia alta, nonostante il primo calcolo adotti algoritmi di calcolo parziale (biased) ma forse in qualche caso, e con due cpu, potresti avere un ribaltamento del risultato, pochi casi secondo me, se ci sono.
Stessa cosa su Blender, con Cycles, in maniera più marcata, perchè l'algoritmo è lo stesso.
Se invece confronti due engine diversi sulla stessa scena, che so Corona (cpu unbiased) ed Octane (gpu ubiased) probabilmente avresti tempi migliori con il primo, soprattutto interni...ma non è detto, dipende dalla scena, e dall'hardware, con due gtx di fascia alta la vedo dura per Corona, ma anche qui, dipende dalla scena.
Se poi usi un Realtime di alta qualità, come Unreal Engine, su alcune scene a parità di qualità, asfalta tutti, con una qualità a dir poco sbalorditiva, è il futuro.
Considera poi che gli engine gpu su CUDA/OpenCL hanno il limite della memoria ram, la scena infatti va sulla memoria della gpu, se contiene, molte decine di milioni di poligoni, la vram della scheda potrebbe non bastare, ed il render non parte. Per questo motivo, se esiste l'esigenza dell'alta qualità, per render archiviz, grandi, si sceglie un unbiased cpu, e Corona in questo sta riscuotendo molto successo.

Ti do un consiglio, non ne vieni fuori così, fissa alcune tue esigenze:
-che render realizzi? (interni, esterni, modelli con milioni di poligoni, solo migliaia ecc)
-che tipo di hardware hai/vuoi acquistare e con quale budget?
-quali tempistiche di render sono idonee per il tipo di lavoro che fai?
Di conseguenza decini l'engine, possibilmente dopo aver provato quelli che si adattano ai tuoi scopi.
Se fai il consulente valuta per ogni studio lquali sono le scelte migliori, e fai a loro queste domande.
Impeccabile! E in ogni caso i punti di partenza sono sempre quelli da te elencati alla fine.
 

rctimelines

Utente registrato
Professione: Consulente Hard/Software per studi di progettazione, imprese, aziende
Software: AutoCAD, Revit, Inventor, Vectorworks, Allplan, Archicad, Solidworks, Blender, C4D
Regione: Friuli Venezia Giulia
#9
Come risultato avresti tutto e il contrario di tutto, e non ti porterebbe da nessuna parte.
Ci sono engine di render che sono ottimizzati per la cpu, altri per la gpu, solo alcuni hanno entrambi i sistemi di calcolo, tra questi certi nascono per la cpu, ed hanno aggiunto CUDA, altri nascono con CUDA e permettono anche il calcolo solo cpu ( che non ha senso, esiste solo per sommare l'hardware).
Poi ci sono quelli biased (quasi sempre cpu, uno solo gpu, RedShift che va su CUDA, che credo abbia il record di velocità su gpu) ed unbiased (quasi tutti gpu, ma anche cpu) Poi ci sono i biased la cui controparte gpu, non è biased manco per niente, tipo Vray.
Ha ragione thelittlesniper, è un universo.

Ti faccio alcuni esempi.
Se tu usi la stessa scena su Vray, prima cpu poi gpu, quasi sempre è più veloce il calcolo su gpu, ( con qualche limitazione su alcune features) soprattutto su quelle di fascia alta, nonostante il primo calcolo adotti algoritmi di calcolo parziale (biased) ma forse in qualche caso, e con due cpu, potresti avere un ribaltamento del risultato, pochi casi secondo me, se ci sono.
Stessa cosa su Blender, con Cycles, in maniera più marcata, perchè l'algoritmo è lo stesso.
Se invece confronti due engine diversi sulla stessa scena, che so Corona (cpu unbiased) ed Octane (gpu ubiased) probabilmente avresti tempi migliori con il primo, soprattutto interni...ma non è detto, dipende dalla scena, e dall'hardware, con due gtx di fascia alta la vedo dura per Corona, ma anche qui, dipende dalla scena.
Se poi usi un Realtime di alta qualità, come Unreal Engine, su alcune scene a parità di qualità, asfalta tutti, con una qualità a dir poco sbalorditiva, è il futuro.
Considera poi che gli engine gpu su CUDA/OpenCL hanno il limite della memoria ram, la scena infatti va sulla memoria della gpu, se contiene, molte decine di milioni di poligoni, la vram della scheda potrebbe non bastare, ed il render non parte. Per questo motivo, se esiste l'esigenza dell'alta qualità, per render archiviz, grandi, si sceglie un unbiased cpu, e Corona in questo sta riscuotendo molto successo.

Ti do un consiglio, non ne vieni fuori così, fissa alcune tue esigenze:
-che render realizzi? (interni, esterni, modelli con milioni di poligoni, solo migliaia ecc)
-che tipo di hardware hai/vuoi acquistare e con quale budget?
-quali tempistiche di render sono idonee per il tipo di lavoro che fai?
Di conseguenza decini l'engine, possibilmente dopo aver provato quelli che si adattano ai tuoi scopi.
Se fai il consulente valuta per ogni studio lquali sono le scelte migliori, e fai a loro queste domande.
Ringrazio per lo sforzo della dettagliata spiegazione, ma la mia domanda era di altro tipo. Intanto, io faccio già del rendering, le differenze tra biased e unbiased le conosco, così come gran parte di quelle sulle caratteristiche del motore di render. Il fatto che una scheda grafica abbia potenza di calcolo in teraflops lo so, ma il fatto è che è il tipo di algoritmi che è diverso. Il calcolo parallelo/vettoriale per cui questo processori sono pensati esegue in massa (su vettori) operazioni semplici e quindi sviluppa potenze di calcolo maggiori. Sono lo stesso tipo di calcolo che effettuano i supercomputer.

Comunque la mia domanda era molto più semplice e scrivevo qui perché speravo di trovare delle indicazioni utili, o che fosse argomento già discusso. La potenza di calcolo di CPU e GPU la posso trovare nelle schede tecniche dei prodotti, ciò che mi servirebbe sarebbe una tabella comparativa dei tempi di render per la stessa scena da parte di motori basati su CPU e motori che usano GPU.. per evitare di fare da solo le prove nell'impossibilità di acquistare tutte le tipologie di componenti

Inviato dal mio Nexus 5 utilizzando Tapatalk
 

thelittlesniper

Utente poco attivo
Professione: Disegnatore
Software: Auto CAD, Revit
Regione: Alto Adige
#10
mi servirebbe sarebbe una tabella comparativa dei tempi di render per la stessa scena da parte di motori basati su CPU e motori che usano GPU.. per evitare di fare da solo le prove nell'impossibilità di acquistare tutte le tipologie di componenti
Boh, non capisco il senso di questa cosa. Una scena otimizzata con il motore X per cpu e la stessa scena otimizzata con il motore Y per la gpu... o ci capiamo male, o non capisco il concetto oppure hai un po di confusione anche tu su cosa vuoi trovare.
Semplificando magari il concetto, alla tua domanda: "mi servirebbe una tabella comparativa dei tempi di render per la stessa scena da parte di motori basati su CPU e motori che usano GPU", io ti risponderei: "per scegliere un acquisto tra varie gpu? o tra varie cpu? o scegliere il motore di render?"

Prova a vedere con Cinebench i risultati che trovi on-line magari c'é quel che cerchi. Oppure qui (anche se é un sito principalmente per overclock): https://hwbot.org/benchmarks
 

rctimelines

Utente registrato
Professione: Consulente Hard/Software per studi di progettazione, imprese, aziende
Software: AutoCAD, Revit, Inventor, Vectorworks, Allplan, Archicad, Solidworks, Blender, C4D
Regione: Friuli Venezia Giulia
#11
Evidentemente: per scegliere il motore di rendering ed eventualmente per capire economicamente quale soluzione è più conveniente adottare.

Faccio io un esempio: il computer mi serve per la modellazione ma faccio un paio di rendering al mese, economicamente mi conviene: 1) utilizzare la stessa CPU orientandomi su una più consona al rendering (più cores), 2a) utilizzare la GPU o 2b) acquistarne una dedicata molto potente, 3) costruire una workstation dedicata, 4) farlo da fare fuori ad una renderfarm.

Supponiamo che dispongo di una vecchia FirePro v4800: ci impiega davvero meno a renderizzare una scena di quanto fa la CPU?.. metti un Ryzen 7 2700x??

Inviato dal mio Nexus 5 utilizzando Tapatalk
 

thelittlesniper

Utente poco attivo
Professione: Disegnatore
Software: Auto CAD, Revit
Regione: Alto Adige
#12
Ah ok ecco. Queste sono valutazioni che dovresti fare in base alle tue esigenze/budget ma se non sono rendering pesanti e l'applicazione lo consente io ti consiglierei di spendere un po sulla gpu cosi renderizzi con quella. Ovvio che se invece usi programmi che la gpu non la digeriscono dovrai per forza optare per una buona cpu ma di conseguenza anche un buon quantitativo di ram e la scheda video potrá essere anche una entry-level.
Le renderfarm non so quanto chiedano per il servizio e piuttosto a quel punto lascia in renderizzazione a pausa pranzo o la notte in modo da non perdere tempo.
Se il budget é alto e il programma sfrutta sia cpu che gpu allora il problema non si pone piú e ti fai un sistema completo nuovo per lavorare e renderizzare ma escluderei il discorso "maccchina esclusiva per render".
In ogni caso sulla carta una Firepro v4800 ha 20 volte la capacitá di calcolo di un Ryzen 2700x.
 

enri

Utente Senior
Professione: Architetto
Software: Rhino-VectorWorks e altri
Regione: Italia
#13
Evidentemente: per scegliere il motore di rendering ed eventualmente per capire economicamente quale soluzione è più conveniente adottare.
E' proprio questo il concetto sbagliato, non puoi. C'è anche una certa difficoltà nell'avere render della stessa scena con engine diversi. Avevo visto in una recensione di motori di render una cosa simile, tempo fa, ma non se ne deduce niente, ti porta ancora più fuori strada, i parametri sono troppi, poi dovresti trovare proprio quel tipo di scene che realizzi tu, dai sw che vedo usi forse archiviz.
Se vuoi un consiglio, la "formula" hardware+velocità+budget basso più vincente secondo me, considerando appunto l'archiviz, è prendere una RTX 2080, ed usare Unreal Engine (ad uso gratuito), vedrai che è una bomba, dai un occhiata ad alcuni render o animazioni su youtube, farai fatica a distinguere le immagini con un engine raytracing. Poi nei prossimi mesi ci sarà il pieno supporto alle RTX, a quel punto avrai il relatime global illumination, da rimanere a bocca aperta.
Se invece mantieni quell'hardware li, lascia perdere il render gpu con la FirePro, per essere veramente efficienti la scheda deve essere minimo una gtx di fascia alta.
In questo caso devi buttarti su un biased cpu, veloce per giunta, Vray sarebbe il top; soluzione più economica, usarlo come plugin in Blender.
 

rctimelines

Utente registrato
Professione: Consulente Hard/Software per studi di progettazione, imprese, aziende
Software: AutoCAD, Revit, Inventor, Vectorworks, Allplan, Archicad, Solidworks, Blender, C4D
Regione: Friuli Venezia Giulia
#14
E' proprio questo il concetto sbagliato, non puoi. C'è anche una certa difficoltà nell'avere render della stessa scena con engine diversi.
cioè? I motori di render decidono cosa uno vuole renderizzare??

Se vuoi un consiglio, la "formula" hardware+velocità+budget basso più vincente secondo me, considerando appunto l'archiviz, è prendere una RTX 2080, ed usare Unreal Engine (ad uso gratuito), vedrai che è una bomba, dai un occhiata ad alcuni render o animazioni su youtube, farai fatica a distinguere le immagini con un engine raytracing. Poi nei prossimi mesi ci sarà il pieno supporto alle RTX, a quel punto avrai il relatime global illumination, da rimanere a bocca aperta.
Se invece mantieni quell'hardware li, lascia perdere il render gpu con la FirePro, per essere veramente efficienti la scheda deve essere minimo una gtx di fascia alta.
Quello della FirePro era un esempio per dire di una scheda scarsa, che non credo possa raggiungere i tempi di una buona CPU.. in ogni caso la valutazione non era per me.
In ogni caso stiamo parlando sempre di raytracing per render fotorealistico, non intendo assolutamente il render di immagini con le Direct x, gli effetti delle schede Rtx non mi interessano, per quelle si considerano solo il numero di vcores (CUDA) di una o più schede

In questo caso devi buttarti su un biased cpu, veloce per giunta, Vray sarebbe il top; soluzione più economica, usarlo come plugin in Blender.
Io uso già Vray (come motore in c4d) e anche Blender (con il suo motore biased), come unbiased utilizzo Maxwell.



Inviato dal mio Nexus 5 utilizzando Tapatalk
 

enri

Utente Senior
Professione: Architetto
Software: Rhino-VectorWorks e altri
Regione: Italia
#15
Se riesci a trovare un confronto del genere, e la vedo dura, non ti dirà niente, perchè la stessa scena può adattarsi bene ad un engine, ma non all'altro.
Ti assicuro, faresti molta fatica a riconoscere un render fatto con Unreal con uno fatto con engine come vray o altro, gli "effetti" di cui parli rappresentano un vero e proprio RayTracing realtime, tramite directx, qui puoi vedere un esempio, e parliamo di un animazione, praticamente realtime o giu di li. Anche Caos svilupperà in questa direzione, si chiama Project Lavina ( qui e qui ) ma se non hai una RTX per ora niente.
 

Tristus

Utente registrato
Professione: Geometra
Software: Autocad, 3ds Max
Regione: Sardegna
#16
Eppure sarebbe interessante vedere una comparazione del tipo:

Stessa scena, stesso processore, stessa ram, stesso motore di rendering... pero' una scena renderizzata Cpu e l'altra Gpu. Anche se i pc fossero differenti si potrebbe comunque avere un'idea piu' precisa.
Forse di questi tipi di comparazione se ne fanno pochi. Oggi, quando fai una ricerca sulle schede video, ti esce tutto un universo dedicato al gaming, con benchmarks di sopra, di sotto, di lato.... e poco o nulla al rendering, quello che interessa a noi.
 

Tristus

Utente registrato
Professione: Geometra
Software: Autocad, 3ds Max
Regione: Sardegna
#17
Secondo il mio modesto parere, qualche compromesso si è costretti a farlo.
Forse nei video è piu' facile scoprire delle piccole magagne. Piccoli compromessi a cui bisogna scendere per avere il cosiddetto tempo reale (che a mio avviso lo si potrà vedere solo quando usciranno i computer quantistici, se mai riusciranno a realizzarli). Pero' il risultato è ottimo ugualmente.

https://upload.wikimedia.org/wikipe...h.com_-_Viennese_apartment.webm.480p.vp9.webm
 
Ultima modifica: