OpenCL: test di implementazione interna in MQL5 - pagina 30

 
2012.03.08 11:01:12     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      OpenCL init OK!
2012.03.08 11:01:16     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      GPU time = 3962 ms
2012.03.08 11:01:16     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      Соunt inticators = 16; Count history bars = 144000; Count pass = 1024
2012.03.08 11:01:16     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      Result on Gpu МахResult==1.45763 at 821 pass
2012.03.08 11:07:01     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      CPU time = 345465 ms
2012.03.08 11:07:01     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      Соunt inticators = 16; Count history bars = 144000; Count pass = 1024
2012.03.08 11:07:01     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      Result on Cpu МахResult==1.45762 at 821 pass
2012.03.08 11:07:01     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      CpuTime/GpuTime = 87.19459868753155

Di nuovo, papaklass ha il video onboard, io ho quello discreto, la CPU è la stessa, la differenza è trascurabile.

Raraklass qual è il tuo bitrate e l'asse?

 
papaklass:

W7 32bit.

Grazie. Anch'io, ok, penso che quando arriverò a OpenCL, tutti i bug saranno risolti e tutto funzionerà bene.
 
MetaDriver:

...

Non posterò il codice sorgente per avidità, ma per coloro che vogliono provarlo sul proprio hardware, c'è un ex5 nel trailer.

Questo è tutto, sono fuori. Io sono fuori, e l'ingresso è chiuso per modificare. ))

FE      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       14:55:06        OpenCL init OK!
ED      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       14:55:10        GPU time = 3946 ms
LS      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       14:55:10        Соunt inticators = 16; Count history bars = 144000; Count pass = 1024
KS      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       14:55:10        Result on Gpu МахResult==0.0 at 0 pass
GK      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       15:01:07        CPU time = 356587 ms
HI      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       15:01:07        Соunt inticators = 16; Count history bars = 144000; Count pass = 1024
HI      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       15:01:07        Result on Cpu МахResult==1.05885 at 866 pass
KM      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       15:01:07        CpuTime/GpuTime = 90.36670045615813

Se hai un minuto libero, puoi modificare ex5 per il mio ronzino. )) Bene, fate i passaggi più piccoli, per esempio 512, o barre 100000. Se non lo faccio, non lo faccio. Dovrò comunque studiare tutto più tardi. )) Mi avete già dato molti esempi da studiare. Grazie.

 
tol64:

Ecco, ho esagerato. Sono fuori e armeggiare con l'ingresso è chiuso. ))

Se hai del tempo libero, puoi correggere ex5 per il mio ronzino. )) Fare meno passaggi, per esempio 512, o barre 100000........................ Grazie.

Nivapros.

2012.03.08 16:37:13    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    CpuTime/GpuTime = 191.7058823529412
2012.03.08 16:37:13    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    Result on Cpu МахResult==1.16557 at 228 pass
2012.03.08 16:37:13    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    Соunt inticators = 16; Count history bars = 100000; Count pass = 256
2012.03.08 16:37:13    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    CPU time = 35849 ms
2012.03.08 16:36:37    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    Result on Gpu МахResult==1.16557 at 228 pass
2012.03.08 16:36:37    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    Соunt inticators = 16; Count history bars = 100000; Count pass = 256
2012.03.08 16:36:37    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    GPU time = 187 ms
2012.03.08 16:36:37    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    OpenCL init OK!

--

A proposito, rospo, il codice CL è ancora liberamente disponibile.

Posso anche commentare in dettaglio se qualcuno ha delle domande.

Si chiama cl_ParallelTester_00-02-(16x7x3).cl dopo aver eseguito lo script.

 
MetaDriver:

Nivapros.

A proposito, rospo, il codice CL è ancora liberamente disponibile.

Si chiama cl_ParallelTester_00-02-(16x7x3).cl dopo aver eseguito lo script.

Sfortunatamente, anche questa variante fa saltare il cervello del mio portatile. )))

All'inizio, ho lanciato la vecchia variante per errore e ho pensato che la vita fosse finita perché l'intero schermo era coperto di "neve". E anche la chiusura del terminale non ha aiutato. Ma il riavvio mi ha aiutato e la vita mi è tornata. Quando è successo, come un vero eroe occidentale, sono riuscito a premere PrtSc e ho catturato lo spettacolo di luce. Non pensavo che avrebbe funzionato, ma l'ha fatto. Ecco com'era:

//---

Eccole qui, le gustose torte di Vladimir Gomonov. Era interessante. )))

 
tol64:

