Ai complottisti del mondo e ai paranoici completi, o semplicemente a coloro che amano controllare il prezzo, siete i benvenuti! ;) - pagina 7

 
Mathemat:
Sì, ti stai vantando dei tuoi calcoli GPGPU. Qualche accelerazione?

Da dove prende l'accelerazione il notebook? Ci vuole più tempo per copiare nel buffer che per calcolare.

È solo una prova. Ci sarà un'accelerazione quando il calcolo è relativamente pesante.

Sto solo aggiungendo uno script per calcolare la correlazione con un dato insieme di modelli (512 modelli in parallelo) per tutta la storia, e ci sarà un guadagno centuplicato (credo). L'autopsia mostrerà come sarà realmente.

 

E comunque, non mi sto vantando, sto divulgando OpenCL. Ecco! :)

È anche divertente.

 
Mathemat:

Com'è - qualche accelerazione?

Questo è da parte di yazzy!!!

2012.03.02 01:15:10     Tester-512_Test_001 (EURUSD,M1) СPU time = 7223 ms
2012.03.02 01:15:10     Tester-512_Test_001 (EURUSD,M1) Result on Cpu МахResult==1.01871 at 49 pass
2012.03.02 01:15:03     Tester-512_Test_001 (EURUSD,M1) GPU time = 312 ms
2012.03.02 01:15:03     Tester-512_Test_001 (EURUSD,M1) Result on Gpu МахResult==1.01871 at 49 pass
2012.03.02 01:15:02     Tester-512_Test_001 (EURUSD,M1) OpenCL init OK!

Il risultato è lo stesso (controllo di validità), ma il tempo è molto diverso. In questo caso, 23 volte la differenza. Comunque - ne è valsa la pena.

Ho eseguito un perceptron a singolo strato attraverso una storia di 144000 barre, 512 passaggi in una sola volta. Mi è piaciuto. ;)

 
MetaDriver: In questo caso, 23 volte la differenza. Comunque, ne è valsa la pena.
È fantastico!
 
Mathemat:
E' piuttosto figo.

A quanto pare, i tempi tipici sono anche leggermente migliori. Ecco uno sguardo ai replay:

2012.03.02 01:26:59     Tester-512_Test_001 (EURUSD,M1) СPU time = 7238 ms
2012.03.02 01:26:59     Tester-512_Test_001 (EURUSD,M1) Result on Cpu МахResult==1.80004 at 320 pass
2012.03.02 01:26:51     Tester-512_Test_001 (EURUSD,M1) GPU time = 281 ms
2012.03.02 01:26:51     Tester-512_Test_001 (EURUSD,M1) Result on Gpu МахResult==1.80004 at 320 pass
2012.03.02 01:26:51     Tester-512_Test_001 (EURUSD,M1) OpenCL init OK!
2012.03.02 01:26:48     Tester-512_Test_001 (EURUSD,M1) СPU time = 7270 ms
2012.03.02 01:26:48     Tester-512_Test_001 (EURUSD,M1) Result on Cpu МахResult==1.48404 at 207 pass
2012.03.02 01:26:41     Tester-512_Test_001 (EURUSD,M1) GPU time = 281 ms
2012.03.02 01:26:41     Tester-512_Test_001 (EURUSD,M1) Result on Gpu МахResult==1.48404 at 207 pass
2012.03.02 01:26:41     Tester-512_Test_001 (EURUSD,M1) OpenCL init OK!

Più di 25 volte. Anche molto aha. :)

Era un neurone a 8 ingressi. Ora guardate quello da 16 voci:

2012.03.02 01:32:32     Tester-512_Test_001 (EURUSD,M1) СPU time = 14618 ms
2012.03.02 01:32:32     Tester-512_Test_001 (EURUSD,M1) Result on Cpu МахResult==1.22936 at 78 pass
2012.03.02 01:32:18     Tester-512_Test_001 (EURUSD,M1) GPU time = 327 ms
2012.03.02 01:32:18     Tester-512_Test_001 (EURUSD,M1) Result on Gpu МахResult==1.22936 at 78 pass
2012.03.02 01:32:17     Tester-512_Test_001 (EURUSD,M1) OpenCL init OK!
2012.03.02 01:32:01     Tester-512_Test_001 (EURUSD,M1) СPU time = 14618 ms
2012.03.02 01:32:01     Tester-512_Test_001 (EURUSD,M1) Result on Cpu МахResult==1.21085 at 143 pass
2012.03.02 01:31:46     Tester-512_Test_001 (EURUSD,M1) GPU time = 327 ms
2012.03.02 01:31:46     Tester-512_Test_001 (EURUSD,M1) Result on Gpu МахResult==1.21085 at 143 pass
2012.03.02 01:31:46     Tester-512_Test_001 (EURUSD,M1) OpenCL init OK!

È 45 volte la differenza.

Proprio così - più pesante è il calcolo, minore è l'overhead costante (invio di array avanti e indietro).

 

E sono 1024 passaggi in parallelo:

2012.03.02 01:45:04     Tester-512_Test_001 (EURUSD,M1) СPU time = 29282 ms
2012.03.02 01:45:04     Tester-512_Test_001 (EURUSD,M1) Result on Cpu МахResult==0.73802 at 802 pass
2012.03.02 01:44:35     Tester-512_Test_001 (EURUSD,M1) GPU time = 327 ms
2012.03.02 01:44:35     Tester-512_Test_001 (EURUSD,M1) Result on Gpu МахResult==0.73802 at 802 pass
2012.03.02 01:46:36     Tester-512_Test_001 (EURUSD,M1) СPU time = 29265 ms
2012.03.02 01:46:36     Tester-512_Test_001 (EURUSD,M1) Result on Cpu МахResult==1.58618 at 821 pass
2012.03.02 01:46:06     Tester-512_Test_001 (EURUSD,M1) GPU time = 328 ms
2012.03.02 01:46:06     Tester-512_Test_001 (EURUSD,M1) Result on Gpu МахResult==1.58618 at 821 pass
2012.03.02 01:46:06     Tester-512_Test_001 (EURUSD,M1) OpenCL init OK!

Nota - su GPU non c'è alcuna differenza (ci sono 1280 core, cioè l'intero compito si adatta in un solo passaggio).

Il controllo della CPU, ovviamente, è fatto in modo sequenziale.

Così, il centuplo richiesto è praticamente raggiunto: la differenza è 89,5474 volte (!)

 

Sì, i calcoli pesanti in-loop sono i migliori per OpenCL.

Voi o qualcuno che conoscete non avete un computer basato su A8-3850 in giro? Ha 400 pipeline grafiche (integrate), tra l'altro!

 
Mathemat:

Voi o qualcuno che conoscete non avete in giro un computer basato su A8-3850? Ha 400 GPU (integrate), tra l'altro!

C'è confusione? Ecco http://kazan.kompiko.info/priceshop.php?desc_id=111255

Sembra che non sia niente di speciale, solo quattro core, non una parola sul trasportatore.

 

Potete leggere la descrizione della roccia qui. Dubito fortemente che questa roccia (o piuttosto la sua parte GPU) non supporti OpenCL.

Dal punto di vista della CPU, la pietra non è molto buona. Ma ha un video integrato decente e in casi "buoni" si può contare su un'accelerazione di decine di volte senza usare alcun mostro video discreto. Non è un supercomputer economico, eh?

E "cinque" è tale, e si scopre che la potenza della pietra multicore è quasi inutile. Senza contare, ovviamente, l'ottimizzazione: che differenza fa per voi quanti core avete, 4 o 6, se l'ottimizzazione deve funzionare 24 ore al giorno? Per quella materia, eseguite Cloud anche su un non così veloce onesto dual core Celeron G530...

P.S. Non sono un fan di AMD, semmai. Sto solo cercando di calcolare dove tutto questo casino di AMD porterà alla fine.

 

Volodya, per favore esegui questo script e riporta i risultati.

Grazie a MQL5 per l'aiuto.

File: