Vai al contenuto

Gruppo Aperto  ·  89 utenti

Blender
Gattotondo

Dubbi su Cycles: tiles e GPU

Recommended Posts

Ciao a tutti,

Giusto per farmi un'idea dei tempi e impostazioni di Cycles in Blender 2.8, ho scaricato la scena del bagno di Davide Tirindelli e renderizzata in verticale a risoluzione 2K (1440X2560).

Ho provato a renderizzare con in varie modalità, settando i samples a 700 e avendo il denoise attivato con 2X 980 Ti e xeon e dimensione tiles a 256.

GPU+CPU: 10 min

GPU: 7.20 min

Quindi sbaglio qualche impostazione o semplicemente alla CPU sono demandati calcoli che essendo più lenta, anche quando le GPU hanno finito di lavorare, comunque sono esclusiva della CPU? Quindi in OGNI caso GPU+CPU sarà più lenta? 3 minuti su 10 sono una botta di lentezza in più!

 

Poi ho provato a variare la grandezza dei tiles con le sole GPU attive in rendering:

con tiles piccoli (16): 10 min

con tiles medio/grandi (512): 6.45 min

con tiles molto grandi (1024): era abbondantemente oltre i 10 min. (ho fermato il calcolo ma sarebbe stato almeno 12/13 min

C'è un metodo per calcolare la grandezza dei tiles più conveniente in termini di tempi o no? E soprattutto la loro grandezza più conveniente è indipendente dal tipo di scena, illuminazione e materiali e legata solo alla risoluzione del rendering?

 

Ultimo quesito, ho cercato nel net ma ci sono pareri discordanti, Cycles digerisce il mischiare GPU Maxwell con Pascal (GTX 9.XX con 10XX) o proprio no o servono accorgimenti particolari?

 

Grazie!!! 🤩

 

 

 

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Ciao, da quello che ho potuto vedere e provare in generale per l'ottimizzazione dei tiles, la migliore ottimizzazione a cui si possa puntare è che tutti i tiles finiscano "assieme" quando c'è in ballo anche la CPU evitando così di lasciare qualche Core->Tile libero perchè gli altri sono tutti presi da altri thread. Credo sia necessario trovare il giusto compromesso per sfruttare tutta la potenza disponibile per tutta la durata del rendering e non lasciare alcuni thread/o GPU Tile inoccupati fino alla fine del calcolo.

Sarebbe bello se ci fosse un modo di calcolarlo in automatico, ma ho visto che varia in base al tipo di scena, questo è quello che io ho potuto constatare, che non c'è una regola ma che questa ottimizzazione va fatta scena per scena, spero di sentire anche altre persone che hanno fatto altri test su più scene 😉

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
Inviata (modificato)

Nella 2.79 c'era un addon che in automatico ti settava i tile per cpu e gpu in maniera ottimale. Mi sembrava che 256 o 516 tile erano ottimali in gpu compute, per immagini multiple di questi pixel, del tipo 516px x 516 px quindi 516 tile, bisognerebbe che i tile fossero della medesima grandezza, quindi il calcolo va fatto suddividendo l'immagine in tile che siano in rapporto con i pixel, più o meno come lavora l'autotile.

https://en.blender.org/index.php/Extensions:2.6/Py/Scripts/Render/Auto_Tile_Size

 

Per il discorso schede di generazione diversa ho visto sui post di benchmark configurazioni molto varie, per cui non penso ci siano problemi di architetture recenti tra loro.


Modificato da peperepe77

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Ciao peperepe77, ogni tanto ci si risente 😄 

Si l'ho provato, ma sinceramente ottimizzavo meglio io, penso perchè ci siano troppe variabili, e credo che l'aggiunta del Tile GPU complicherebbe un pò il calcolo perchè è molto più rapida di un Tile CPU, pensiero mio 🤔

 

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Ciao Loris, seguo in modalità silenziosa da un po'😁😁😁

Penso che ottimizzare a mano sia la soluzione più semplice, a parte le dimensioni studiate ad hoc coi pixel dell'immagine, nel caso cpu+gpu si deva mediare la grandezza un po' a favore della cpu, magari nella scena che parlava Gattotondo, 64 tile magari portano a miglioramento, servirebbero dei test, che su ogni configurazione di workstation possono risultare diversi.

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
Inviata (modificato)

Ho fatto alcuni test con la scena che ho in lavoro in questo momento, sul portatile con un i5 e 920 di gpu.

Gpu da sola più lenta della cpu, per la prima i tiles sono stati settati con un divisore di 10 rispetto ai pixel del render finale ( 1892x1450 ->189x145) tempo sui 3 min, per cpu ho rimpicciolito (1892x1450 ->189/4  x  145/4) sui 2 min.

Calcolo ibrido cpu+cpu  1892x1450 ->189x145 per il risultato migliore min 1.38, ho provato anche il classico 256x256 e risulta 1.50 min.

Dimenticavo, blender 2.79 daily release del 11/10


Modificato da peperepe77

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Grazie di cuore a tutti per le delucidazioni. 😉

Felice di farmi dare una mano anche da te, Loris.

 

Alla fine il concetto è chiaro riguardo il comportamento dei tiles solo con GPU o CPU, molto meno chiaro (nel senso lungo da gestire) quello con entrambe che calcolano.

Inoltre ho chiesto lumi tra Maxwell e Pascal perché la mia idea alla luce dei test è di prendere la 1060 o 1070 (quando avranno prezzi da 'nerd con la 1060/1070' che vuole subito la RTX e se ne vuole liberare... 😄), affiancarla alle 2 980Ti e far gestire solo Windows, i monitor e le viewport in tempo reale, lasciando alle 980Ti solo il render puro senza stressarle durante il settaggio scena, così dovrebbe durare tutto di più e con le CPU 'spente' anche durante i rendering ho il totale controllo sui pc e magari rischio meno che troppi calcoli ibridi mi facciano crashare Blender.

 

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Giusto per chirarirmi un pelo le idee su tiles e beta 2.8 ho rifatto il render GPU e GPU+CPU tenendo presente anche il metodo utilizzato da @peperepe77 e @Magog sempre usando la scena condivisa del bagno a 700 samples.

Oltre la risoluzione 2K ho usato solo GPU perchè secondo me già da come lavoravano in 2K o hai processori veramente tosti oppure se hai GPU potenti non c'è verso che la loro influenza (CPU) sia in qualche modo vantaggiosa. Ovvio che se si ha una scheda video poco performante diventino fondamentali, così come i calcoli di peperepe77. In ogni caso, i tiles a 256 sembrano imbattibili a qualsiasi risoluzione, aumentandola anche molto invece di assottigliarsi il vantaggio rispetto ai tiles da 512, aumenta, quindi direi che 256 è la scelta più azzeccata.

Blender Beta 2.8

2K 1440 X 2560

GPU+CPU 32 X 32 time 05.55
GPU+CPU (1440/10)/4=36 X (2560/10)/4=64 time 06.12 (metodo peperepe77)
GPU+CPU 64 X 64 time 06.12
---

GPU 256 X 256 time 05.29

GPU (1440/10)=144 X (2560/10)=256 time 05.55 (metodo peperepe77)
GPU 512 X 512 time 06.00
---
---
4K 2160 X 3840
GPU 256 X 256 time 11.57
GPU 512 X 512 time 13.05
---
---
Res 2520 X 4480
GPU 256 X 256 time 15.50
GPU 512 X 512 time 17.33

 

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Le impostazioni che utilizzo sempre io, ma oramai ho di default il 32*32..
Solo CPU invece? _:lol:

Interessante vedere le tempistiche solo GPU siano inferiori al binomio GPU+CPU.
C'è da dire che ovviamente il calcolo che fa la scheda passando dal suo valore migliore 256 a 32 credo che siaè normale che si vada ad infierire sul risultato finale in termini di tempi.

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
Inviata (modificato)
3 hours ago, Magog said:

Le impostazioni che utilizzo sempre io, ma oramai ho di default il 32*32..
Solo CPU invece? _:lol:

Interessante vedere le tempistiche solo GPU siano inferiori al binomio GPU+CPU.
C'è da dire che ovviamente il calcolo che fa la scheda passando dal suo valore migliore 256 a 32 credo che siaè normale che si vada ad infierire sul risultato finale in termini di tempi.

 

Sole GPU più veloci confrontate a un dual xeon vetusto anche se performante, il buon dual x5660 12c-24 3ad. Potrei overcloccarli di brutto e vanno parecchio più forte dei x5690 dell'altra macchina, ma non ha molto senso, e con i mostri che ci sono in giro ora (dico anche solo un 'vecchio' dual E5 usato con dei buoni processori fa faville...) sicuramente mi aspettavo tempi molto più alti con le sole cpu a quella risoluzione.

2K 1440 X 2560

CPU 16 X 16 time 34.22
CPU 32 X 32 time 34.57


Modificato da Gattotondo

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Stai utilizzando la versione 2. 79 giusto?

Con la 2.80 in teoria dovresti avere ulteriori miglioramenti...

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Entra nel Club

Devi essere un utente del Club per poter lasciare un commento. Entra


  • Navigazione recente   0 utenti

    Non ci sono utenti registrati da visualizzare in questa pagina.

×