PDA

Visualizza Versione Completa : Pentium D e rendering...



DanLee
25-05-06, 23:17
Ciao a tutti, finalmente ho per le mani la 8.5 completa e finalmente mi sono assemblato un nuovo PC :D

Volevo dei chiarimenti in merito al multithreading, ovvero cosa si intenda di preciso per thread in LW! Sul corso pratico, come anche su varie risorse in rete, leggo che và settato un thread per ogni CPU/Core (o CPU logica, come nel caso di HT).

Ora ho notato una stranezza, non sò bene se sia un bug! Per conferma, ho usato come test sia FirewalkSample.lws (in diversi formati di esportazione video...), sia TeasetSample.lws.
In pratica, se setto un solo thread in taluni casi il rendering risulta più veloce rispetto a due thread (nel caso di Firewalk, per esempio, nel calcolo volumetrics si blocca leggermente per ogni fotogrammam ed in ogni caso vedo solo una sezione nel calcolo), mentre se setto a 4 threads tutto và decisamente più veloce (e le volumetrics vengono calcolate in due sezioni), cosa incomprensibile visto che il mio pentium D è un 950 (non EE, quindi in pratica senza HyperThreading e di conseguenza solo due CPU fisiche invece che 2 fisiche e 2 logiche...)

Cosa anche confermata usando la scena TeasetSample, e provando tutte e quattro le opzioni di multithreading. In pratica, con uno ho un minuto in più di calcolo rispetto a due, e il due con più di mezzo minuto rispetto a 4 e 8 (quindi in definitiva, con due thread ho valori più alti di uno ma più bassi di 4 e 8 !!!!).

Sapete mica per quale motivo succeda ciò??

Ho windows XP Pro aggiornatissimo ed ottimizzatissimo, senza alcun task in memoria (la workstation fà solo grafica in pratica).
Pentium D 950, 2 GB DDR DualChannel e HyperPath di Asus attivato.

Se interessano, posso fornire altri dati.

Premesso che il task manager mostra il regolare lavoro dei due core, che Cinema 4D funziona ottimamente e mi conferma la cosa Cinebench ed altri benchmark!!

Grazie a tutti.
D.

gebazzz
26-05-06, 01:32
sì sì: lw funziona meglio impostando il 4 thread se si hanno 2 core o 2 processori. la spiegazione? ... boh :D sicuramente, lw divide l'immagine in tanti segmenti quanti sono i core; se un segmento finisce, il core/cpu libera non va ad aiutare l'altro, ma rimane in attesa del prossimo frame.. ecco probabilmente il motivo x cui impostando 4T questo problema si minimizza.

con 8T invece io ho sempre ottenuto risultati peggiori rispetto ai 4T.. a mio parere, ognuno deve fare le proprie prove e vedere come va sul proprio sistema, nn preoccupandosi della nn corrispondenza core/thread nel caso più performante.

'sto discorso vale fino a lw8.x ... poi magari lw9 sarà diverso eh.. ma fin quando nn esce nn si può provare.

vashts

DanLee
26-05-06, 08:10
Grazie mille vashts, in effetti non riuscivo molto a capire la cosa...
Anzi, in un primo momento temevo che non ci fosse un pieno supporto al dual core (anzi ho letto pure che siccome alcuni plugin non supportano il multithreading un core/cpu spesso non viene sfruttato!!

Magari la prossima volta rompo le scatole direttamente a voi!

Grazie gentilissimo come sempre.
D.

DanLee
30-05-06, 21:23
Ciao, segnalo la cosa anche se il tutto và ancora testato da me e da altri :D

Leggendo nella KB di Ms questo articolo http://support.microsoft.com/?id=896256 , ho voluto approfondire la cosa e mi sono procurato la relativa patch (al momento ancora non rilasciata per il download da MS in quanto in fase di test!).

Dopo aver installato la suddetta e dopo aver fatto la relativa modifica nel registry, magicamente il rendering con due thread è notevolmente velocizzato (nel senso che non è più presente il delay nel calcolo delle volumetriche, anche se però vengono sempre calcolate in un'unico thread).
Boh! Continuo a testare, e comunque noto una migliore gestione anche con cinema 4d (non di particolare rilevanza, ma col radiosity si nota un pò di più...).

Ciao.

gebazzz
30-05-06, 22:32
grazie della segnalazione.. ora ci do un occhio.

'sto discorso vale fino a lw8.x ... poi magari lw9 sarà diverso eh.. ma fin quando nn esce nn si può provare. che bischerata che avevo fatto.. nn potendo parlare x l'nda di lw9 avevo scritto 'sta cosa pienda di "forse" "magari" "ma può essere che.." :D
ora che posso dire le cose come stanno, la perspective camera di lw9 divide dinamicamente le parti di immagine da calcolare.. quindi se un thread finisce prima la sua parte, si occuperà di aiutare l'altro thread a finire la sua, ridistribuendo sempre le parti di immagini ancora da renderizzare.

vashts

DanLee
31-05-06, 08:23
eheheh, beh!, anche io ho messo dei forse, con tutto che ormai conosco Ms è sò per certo che i suoi forse e i "non in tutti i sistemi" significano che il problema c'è ed è per tutti (o quasi!!) :D

Grazie per la info.
D.