1. purtroppo anche questa opzione manda in tilt il mio portatile. )))

2. E all'inizio, per errore, ho eseguito la vecchia variante e ho pensato che la vita fosse finita, poiché l'intero schermo era coperto di "neve".

1. risolvibile. Ecco un'altra variante. 50000 barre x 128 passaggi.

// Ancora meglio di prima - ho aggiunto una funzione di attivazione a gradini alla rete neurale.

// (la versione precedente era lineare, che su maglie reali è abbastanza inutile)

2... Questo succede quando si sovraccarica la GPU. Ne ho avuti di più. ;-)

 
MetaDriver:

Può essere risolto. Ecco un'altra opzione. 50.000 bar x 128 passaggi

// Ancora meglio di prima - ha aggiunto una funzione di attivazione a gradini alla rete neurale.

// (la versione precedente era lineare, che su maglie reali è piuttosto inutile)

Grazie. Ecco il risultato:

OR      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:08        OpenCL init OK!
DD      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:11        GPU time = 2216 ms
PR      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:11        Соunt inticators = 16; Count history bars = 50000; Count pass = 128
EQ      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:11        Result on Gpu МахResult==3.56957 at 14 pass
QI      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:29        CPU time = 17894 ms
GH      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:29        Соunt inticators = 16; Count history bars = 50000; Count pass = 128
FJ      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:29        Result on Cpu МахResult==3.56957 at 14 pass
OL      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:29        CpuTime/GpuTime = 8.074909747292418

//---

Ecco una domanda (agli sviluppatori probabilmente di più). Perché le varianti precedenti hanno un effetto così micidiale sulla mappa? A proposito, anche la felce di Barnsley finisce per schiantarsi su di me quando si zooma in profondità. Questo problema è risolto in qualche modo nella programmazione o il meccanismo del terminale sarà alla fine in grado di controllare questo. Voglio dire, non dovrebbe esserci un crash, dovrebbe solo esserci un tempo di calcolo più lungo.

 
tol64:

Grazie. Ecco il risultato:

//---

Ecco una domanda (probabilmente più per gli sviluppatori). Perché le opzioni precedenti sono così micidiali sulla mappa? A proposito, anche la felce di Barnsley finisce per schiantarsi su di me quando si zooma in profondità. Questo problema è risolto in qualche modo nella programmazione o il meccanismo del terminale sarà alla fine in grado di controllare questo. Voglio dire che non ci dovrebbe essere un crash, ci dovrebbe essere solo un tempo di calcolo più lungo.

Per favore.

--

Questo può sembrare inaspettato, ma sono fortemente contrario al controllo da parte del terminale - rallenterà i controlli.

E questo nonostante il fatto che la mia felce avesse strappato il driver della videocassetta a tutti con un forte upscaling.

// Vero, il sistema non è andato in crash - il driver si è riavviato da solo con un messaggio di errore critico.

// Ma il terminale si è bloccato - ho dovuto ucciderlo dal task manager

Piuttosto, dovrebbe essere creata la funzione GPU_Info(int GPU_PARAM_xxx) che recupera le informazioni di sistema sulla scheda video, compresa la quantità massima totale di buffer consentita per un compito. Poi il programmatore stesso può prendersi cura di non superare i limiti.

Документация по MQL5: Программы MQL5 / Ошибки выполнения
Документация по MQL5: Программы MQL5 / Ошибки выполнения
  • www.mql5.com
Программы MQL5 / Ошибки выполнения - Документация по MQL5
 
MetaDriver:

Piuttosto, dovrebbe essere creata la funzione GPU_Info(int GPU_PARAM_xxx) che recupera le informazioni di sistema sulla scheda video, compresa la quantità massima di buffer per un task. Poi il programmatore stesso può occuparsi di non superare i limiti.

Il tuo suggerimento è migliore, ma in linea di principio nella stessa vena - Controllo. Alcuni utenti possono avere i capelli grigi prima di tali balli o avere un attacco di rabbia. Su chi sarà poi riversato tutto questo. Giusto, i programmatori. Ci sarà più lavoro per l'arbitraggio. E nessuno ne ha bisogno. )))
 

Link dal post di AlexEro su "quaternario": tabella di tutte le schede video AMD più o meno moderne.

Se sei interessato al supporto della doppia precisione nei calcoli - vedi la colonna FP64 (Double Precision) - calcoli in virgola mobile a doppia precisione. È penultimo nella tabella. Se c'è "-", significa che non è supportato.