Come usare tutte le cpu per le codifiche video

fede_ ha scritto il 20.10.2012 ore 19:35

Ciao a tutti

Più che una domanda è una constatazione e un metodo per risolvere

Ho notato che, codificando un video, il numero di cpu usate per la codifica erano sempre minuri di quelle in mio possesso.

In pratica il mio I7 multicore (4 + hiperthreading ovvero 8 core) risultava che per una codifica impegnava "solo " 4 o 5 cpu e le altre erano in modalità "parking"

Ho cercato su internet ed ho visto che la modalità "parking" è utilizzata per diminuire il consumo delle cpu, inoltre, così facendo, si abbassa anche la temperatura di funzionamento della macchina.

Ho trovato anche un semplice programmino che si chiama "Unpark-CPU-App" il quale scrive sul registro di sistema di non parcheggiare la cpu.

ATTENZIONE QUESTA APPLICAZIONE POTREBBE AUMENTARE LA TEMPERATURA DELLA CPU E SICURAMENTE IL CONSUMO DELLA CPU NEI PORTATILI CON CONSEGUENTE DIMINUIZIONE DELLA DURATA DELLE BATTERIE

Una volta lanciata l'applicazione e disabilitato il park delle cpu ho ottenuto questo

Ovvero tutte e 8 le cpu lavorano in fase di codifica e ho diminuito il tempo passando da 5,58 minuti a 3,56 per un mio filmato da codificare in mpeg.

Per vedere i dati dello screenshot (per chi non è pratico di windows 7 ho fatto cos':

1) premuto contemporaneamente ctrl + alt + canc

2) è comparsa la richiesta ed ho avviato la gestione attività

Ho fatto click su "monitoraggio risorse ed è comparsa la finestra di monitoraggio.

Li si può scegliere se vedere la cpu o, volendo, anche l'impegno del disco (molto utile per verificare eventualii rallentamenti).

 

PS con questo tool ho scoperto che, mentre codificavo, la semplice copia di un mio video su un disco esterno ha abbassato la velocità di scrittura sul disco da 38 MByte a 2 MByte con aumento incredibile del tempo di codifica. L'unico modo per uscire da questa condizione è stato quello di chiudere vdl e riaprirlo, a questo punto rimandando la copia su chiavetta in un altro momento, ho potuto codificare a velocità medie di 38 /40 MByte al secondo

Per concludere ecco il link per scaricare l'applicativo indicato per eliminare il park delle cpu

ci sono due link

Il primo è un papplicativo che non deve essere installato ma disabilita o abilita senza controllo

http://www.coderbag.com/Programming-C/Disable-CPU-Core-Parking-Utility

Il secondo è un applicativo disponibile per sistemi a 64 o a 32 bit che permette di selezionare in funzione della alimentazione del pc

http://bitsum.com/about_cpu_core_parking.php

Spero sia utile

Fede

Commenti

maxcon62 ha scritto il 21.10.2012 ore 07:40

molto utile ..non lo conoscevo

Se hai una scheda video performante .. e la versione di video deluxe MX ( ed ancora meglio con la versione 2013, dove la funzione è stata migliorata) hai provato ad esportare usando la gpu al posto della cpu?

 

Freefly ha scritto il 22.10.2012 ore 08:14

 Grande Fede !!

Tu hai installato la seconda ?

@Max : hai provato ad esportare usando la gpu al posto della cpu?

Mai fatto, come si fa ?

fede_ ha scritto il 22.10.2012 ore 08:38

 Grande Fede !!

Tu hai installato la seconda ?

@Max : hai provato ad esportare usando la gpu al posto della cpu?

Mai fatto, come si fa ?

Prima ho provato con la prima applicazione, ho visto che funzionava, ho fatto varie prove, poi ho usato la seconda perchè ti permette di gestire anche i sistemi a 64 bit  e di selezionare il tipo di alimentazione (rete / batteria) e, per chi ha un portatile forse è consigliata.

Piccolo appunto per il Cuda:

L'uso dell'acceleratore grafico viene preso in considerazione durante la visualizzazione. Il principio nasce dall'esigenza di vedere "meglio" le  costruzioni poligonali (e sono tante) che i programmi di creazione generano.

Ho notato immense differenze (per me che non uso il pc per giocare) nell'uso di programmi sia di produzione 3D sia di rendering, con la "spinta" di potenza del processore grafico ottengo ottimi risultati in metà tempo.

Anche la velocità di visualizzazione di effetti (luminosità, contrasto, cambi colore), sono notevolmente aumentati. La visualizzazione è decisamente meno frustrante per il preview di applicativi 3d ed effetti che usano molto il necessario calcolo grafico.

Però  il rendering finale, non lo fa la scheda grafica ma il processore.

Se il sistema di rendering facesse come i software di "ripping", sicuramente si denoterebbe un aumento notevole di velocità (i software riproducono sulla scheda grafica il file video per poi "acquisirne" contemporaneamente i frame per poter "togliere" le protezioni). Non credo (e non è questo il luogo) che esistano software di ripping con uso del cuda o dei multiprocessori.

Per finire, visto il grande rallentamento del trasferimento di dati generato dall'inserzione di una memoria usb e visto che, al contrario di quanto indicato nel mio post originario, solo con il riavvio del pc riesco a riportare il transfer rate di ricodifica a circa 30 / 40 MByte, ora faccio approfondimenti su come evitare che l'inserzione di device "lenti" comprometta definitivamente la velocità del programma. (immagino ci sia un timeout del sistema di uso delle porte usb)

