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

 
Renat Fatkhullin:

Stiamo preparando una libreria di personale OpenCL per la matematica e il rendering, il che richiederà alcune settimane. Sarà incredibilmente veloce e bello.

Nel frattempo, date un'occhiata alla libreria grafica aggiornata per il rendering dei grafici scientifici.

Quindi, si tratta solo di scrivere programmi su di esso in MetaEditor, o sono già preparati e solo uno script deve essere lanciato sul grafico?
 

Anche per me non è iniziato:

2016.12.10 07:00:47.388 Seascape (EURUSD,M1)    OpenCL: GPU device 'Redwood' selected
2016.12.10 07:00:47.418 Seascape (EURUSD,M1)    
2016.12.10 07:00:47.418 Seascape (EURUSD,M1)    OpenCL program create failed
2016.12.10 07:00:57.263 Seascape (EURUSD,M1)    OpenCL: GPU device 'Redwood' selected
2016.12.10 07:00:57.285 Seascape (EURUSD,M1)    
2016.12.10 07:00:57.285 Seascape (EURUSD,M1)    OpenCL program create failed
 

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

prostotrader:
2016.12.10 03:57:08.218 Seascape (GOLD-12.16,H1)        OpenCL program create failed
2016.12.10 03:57:36.695 Seascape (GOLD-12.16,H1)        OpenCL: GPU device 'GeForce GTX 970' selected
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)        <kernel>:188:18: error: subscripted access is not allowed for OpenCL vectors
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)           uint b=(uint)(res[2]*255);
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)                         ^   ~
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)        <kernel>:189:18: error: subscripted access is not allowed for OpenCL vectors
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)           uint g=(uint)(res[1]*255);
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)                         ^   ~
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)        <kernel>:190:18: error: subscripted access is not allowed for OpenCL vectors
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)           uint r=(uint)(res[0]*255);
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)                         ^   ~
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)        
2016.12.10 03:57:36.730 Seascape (GOLD-12.16,H1)        OpenCL program create failed

Questo può essere risolto trovando 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"
 

Alcune domande:

  1. Se più EA sono in esecuzione nello stesso terminale, possono condividere e utilizzare OpenCL in modo indipendente?
  2. Lo stesso vale per i terminali multipli.

 
Renat Fatkhullin:

Migliaia di core di GPU possono essere utilizzati con OpenCL per accelerare i calcoli di cento (diverse centinaia) volte.

Questo è esattamente ciò che è necessario nel trading e ciò che permetterà la transizione a tecniche che richiedono ordini di grandezza più risorse computazionali.

In MQL4 si scava con una pala, mentre in MQL5 con OpenCL si ottiene un trattore in termini di prestazioni. Per portare i calcoli su GPU alle masse, stiamo preparando nuove librerie matematiche in aggiunta a quelle esistenti.

Avete anche bisogno di esempi reali di ciò che può essere realisticamente messo in parallelo in un EA, per esempio.

Posso usare il codice che usa OpenCL durante l'ottimizzazione?

 
Renat Fatkhullin:

Con OpenCL è possibile utilizzare migliaia di core di GPU per accelerare i calcoli matematici di cento (diverse centinaia) volte.

Questo è esattamente ciò che è necessario nel trading e ciò che permetterà la transizione a tecniche che richiedono ordini di grandezza più risorse computazionali.

In MQL4 si scava con una vanga e in MQL5 con OpenCL si ottiene un trattore in termini di prestazioni. Per portare i calcoli su GPU alle masse, stiamo preparando nuove librerie matematiche in aggiunta a quelle esistenti.

Ci sarà mai qualcosa di simile per MQL4? O almeno, l'uso del multithreading, perché i processori multicore sono poco utili...

Si possono fare giochi con tale grafica sul terminale client, ma mi chiedo se i commercianti giocheranno invece di fare trading )

 
Alexander Nikolaev:

Ci sarà mai qualcosa di simile per MQL4? O almeno, l'uso del multithreading, perché i processori multicore sono poco utili...

Non so se i commercianti giocheranno al terminale con questa grafica, ma mi chiedo se giocheranno invece di fare trading)

Quali sono i vostri compiti a cui manca un nucleo?

È possibile eseguire copie di terminali corrispondenti al numero di core per ottimizzarli.

 
-Aleks-:

Che tipo di compito ha che manca un nucleo?

Potete eseguire copie dei terminali corrispondenti al numero di core da ottimizzare.

Beh, se non solo 8-16 core della CPU ma migliaia di core della CPU sono utilizzati per l'ottimizzazione, sarebbe un'esplosione di prestazioni. Se, naturalmente, tale possibilità viene attuata.
 
Vitalie Postolache:
Beh, se non solo 8-16 core della CPU ma migliaia di core della CPU sono utilizzati per l'ottimizzazione, sarebbe un'esplosione di prestazioni. Se, naturalmente, tale possibilità sarà attuata.
Renat ha detto da tempo che OpenCL funziona nel tester MT5, ma solo su una macchina locale, non nel cloud. Quindi usatelo anche adesso.
 

Bellissimo!!!

Anche pensato a come potrebbe essere usato in seguito - notizie in diretta direttamente sul grafico, o un proprio canale con analisi o formazione (webinar)

Sviluppatori Ben fatto.