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

 
Ilyas:
  1. Schließen Sie das Terminal
  2. Entfernen Sie den OpenCL-Wert aus der Registrierungsstruktur "HKEY_CURRENT_USER\Software\MetaQuotes Software".
  3. Starten Sie das Terminal und testen Sie

Der OpenCL-Schlüssel wurde vor der Ausführung entfernt. Das Verhalten hat sich nicht geändert.

Das heißt, der erste Start des Expert Advisors mit CLContextCreate(CL_USE_GPU_ONLY) führt zu den oben genannten Fehlern und der Expert Advisor startet nicht. Ab dem zweiten Durchlauf wird das Initialisierungsprotokoll der OpenCL-Geräte nicht mehr angezeigt, es gibt nur noch einen Fehler im EA-Protokoll und EA funktioniert nicht mehr. Beim Neustart des Terminalsfunktioniert EA mit einem korrigiertenCLContextCreate(0)-Befehl- es erscheint eine mega-realistische Meereslandschaft. Gleichzeitig werden im Initialisierungsprotokoll dieselbenLeistungstestfehler angezeigt, aber im EA-Protokoll herrscht Ruhe.

Der Schlüssel ist leicht verändert:

[HKEY_CURRENT_USER\Software\MetaQuotes Software]

before - "OpenCL"=hex:91,57,f4,f8,2e,0b,19,c5,e9,ef,30,dd,c9,a9,af,8c,00,00,00,00,00,00,00,58,f7,f7,28,88,c5,e1,77,3c,4c,f8,8a,4d,31,88,88,6c,2a,09,a4,b3,d8,e2,3f

после - "OpenCL"=hex:91,57,f4,f8,2e,0b,19,c5,e9,ef,30,dd,c9,a9,af,8c,00,00,00,00,00,00,00,00,58,f7,f7,28,88,c5,e1,77,3c,4c,f8,8a,4d,31,88,88,98,6b,19,ab,41,5c,fd,3f

Im Prinzip ist dieses Verhalten unkritisch, wenn man EA/Skripte fixiert und Geräte umgeht, indem man sie explizit anspricht und das CL_DEVICE_TYPE-Zeichen überprüft. Es ist imho sogar besser, die Aufgaben auf Geräte mit eigener Bewertung zu verteilen. Es ist einfach frustrierend, wenn Initialisierungsfehler auftreten. Wer weiß, wie sich OpenCL in der nächsten Schlacht verhalten wird.

Bitte helfen Sie mir, dasOriginal Intel SDK für OpenCL-Anwendungen 2016 R2 zu finden, um die Kernel zu schreiben und zu testen. Es ist sinnlos, an Intel auf Russisch zu schreiben ;)

Warum versuchen Sie es nicht mit dem AMD SDK?

 
Versuchen Sie, auf Beta 2543 zu aktualisieren.
 
directx ist stabiler, aber man muss viel Arbeit investieren, um es zu berechnen, und es gibt keine Dubs.
 
Ilyas:
Versuchen Sie ein Upgrade auf Beta 2543

beta 2545, Freigabe 2560.

Immer, wenn das Skript zum ersten Malausgeführt wird:

Scripts script Seascape (GBPUSD,H1) loaded successfully
OpenCL  device #0: GPU Intel(R) Corporation Intel(R) HD Graphics 4400 with OpenCL 1.2 (20 units, 400 MHz, 1425 Mb, version 10.18.14.5117)
OpenCL  device #1: CPU Intel(R) Corporation Intel(R) Core(TM) i7-4500 U CPU @ 1.80 GHz with OpenCL 1.2 (4 units, 1800 MHz, 8087 Mb, version 4.2.0.148, rating 21)
OpenCL  device performance test started
OpenCL  test compilation failed with error: 
':9:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 
:10:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 
:11:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 
:12:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 
:13:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 
:20:4: error: use of type 'double' requires cl_khr_fp64 extension to b
                
OpenCL  device #0 performance test error: 'cannot create OpenCL program (5105)'
OpenCL  device performance test finished with error(s)
OpenCL  device #0: GPU Intel(R) Corporation Intel(R) HD Graphics 4400 with OpenCL 1.2 (20 units, 400 MHz, 1425 Mb, version 10.18.14.5117)
OpenCL  device #1: CPU Intel(R) Corporation Intel(R) Core(TM) i7-4500 U CPU @ 1.80 GHz with OpenCL 1.2 (4 units, 1800 MHz, 8087 Mb, version 4.2.0.148, rating 21)
Scripts script Seascape (GBPUSD,H1) removed
BeimAusführendes Skripts mitCLContextCreate (CL_USE_GPU_ONLY):
Seascape (GBPUSD,H1)    OpenCL not found. Error=5114
 

Ich habe ähnliche Fehler, aber vor einem Jahr funktionierte es auf einem schwächeren Tablet problemlos.

OpenCL  device #0: GPU Intel(R) Corporation Intel(R) HD Graphics 400 with OpenCL 1.2 (12 units, 600 MHz, 1598 Mb, version 20.19.15.4364)
OpenCL  device #1: CPU Intel(R) Corporation  Intel(R) Atom(TM) x5-Z8550 CPU @ 1.44 GHz with OpenCL 1.2 (4 units, 1440 MHz, 4016 Mb, version 5.2.0.10094)
OpenCL  device performance test started
OpenCL  test compilation failed with error: '1:9:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 1:10:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 1:11:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 1:12:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 1:13:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 1:20:4: error: use of type 'double' requires cl_khr_fp64 extensio
OpenCL  device #0 performance test error: 'cannot create OpenCL program (5105)'
OpenCL  test compilation failed with error: 'Compilation started 2:9:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 2:10:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 2:11:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 2:12:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 2:13:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 2:20:4: error: use of type 'double' requires 
OpenCL  device #1 performance test error: 'cannot create OpenCL program (5105)'
OpenCL  device performance test finished with error(s)
OpenCL  device #0: GPU Intel(R) Corporation Intel(R) HD Graphics 400 with OpenCL 1.2 (12 units, 600 MHz, 1598 Mb, version 20.19.15.4364)
OpenCL  device #1: CPU Intel(R) Corporation  Intel(R) Atom(TM) x5-Z8550 CPU @ 1.44 GHz with OpenCL 1.2 (4 units, 1440 MHz, 4016 Mb, version 5.2.0.10094)
und jetzt funktioniert auch das nicht mehr:
void OnStart()
{
        Print(CLContextCreate( CL_USE_ANY ));
}

mit den Parametern: CL_USE_ANY, CL_USE_CPU_ONLY, CL_USE_GPU_ONLY - Ergebnis: -1 mit Fehlercode: 5115

mit den Parametern: 0, 1 - Ergebnis: positiv

 
aim-1:

beta 2545, Freigabe 2560.

WennSie das Skript zum ersten Malausführen:

BeimAusführendes Skripts mit CLContextCreate(CL_USE_GPU_ONLY):

Ihre Karte unterstützt keine doppelten Berechnungen:

use of type 'double' requires cl_khr_fp64 extension to be enabled

Bei Finanzberechnungen kann man wegen der enormen Rundungen keine Fließkommazahlen verwenden, und daher ist die Unterstützung von Doppelberechnungen ausdrücklich erforderlich.

Bisher war es möglich, OpenCL ohne Double zu aktivieren, aber das war nicht sinnvoll.

Jetzt schränken wir sie ausdrücklich ein.

 
A100:

Ich habe ähnliche Fehler, aber vor einem Jahr funktionierte es auf einem schwächeren Tablet problemlos.

Und jetzt funktioniert auch das nicht mehr:

mit den Parametern: CL_USE_ANY, CL_USE_CPU_ONLY, CL_USE_GPU_ONLY - Ergebnis: -1 mit Fehlercode: 5115

mit den Parametern: 0, 1 - Ergebnis ist positiv

Es ist sehr merkwürdig, dass Atom den gleichen Fehler bei der Verdopplung produziert.

Wir werden das überprüfen müssen.

 
Renat Fatkhullin:

Dass Atom die gleiche Fehlermeldung über die Verdoppelung ausgibt, ist sehr seltsam.

Es unterstützt auch nicht das Doppelte.

Es ist an sich schon seltsam, eine solche Unterstützung durch das Terminal zu verlangen... Meine .cl-Datei hat überhaupt kein Double und ich verwende OpenCL nicht für präzise wissenschaftliche Berechnungen.

Außerdem handelt es sich nicht um einen alten Atom-Prozessor, sondern um einen modernen mit einer separaten GPU

 
Renat Fatkhullin:

Ihre Karte unterstützt keine Doppelzählung

Fragen wir das Gerät selbst:

void OnStart() {
   int clCtx=CLContextCreate(0);
   if(clCtx == -1) Print("ERROR in CLContextCreate");
   string str;
   if(CLGetInfoString(clCtx,CL_DEVICE_NAME,str))       Print("OpenCL device name: ",str);
   if(CLGetInfoString(clCtx,CL_DEVICE_EXTENSIONS,str)) Print("OpenCL device ext: ",str);
   CLContextFree(clCtx); }

Die Antwort des Tanks:


OpenCL-Gerätename: Intel(R) HD Graphics 4400

OpenCL-Gerät ext: cl_intel_accelerator cl_intel_advanced_motion_estimation cl_intel_ctz cl_intel_d3d11_nv12_media_sharing cl_intel_dx9_media_sharing cl_intel_motion_estimation cl_intel_simultaneous_sharing cl_intel_subgroups cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_d3d10_sharing cl_khr_d3d11_sharing cl_khr_depth_images cl_khr_dx9_media_sharing cl_khr_gl_depth_images cl_khr_gl_event cl_khr_gl_msaa_sharing cl_khr_gl_sharing cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_icd cl_khr_image2d_from_buffer cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_spir


Es gibt in der Tat keine Unterstützung für cl_khr_fp64

Ich kann das offizielle Datenblattder Intel HD Graphics 4400 mit Informationen über die fehlende doppelte Genauigkeit im Netz nicht finden, um sicherzugehen, dass es sich nicht um ein Treiberproblem handelt.

 

Der einzige Weg, um festzustellen, ob eine Grafikkarte FP64 hat, ist, Lefty-Benchmarks zu verwenden:

https://askgeek.io/ru/gpus/vs/Intel_HD-Graphics-515-vs-Intel_HD-Graphics-4400

Übrigens scheint auch der Grafik-Coprozessor von Renata keine FP64-Unterstützung zu haben:

https://askgeek.io/ru/gpus/vs/Intel_HD-Graphics-515-vs-Intel_UHD-Graphics-630

Renat, können Sie mein obiges Skript ausführen, um festzustellen, ob Ihr IGP doppelte Genauigkeit unterstützt?

Wenn ja, dann wird klar, warum Ihr Leistungstest erfolgreich war.

Vielleicht versuchen Sie dann die Option der Konvertierung mqlrates Arrays zu int auf CPU vor dem Senden an OpenCL, multipliziert sie mit Digits. Der Speicherverbrauch wird halbiert. Spielen Sie danach mit Vektoren oder versuchen Sie, bei der Verwendung von Fließkommazahlen keine Fehler zu machen. Im Prinzip sollte die Genauigkeit der Ziffern+1-Indikatoren mehr als ausreichend sein.

Datetime kann auch leicht in int umgewandelt werden, wenn 1440 Minuten im Tag in den ersten 12 Bits (oder in den ersten 2 Bytes) und die Tage in den hohen Bits sind. Der Geschwindigkeitsgewinn von int gegenüber double sollte ausreichen, um den Overhead von iTime-ähnlichen Funktionen in Kerneln zu decken.

Главная
Главная
  • askgeek.io
Сравнительный анализ видеокарт Intel HD Graphics 515 и Intel UHD Graphics 630 по всем известным характеристикам в категориях: Общая информация, Технические характеристики, Видеовыходы и порты, Совместимость, размеры, требования, Поддержка API, Память, Поддержка технологий. Анализ производительности видеокарт по бенчмаркам: PassMark - G2D Mark...