OpenCL: test di implementazione interna in MQL5 - pagina 24

 

Mettere la memoria in modalità dual channel, risultato: 39x accelerazione invece di 29x.

2012.03.05 09:45:56     ParallelTester_00-01 x (EURUSD,D1)       OpenCL init OK!
2012.03.05 09:45:57     ParallelTester_00-01 x (EURUSD,D1)       GPU time = 1123 ms
2012.03.05 09:45:57     ParallelTester_00-01 x (EURUSD,D1)       Соunt inticators = 16; Count history bars = 144000; Count pass = 1280
2012.03.05 09:45:57     ParallelTester_00-01 x (EURUSD,D1)       Result on Gpu МахResult==1.35098 at 174 pass
2012.03.05 09:46:41     ParallelTester_00-01 x (EURUSD,D1)       CPU time = 43914 ms
2012.03.05 09:46:41     ParallelTester_00-01 x (EURUSD,D1)       Соunt inticators = 16; Count history bars = 144000; Count pass = 1280
2012.03.05 09:46:41     ParallelTester_00-01 x (EURUSD,D1)       Result on Cpu МахResult==1.35098 at 174 pass
2012.03.05 09:46:41     ParallelTester_00-01 x (EURUSD,D1)       CpuTime/GpuTime = 39.10418521816563

Ho fatto il test diverse volte ieri per essere sicuro, anche oggi i risultati erano vicini.

La cosa strana è che quando si imposta la modalità dual-channel, la CPU ha dato lo 0,3% di aumento, ma la GPU ha dato il 25% di aumento.

 
tol64:

Ho qualcosa con degli zeri, cosa significa? Su questa linea:Result on Gpu MachResult==0.0 at 0 pass

Forse non ho abbastanza memoria, o forse devo diminuire un po' CountBars e/o CountPass?
 
fyords:

Mettere la memoria in modalità dual channel, risultato: 39x accelerazione invece di 29x.

Ho fatto il test diverse volte ieri per essere sicuro, anche oggi i risultati erano vicini.

La cosa strana è che la CPU ha mostrato lo 0,3% di accelerazione in modalità dual channel ma la GPU ha mostrato il 25% di accelerazione.

In realtà, non c'è niente di strano. Nel lavorare (non lavorare con la grafica, cioè i calcoli) con la GPU il collo di bottiglia è la RAM (non basta eseguire i calcoli sulla GPU, è necessario anche ottenere i risultati dalla scheda grafica nella RAM). La RAM è diventata più veloce - i risultati sulla GPU sono migliorati.

Nel caso della CPU, tutto è già memorizzato nella RAM e non c'è bisogno di eseguire i risultati avanti e indietro.

Da qui una conclusione eloquente: se volete calcoli veloci su GPU, installate una memoria veloce.

 
Questo spiega tutto allora, grazie per il chiarimento.
 
fyords:
Forse non c'è abbastanza memoria, forse CountBars e/o CountPass dovrebbero essere ridotti un po'?

Sì, proprio così. Ecco come è andata a finire:

...che è anche bello. ))

//---

Se aggiungo CountBars, l'immagine lampeggia e scompare durante i calcoli.

 
2012.03.05 12:40:51     Terminal        CPU: GenuineIntel Intel(R) Core(TM)2 Duo CPU T6570 @ 2.10 GHz with OpenCL 1.1 (2 units, 2094 MHz, 2048 Mb, version 2.0)

Видеоадаптер    ATI Mobility Radeon HD 545 v  (256 Мб)

2012.03.05 08:59:28     ParallelTester_00-01 x (GBPUSDL,H1)      CpuTime/GpuTime = 19.70338983050847
2012.03.05 08:59:28     ParallelTester_00-01 x (GBPUSDL,H1)      Result on Cpu МахResult==1.33921 at 366 pass
2012.03.05 08:59:28     ParallelTester_00-01 x (GBPUSDL,H1)      Соunt inticators = 16; Count history bars = 144000; Count pass = 1280
2012.03.05 08:59:28     ParallelTester_00-01 x (GBPUSDL,H1)      CPU time = 46500 ms
2012.03.05 08:58:41     ParallelTester_00-01 x (GBPUSDL,H1)      Result on Gpu МахResult==1.33921 at 366 pass
2012.03.05 08:58:41     ParallelTester_00-01 x (GBPUSDL,H1)      Соunt inticators = 16; Count history bars = 144000; Count pass = 1280
2012.03.05 08:58:41     ParallelTester_00-01 x (GBPUSDL,H1)      GPU time = 2360 ms
2012.03.05 08:58:39     ParallelTester_00-01 x (GBPUSDL,H1)      OpenCL init OK!
 

Quindi la conclusione dell'argomento è semplice, non importa quanto sia veloce la vostra CPU, è solo un poz per la scheda grafica :)

Comunque, la scheda video renderà la CPU almeno 10 volte più veloce sui vecchi modelli video e 100 volte più veloce su quelli più recenti.

2012.03.05 14:31:23     ParallelTester_00-01 x (EURUSD,M15)      CpuTime/GpuTime = 364.5847953216374
2012.03.05 14:31:23     ParallelTester_00-01 x (EURUSD,M15)      Result on Cpu МахResult==1.01643 at 577 pass
2012.03.05 14:31:23     ParallelTester_00-01 x (EURUSD,M15)      Соunt inticators = 16; Count history bars = 144000; Count pass = 1280
2012.03.05 14:31:23     ParallelTester_00-01 x (EURUSD,M15)      CPU time = 62344 ms
2012.03.05 14:30:21     ParallelTester_00-01 x (EURUSD,M15)      Result on Gpu МахResult==1.01643 at 577 pass
2012.03.05 14:30:21     ParallelTester_00-01 x (EURUSD,M15)      Соunt inticators = 16; Count history bars = 144000; Count pass = 1280
2012.03.05 14:30:21     ParallelTester_00-01 x (EURUSD,M15)      GPU time = 171 ms
2012.03.05 14:30:21     ParallelTester_00-01 x (EURUSD,M15)      OpenCL init OK!
CPU: Intel P4 3 GHz, 2 kernel, RAM 3 Gb, 32 bits
GPU: NVIDIA Corporation GeForce GT 430 with OpenCL 1.1 (2 units, 1400 MHz, 1023 Mb, version 295.73)

Nel mio caso, a causa dei core lenti della CPU, l'accelerazione è di 364 volte.

 
Urain:

Quindi la conclusione dell'argomento è semplice, non importa quanto sia veloce la tua CPU, è solo un poz per la scheda grafica :)

In ogni caso la vostra scheda grafica supererà la vostra CPU di almeno 10 volte più veloce sui vecchi modelli di video e 100 volte più veloce su quelli più recenti.

Nel mio caso, a causa dei core lenti della CPU, la differenza è di 364 volte.

Wow, è un record! )))

//---

Proverò più tardi a mettere gli ultimi driver (295.73), forse migliorerà un po'. ))

 
Urain: In ogni caso, una vidya supererebbe la CPU di almeno un fattore 10, sui vecchi modelli di video e di un fattore 100 su quelli più recenti.

Interessante. La scheda fyords è più forte (GeForce GT 440) e il tempo di calcolo è un ordine di grandezza più lungo.

Wow , è un record! )))

Beh sì, è spaventoso immaginare se al posto di questa pietra ci fosse i286 e qualche mostro moderno al posto della carta. Tutto quello che otterresti, o anche di più, da diverse volte.

P.S. Qualcun altro avrà un sistema senza una scheda grafica discreta come me?

 

2012.03.05 17:43:16 Terminale CPU: GenuineIntel Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz con OpenCL 1.1 (4 unità, 3092 MHz, 4008 Mb, versione 2.0)

Mathemat:

...

P.S. Qualcun altro avrà un sistema senza grafica discreta come me?

2012.03.05 17:43:16 Terminale CPU: GenuineIntel Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz con OpenCL 1.1 (4 unità, 3092 MHz, 4008 Mb, versione 2.0)

2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD,M1) CpuTime/GpuTime = 0.734767766287369
2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD,M1) Risultato su Cpu MachResult==1.27347 a 1125 pass
2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD, M1) Conte inticators = 16; Conte history bars = 144000; Count pass = 1280
2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD, M1) Tempo CPU = 21309 ms
2012.03.05 17:45:02 ParallelTester_00-01x (EURUSD,M1) Risultato su Gpu MachResult==1.27347 a 1125 pass
2012.03.05 17:45:02 ParallelTester_00-01x (EURUSD, M1) Conte inticators = 16; Conte history bars = 144000; Count pass = 1280
2012.03.05 17:45:02 ParallelTester_00-01x (EURUSD, M1) Tempo GPU = 29001 ms
2012.03.05 17:44:33 ParallelTester_00-01x (EURUSD,M1) OpenCL init OK!

:(((

Forse ho "granate del sistema sbagliato"? (Intendo la versione AMD SDK)