Hier sehen Sie, was Sie mit OpenCL direkt in MetaTrader 5 ohne DLLs machen können - Seite 7

 

Beim Versuch, das Skript auszuführen, ging es zunächst so:

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

und dann von http://www.nvidia.ru/Download/index.aspx?lang=ru

die neuesten Kartentreiber heruntergeladen wurden.

und die Protokollmeldungen sind die gleichen wie oben, wenn Sie versuchen, das Skript auszuführen.

dann wurde das Intel® SDK für OpenCL™-Anwendungen für Windows* 2016 von der Website

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

Beim nächsten Versuch, das Skript auszuführen, wird die folgende Meldung im Protokoll angezeigt:

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

Nun, wer weiß schon, was los ist?




es kann dieses openCL* nicht zum Laufen bringen


________________________

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...
 
Sie haben in der Liste der OpenCL-Geräte keine Videoadapter!

Ändern Sie den Skriptcode, anstatt von

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

Versuchen Sie die folgende Zeile

   if((cl_ctx=CLContextCreate(CL_USE_ANY))==INVALID_HANDLE)
 
Ilyas:
Sie haben in der Liste der OpenCL-Geräte keine Videoadapter!

Ändern Sie den Skriptcode, anstatt von

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

Versuchen Sie es mit der folgenden Zeile

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

nicht funktioniert hat (

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:

hat nicht geholfen (


Kompilieren Sie das Skript
 
Gibt es Grenzen für die Rechenleistung von CPU und GPU?
 
-Aleks-:
Gibt es irgendwelche Einschränkungen für Berechnungen auf CPU und GPU?

In der Regel liegt die Beschränkung beim Speicher, sowohl für die GPU als auch für die CPU.

Aber eines ist klar - der Code für die CPU ist weniger anspruchsvoll zu optimieren als für die GPU, es kommt oft vor, dass auf der CPU reibungslos funktioniert, dass auf der GPU nicht einmal laufen kann oder schnell mit einem Fehler oder Absturz des Video-Treibers beendet.

 
Igor Volodin:
Kompilieren Sie das Skript
wurde natürlich zusammengestellt
 
Andrey Dik:

In der Regel liegt die Beschränkung beim Speicher, sowohl bei der GPU als auch bei der CPU.

Aber eines ist klar - der Code für die CPU ist weniger anspruchsvoll zu optimieren als für die GPU, es kommt oft vor, dass auf der CPU reibungslos funktioniert, was auf der GPU gar nicht laufen kann oder schnell mit einem Fehler oder Absturz des Video-Treibers endet.

Wenn dies der Fall ist, ist es möglich, die GPU zur Berechnung von Indikatoren zu verwenden und den Expert Advisor auf der CPU laufen zu lassen?
 
Dr.Trader:

OpenCL ist sehr gut, man kann mit dieser Technologie sehr schnell neuronale Netze trainieren, hunderte (tausende) Male schneller als auf einem normalen Prozessor.

Dies kann wie folgt korrigiert werden: Suchen Sie diese Zeilen im Skript -

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

und ersetzen sie durch -

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


Ich danke Ihnen!

Es hat funktioniert, aber der "Himmel" hat Wellen geschlagen.

 
Für mich als Nicht-Programmierer war aus den Kommentaren klar, dass dies nichts für die breite Masse ist. Aber es war trotzdem interessant zu lesen. Sollte ich eine Welle neuer Ideen in Form von Indikatoren und Experten erwarten? Oder ist es nur ein Spielzeug für die Elite?