Prossimamente scriverò un tutorial sulle impostazioni

Stay tuned.

Fede 

maxcon62 ha scritto il 22.10.2012 ore 10:31

@Max : hai provato ad esportare usando la gpu al posto della cpu?

Mai fatto, come si fa ?

per la renderizzazione in mpg4 dalla versione MX(2012) c'è il supporto della gpu che a volte ( se la scheda è performante) è più veloce del processore

mentre nella versione MX (2012) bisogna settare quali sono i driver grafici .. cuda per le schede Nvidia e open cl per le schede Ati, nella versione 2013 il riconoscimento è automatico ...

per settare la renderizzazione con la gpu basta nella finestra di esportazione cliccare su "avanzate" ...scegliere  il tipo di driver cuda o opencl per la versione 2012 (mx) , mentre basta spuntare la casella "accelerazione Hardware" per la versione 2013

video deluxe 2013

Freefly ha scritto il 22.10.2012 ore 23:11

 

@Max : hai provato ad esportare usando la gpu al posto della cpu?

Mai fatto, come si fa ?

per la renderizzazione in mpg4 dalla versione MX(2012) c'è il supporto della gpu che a volte ( se la scheda è performante) è più veloce del processore

mentre nella versione MX (2012) bisogna settare quali sono i driver grafici .. cuda per le schede Nvidia e open cl per le schede Ati, nella versione 2013 il riconoscimento è automatico ...

per settare la renderizzazione con la gpu basta nella finestra di esportazione cliccare su "avanzate" ...scegliere  il tipo di driver cuda o opencl per la versione 2012 (mx) , mentre basta spuntare la casella "accelerazione Hardware" per la versione 2013

video deluxe 2013

 

Buono a sapersi, grazie Max !!

Freefly ha scritto il 22.10.2012 ore 23:15

 

[....]

Prossimamente scriverò un tutorial sulle impostazioni

Stay tuned.

Fede 

 

 

Ottimo !! Bravo Fede bella iniziativa...

C'è da capire bene se si hanno ulteriori vantaggi su una scheda cuda, oppure no...

Attendiamo..

maxcon62 ha scritto il 23.10.2012 ore 11:00

@ Freefly

mi sembra che hai una nvidia quadro 4000 penso...che è un'ottima scheda .. anzi una della migliori !

Freefly ha scritto il 23.10.2012 ore 17:42

@ Freefly

mi sembra che hai una nvidia quadro 4000 penso...che è un'ottima scheda .. anzi una della migliori !

 

Si esatto ho una quadro 4000...

e per quello mi chiedevo se questa applicazione, possa dare giovamenti, utilizzando anche tutti i core...

 

 

fede_ ha scritto il 23.10.2012 ore 19:03

@ Freefly

mi sembra che hai una nvidia quadro 4000 penso...che è un'ottima scheda .. anzi una della migliori !

 

Si esatto ho una quadro 4000...

e per quello mi chiedevo se questa applicazione, possa dare giovamenti, utilizzando anche tutti i core...

 

 

Ciao

Da quel che ho potuto capire da un articolo sul cuda:

L'architettura comunica con la cpu e la sgrava del peso di calcolo grafico.

In particolare di tutti i calcoli relativi alle costruzioni di polilinee (disegni 3 cad) e dei mash (rendering)

Anche l'interpolazione frame to frame (nella codifica) viene aiutato dal cuda.

Però, nell'articolo (pc-professionale) viene detto che per l'exporting e l'importing di flussi video il processore grafico (attende).

Sicuramente con il cuda dovresti trovare giovamenti nel rendering della visualizzazione (e di conseguenza nel preview), Per la codifica, non tutto viene gestito dal cuda e, quindi, più potenza processore c'è, meglio è.

Il sistema di evitare il parcheggio della cpu, unito al cuda, aumenta la velocità di esecuzione del prodotto finale.

Un'altro articolo (della adobe), però dice che per trovare vero giovamento nel cuda bisogna avere molta memoria grafica e molto veloce

C'è anche un calcolo relativo al numero di pixel per frame e il numero di frame per secondo per valutare quanta memoria occorre (una "caterba")

Io ho notato un sensibile incremento nella velocità del file mpeg che, con alcuni core "parcheggiati" non avveniva.

Appena avrò un poco di tempo pensavo di fare (dello stesso file) la codifica con e senza cuda, con e senza parching e con e senza parching con cuda. Misuro i tempi di ogni compilazione e poi ne riporto i risultati.

Se volete provare anche voi, così possiamo confrontare i dati.

PS prima di fare ogni prova riavvio il pc (così non entra in gioco lo spiacevole rallentamento che ho visto appena inserito il mio driver usb.

Attendo vostre nuove

PS.... Forse è meglio che ci spostiamo di sede (qui http://www.magix.info/it/forum/1-tutto-sui-programmi-magix/10-video-deluxe/#/topics/?page=1&limit=10&sort=newest_topics_answers nel forum) invece che in domande e risposte.

Fede

fede_ ha scritto il 24.10.2012 ore 14:10

Aggiunta di dettagli qui, si spiega come NON usare il programma per togliere il park indicato perchè già presente in windows

http://www.magix.info/it/come-usare-tutte-le-cpu-per-le-codifiche-video.forum.861737.html?msg=commentadded

Fede