![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Qualcosa non funziona per me. La linea di inizializzazione va bene:
2012.04.01 05:52:01 Terminal CPU: GenuineIntel Intel(R) Pentium(R) CPU G840 @ 2.80GHz with OpenCL 1.2 (2 units, 2793 MHz, 7912 Mb, version 2.0 (sse2))
(Ho messo OpenCL 1.1 di AMD, e 1.2 sopra). Ma ora l ' esecuzione del test dà
2012.04.01 06:06:49 ParallelTester_00-01x (EURUSD,H1) OpenCL not found.
Prima di questo, ho aggiornato il driver grafico Intel per la versione più recente e poi ho tolto i driver AMD con la loro installazione, e poi l'ho installato di nuovo.
Cosa sto facendo di sbagliato adesso?
P.S. Presto arriverà Ivy e mostrerà davvero cosa può fare Intel nella grafica integrata, insieme a Intel HD 4000. Guarda la grafica.
Cosa sto facendo di sbagliato adesso?
Ora cosa sto facendo di sbagliato?
Nella nuova build, il parametro della funzione CLContextCreate è stato cambiato, viene usato int device invece di bool use_gpu.
con device>=0 viene usato come numero del dispositivo OpenCL nella sequenza
con device==OPENCL_DEVICE_ANY (-1) usato per selezionare automaticamente tra tutti i dispositivi disponibili
con device==OPENCL_DEVICE_GPU (-2) usato per selezionare automaticamente tra tutti i dispositivi GPU disponibili
Potresti per favore mostrarmi come fare questo nel codice? Chiamo CLContextCreate( OPENCL_DEVICE_ANY ) e ottengo il risultato alla compilazione:
'OPENCL_DEVICE_ANY' - undeclared identifier ParallelTester_00-01x.mq5 145 31
Costruire 619.
E seconda domanda: dove posso trovare l'ultimo aiuto?
P.S. Ha funzionato non appena ho impostato l'argomento a -1. La costante OPENCL_DEVICE_ANY non è stata ancora dichiarata :)
Ma nelle build future sarà CL_USE_ANY/CL_USE_GPU_ONLY
Ho deciso di controllare come OpenCL funzionerà su i3-2120 (non è il mio calcolo, nessun video discreto nel sistema). Installato AMD APP SDK, OpenCL-Z ha rilevato tutto. Il terminale ha visualizzato una linea durante l'inizializzazione:
2012.04.02 03:59:47 Terminal CPU: GenuineIntel Intel(R) Core(TM) i3-2120 CPU @ 3.30GHz with OpenCL 1.1 (4 units, 3310 MHz, 8039 Mb, version 2.0)
Controllato sul codice MetaDriver allegato a questo post e leggermente modificato con le ultime modifiche nella build 619 (vedi i primi test qui). Risultato:
2012.04.02 04:00:43 ParallelTester_00-01x (EURUSD,H1) CpuTime/GpuTime = 0.741385550890401
2012.04.02 04:00:43 ParallelTester_00-01x (EURUSD,H1) Result on Cpu МахResult==0.79567 at 734 pass
2012.04.02 04:00:43 ParallelTester_00-01x (EURUSD,H1) Соunt inticators = 16; Count history bars = 144000; Count pass = 1280
2012.04.02 04:00:43 ParallelTester_00-01x (EURUSD,H1) CPU time = 20483 ms
2012.04.02 04:00:22 ParallelTester_00-01x (EURUSD,H1) Result on Gpu МахResult==0.79567 at 734 pass
2012.04.02 04:00:22 ParallelTester_00-01x (EURUSD,H1) Соunt inticators = 16; Count history bars = 144000; Count pass = 1280
2012.04.02 04:00:22 ParallelTester_00-01x (EURUSD,H1) GPU time = 27628 ms
2012.04.02 03:59:55 ParallelTester_00-01x (EURUSD,H1) OpenCL init OK!
A runtime sulla "GPU", tutti e quattro i thread del processore erano completamente occupati, al 100%.
Cosa devo fare per ottenere l'accelerazione? Su un sistema basato su Pentium G840 (anche senza video discreto), era 25 volte più veloce:
P.S. Ho inviato un messaggio al Service Desk, ma temo che questo sia piuttosto un mio problema... A quanto pare ho imparato a installare e disinstallare correttamente AMD APP SDK a occhi chiusi, ma immagino di non essere arrivato a tutte le insidie. Anche se Intel OpenCL Runtime è installato sul mio sistema, non viene ancora riconosciuto nel terminale come dispositivo OpenCL.
P.P.S. A quanto pare, ecco un'altra cosa che ho scovato(https://www.mql5.com/ru/forum/6042/page25):
Ceneri: 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)
GPU+OpenCL è un grande strumento, dopo tutto!
2012.04.08 00:41:22 ParallelTester_00-02-(16x7x3) (USDJPY,M30) CpuTime/GpuTime = 728.1857142857143
2012.04.08 00:41:22 ParallelTester_00-02-(16x7x3) (USDJPY,M30) Risultato su Cpu MachResult==3.78654 a 50 passaggi
2012.04.08 00:41:22 ParallelTester_00-02-(16x7x3) (USDJPY,M30) Conta inticatori = 16; Conta barre storiche = 50.000; Conta pass = 1280
2012.04.08 00:41:22 ParallelTester_00-02-(16x7x3) (USDJPY,M30) Tempo CPU = 101946 ms
2012.04.08 00:39:40 ParallelTester_00-02-(16x7x3) (USDJPY,M30) Risultato su Gpu MachResult==3.78654 a 50 passaggi
2012.04.08 00:39:40 ParallelTester_00-02-(16x7x3) (USDJPY,M30) Conta inticatori = 16; Conta barre storiche = 50.000; Conta pass = 1280
2012.04.08 00:39:40 ParallelTester_00-02-(16x7x3) (USDJPY,M30) Tempo GPU = 140 ms
GPU+OpenCL è un grande strumento, dopo tutto!
2012.04.08 00:39:40 ParallelTester_00-02-(16x7x3) (USDJPY,M30) Tempo GPU = 140 ms
Propongo di fare i test in modo che il tempo di calcolo della GPU non sia così piccolo. Comunque, 140 ms, imho, è un valore troppo inaffidabile, specialmente con errori di misurazione di GetTickCount() in decine di millisecondi.
MD, sono io che sono molto geloso di te.
Suggerisco di fare i test in modo che il tempo di calcolo della GPU non sia così piccolo.
Non ho la pazienza di aspettare una CPU :) Più lontano è il bosco, più fredda è la GPU...
Allo stesso modo. :)
Ma lo eseguirò su 4096 api e la CPU lo conterà in cinque minuti.