Voici ce que vous pouvez faire avec OpenCL directement dans MetaTrader 5, sans aucune DLL. - page 2

 
Renat Fatkhullin:

Nous préparons une bibliothèque de personnel OpenCL pour les mathématiques et le rendu, ce qui prendra quelques semaines. Ça va être incroyablement rapide et beau.

En attendant, jetez un coup d'œil à la bibliothèque graphique mise à jour pour le rendu des graphiques scientifiques.

Alors, s'agit-il d'écrire des programmes dessus dans MetaEditor, ou sont-ils déjà préparés et il suffit de lancer un script sur le graphique ?
 

Ça n'a pas commencé pour moi non plus :

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 est très bon, vous pouvez former des réseaux neuronaux très rapidement avec cette technologie, des centaines (milliers) de fois plus vite que sur un processeur ordinaire.

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

Cela peut être corrigé en trouvant ces lignes dans le 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"

et les remplacer par -

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

Quelques questions :

  1. Si plusieurs EA s'exécutent dans le même terminal, peuvent-elles partager et utiliser OpenCL indépendamment ?
  2. Même chose pour les terminaux multiples.

 
Renat Fatkhullin:

Des milliers de cœurs de GPU peuvent être utilisés avec OpenCL pour accélérer les calculs de cent (plusieurs centaines) fois.

C'est exactement ce dont a besoin le commerce et ce qui permettra la transition vers des techniques qui nécessitent des ordres de grandeur plus importants de ressources informatiques.

Dans MQL4, vous creusez avec une pelle, tandis que dans MQL5 avec OpenCL, vous obtenez un tracteur en termes de performances. Pour mettre les calculs du GPU à la portée du plus grand nombre, nous préparons de nouvelles bibliothèques mathématiques en plus de celles qui existent déjà.

Vous avez également besoin d'exemples réels de ce qui peut être mis en parallèle de manière réaliste dans un EA, par exemple.

Puis-je utiliser du code utilisant OpenCL lors de l'optimisation ?

 
Renat Fatkhullin:

Avec OpenCL, vous pouvez utiliser des milliers de cœurs de GPU pour accélérer les calculs mathématiques de cent (plusieurs centaines) fois.

C'est exactement ce dont le commerce a besoin et ce qui permettra la transition vers des techniques qui nécessitent des ordres de grandeur plus importants de ressources informatiques.

Dans MQL4, vous creusez avec une bêche et dans MQL5 avec OpenCL, vous obtenez un tracteur en termes de performances. Pour mettre les calculs du GPU à la portée du plus grand nombre, nous préparons de nouvelles bibliothèques mathématiques en plus de celles qui existent déjà.

Y aura-t-il un jour quelque chose de similaire pour MQL4 ? Ou du moins, l'utilisation du multithreading, car les processeurs multicœurs ne servent pas à grand-chose...

Il est possible de créer des jeux avec de tels graphismes sur le terminal du client, mais je me demande si les traders vont jouer au lieu de négocier).

 
Alexander Nikolaev:

Y aura-t-il un jour quelque chose de similaire pour MQL4 ? Ou du moins, l'utilisation du multithreading, car les processeurs multicœurs ne servent pas à grand-chose...

Je ne sais pas si les traders joueront à des jeux sur le terminal avec de tels graphismes, mais je me demande s'ils ne joueront pas à des jeux au lieu de faire du trading ;)

Quelles sont vos tâches auxquelles il manque un noyau ?

Vous pouvez exécuter des copies de terminaux correspondant au nombre de cœurs pour les optimiser.

 
-Aleks-:

Quel type de tâche manque-t-il à un noyau ?

Vous pouvez exécuter des copies des terminaux correspondant au nombre de cœurs à optimiser.

Eh bien, si non seulement 8-16 cœurs de CPU mais des milliers de cœurs de CPU sont utilisés pour l'optimisation, il s'agirait d'une explosion des performances. Si, bien sûr, une telle possibilité est mise en œuvre.
 
Vitalie Postolache:
Eh bien, si non seulement 8-16 cœurs de CPU mais des milliers de cœurs de CPU sont utilisés pour l'optimisation, il s'agirait d'une explosion des performances. Si, bien sûr, une telle possibilité est mise en œuvre.
Renat affirme depuis longtemps qu'OpenCL fonctionne dans le testeur MT5, mais uniquement sur une machine locale, et non dans le nuage. Alors utilisez-le même maintenant.
 

Magnifique ! !!

Nous avons même pensé à la façon dont il pourrait être utilisé plus tard - des nouvelles en direct directement sur le graphique, ou sa propre chaîne avec des analyses ou des formations (webinaires).

Développeurs Bien joué.

Raison: