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

 

Lorsque j'ai essayé d'exécuter le script, cela s'est d'abord passé comme ceci :

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

et ensuite de http://www.nvidia.ru/Download/index.aspx?lang=ru

les derniers pilotes de carte ont été téléchargés.

et les messages du journal sont les mêmes que ci-dessus, lorsque l'on essaie d'exécuter le script.

puis le kit SDK Intel® pour les applications OpenCL™ pour Windows* 2016 a été téléchargé sur le site web.

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

à la prochaine tentative d'exécution du script, le message suivant apparaîtra dans le journal :

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

Eh bien, qui sait ce qui ne va pas ?




Je n'arrive pas à faire fonctionner cet 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...
 
Vous n'avez, dans la liste des périphériques OpenCL, aucun adaptateur vidéo !

Changez le code du script, au lieu de

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

essayez la ligne suivante

   if((cl_ctx=CLContextCreate(CL_USE_ANY))==INVALID_HANDLE)
 
Ilyas:
Vous n'avez, dans la liste des périphériques OpenCL, aucun adaptateur vidéo !

Changez le code du script, au lieu de

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

essayez d'utiliser la ligne suivante

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

n'a pas fonctionné (

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:

n'a pas aidé (


Compiler le script
 
Y a-t-il des limites au calcul sur le CPU et le GPU ?
 
-Aleks-:
Y a-t-il des limitations pour les calculs sur le CPU et le GPU ?

En règle générale, la limitation est la mémoire, tant pour le GPU que pour le CPU.

Mais une chose est claire - le code pour le CPU est moins exigeant à optimiser que pour le GPU, il arrive souvent que sur le CPU fonctionne sans problème alors que sur le GPU il ne peut même pas fonctionner ou se termine rapidement avec une erreur ou un crash du pilote vidéo.

 
Igor Volodin:
Compiler le script
naturellement, a été compilé
 
Andrey Dik:

En règle générale, la limitation est la mémoire, tant pour le GPU que pour le CPU.

Mais une chose est claire - le code pour le CPU est moins exigeant à optimiser que pour le GPU, il arrive souvent que sur le CPU fonctionne sans problème alors que sur le GPU il ne peut même pas fonctionner ou se termine rapidement par une erreur ou un crash du pilote vidéo.

Si tel est le cas, est-il possible d'utiliser le GPU pour calculer les indicateurs et d'exécuter le conseiller expert sur le CPU ?
 
Dr.Trader:

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.

Ceci peut être corrigé comme suit : trouvez 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"


Merci !

Cela a fonctionné, mais le "ciel" a des ondulations.

 
Il était clair pour moi, en tant que non-programmeur, d'après les commentaires, que ce n'était pas pour les masses. Mais c'était quand même intéressant à lire. Dites-moi, dois-je m'attendre à une vague d'idées nouvelles sous forme d'indicateurs et d'experts ? Ou est-ce juste un jouet pour l'élite ?