Ecco cosa si può fare con OpenCL direttamente in MetaTrader 5 senza alcuna DLL - pagina 7

 

Quando si cerca di eseguire lo script, all'inizio andava così:

NN      0       21:04:58.552    Scripts script Seascape (EURUSD,H1) loaded successfully
MG      0       21:04:59.052    Terminal        OpenCL not found, install the latest OpenCL driver for better performance
PE      0       21:04:59.052    Scripts script Seascape (EURUSD,H1) removed

e poi da http://www.nvidia.ru/Download/index.aspx?lang=ru

sono stati scaricati gli ultimi driver della scheda.

e i messaggi di log sono gli stessi di cui sopra, quando si cerca di eseguire lo script.

poi Intel® SDK for OpenCL™ Applications for Windows* 2016 è stato scaricato dal sito web

http://registrationcenter-download.intel.com/akdlm/irc_nas/vcp/11058/intel_sdk_for_opencl_setup_6.3.0.1904.exe

al prossimo nuovo tentativo di eseguire lo script, il seguente messaggio apparirà nel log:

RM      0       17:14:22.070    Scripts script Seascape (EURUSD,H1) loaded successfully
CQ      0       17:14:22.991    OpenCL  Device #0: CPU Intel(R) Corporation Intel(R) Core(TM)2 Duo CPU E6550 @ 2.33 GHz with OpenCL 2.1 (2 units, 2330 MHz, 4094 Mb, version 6.3.0.1904)
EP      0       17:14:23.661    Scripts script Seascape (EURUSD,H1) removed

beh, chi sa cosa c'è che non va?




non riesce a far funzionare questo openCL*.


________________________

openchlor* - OpenCL

Загрузка драйверов NVIDIA
Загрузка драйверов NVIDIA
  • www.nvidia.ru
Optimal Driver for Enterprise (ODE) Most users select this choice for optimal stability and performance. It also offers ISV certification and long lifecycle support Quadro New Feature Driver (QNF...
 
Hai, nella lista dei dispositivi OpenCL, nessun adattatore video!

Cambia il codice dello script, invece di

   if((cl_ctx=CLContextCreate())==INVALID_HANDLE)

prova la seguente linea

   if((cl_ctx=CLContextCreate(CL_USE_ANY))==INVALID_HANDLE)
 
Ilyas:
Hai, nella lista dei dispositivi OpenCL, nessun adattatore video!

Cambia il codice dello script, invece di

   if((cl_ctx=CLContextCreate())==INVALID_HANDLE)

prova a usare la seguente linea

   if((cl_ctx=CLContextCreate(CL_USE_ANY))==INVALID_HANDLE)

non ha funzionato (

JN      0       18:10:49.867    Scripts script Seascape (EURUSD,H1) loaded successfully
LD      0       18:10:50.116    OpenCL  Device #0: CPU Intel(R) Corporation Intel(R) Core(TM)2 Duo CPU E6550 @ 2.33 GHz with OpenCL 2.1 (2 units, 2330 MHz, 4094 Mb, version 6.3.0.1904)
RM      0       18:10:50.223    Scripts script Seascape (EURUSD,H1) removed
 
fmql:

non ha aiutato (


Compilare lo script
 
Ci sono dei limiti al calcolo su CPU e GPU?
 
-Aleks-:
Ci sono limitazioni per i calcoli su CPU e GPU?

Come regola, la limitazione è la memoria, sia per la GPU che per la CPU.

Ma una cosa è chiara - il codice per la CPU è meno impegnativo da ottimizzare rispetto a quello per la GPU, spesso succede che sulla CPU funziona senza problemi che sulla GPU non può nemmeno funzionare o finisce rapidamente con un errore o un crash del driver video.

 
Igor Volodin:
Compilare lo script
è stato naturalmente compilato
 
Andrey Dik:

Come regola, la limitazione è la memoria, sia per la GPU che per la CPU.

Ma una cosa è chiara - il codice per la CPU è meno impegnativo da ottimizzare rispetto a quello per la GPU, spesso succede che sulla CPU funziona senza problemi che sulla GPU non può nemmeno funzionare o finisce rapidamente con un errore o un crash del video-driver.

Se questo è il caso, è possibile utilizzare la GPU per calcolare gli indicatori ed eseguire l'Expert Advisor sulla CPU?
 
Dr.Trader:

OpenCL è molto buono, si possono addestrare reti neurali molto velocemente con questa tecnologia, centinaia (migliaia) di volte più velocemente che su un processore ordinario.

Questo può essere corretto come segue: trovare queste linee nello script -

                    "   uint b=(uint)(res[2]*255);\r\n"
                    "   uint g=(uint)(res[1]*255);\r\n"
                    "   uint r=(uint)(res[0]*255);\r\n"

e sostituirli con -

                    "   uint b=(uint)(res.z*255);\r\n"
                    "   uint g=(uint)(res.y*255);\r\n"
                    "   uint r=(uint)(res.x*255);\r\n"


Grazie!

Ha funzionato, ma il "cielo" ha delle increspature.

 
Era chiaro per me, come non programmatore, dai commenti che questo non era per le masse. Ma era comunque interessante da leggere. Ditemi, vale la pena aspettare un'ondata di nuove idee sotto forma di indicatori ed esperti? O è solo un giocattolo per l'élite?