OpenCL: interne Implementierungstests in MQL5 - Seite 66

 

Mathemat:

2012.06.02 05:49:25     OpenCL  CPU: GenuineIntel  Intel(R) Pentium(R) CPU G840 @ 2.80 GHz with OpenCL 1.2 (2 units, 2793 MHz, 8040 Mb, version 2.0 (sse2))
2012.06.02 05:49:25     OpenCL  GPU: Advanced Micro Devices, Inc. ATI RV770 with OpenCL 1.0 (10 units, 780 MHz, 512 Mb, version CAL 1.4.1720)
2012.06.02 05:49:25     OpenCL  CPU: Intel(R) Corporation  Intel(R) Pentium(R) CPU G840 @ 2.80 GHz with OpenCL 1.1 (2 units, 2800 MHz, 8040 Mb, version 1.1)

D.h. Intel CPU zuerst mit der OCL-Engine von Intel, dann meine Dinosaurier HD 4870, und dann wieder Stein, aber mit AMD-Engine. Drehbuch:

Die Versionen sind unterschiedlich, d.h. ist die Version unabhängig von der Hardware?

Ich habe OCL AMD 1.1, gibt es eine Möglichkeit, es auf 1.2 zu reparieren? Vielleicht wird es schneller gehen.

Ich habe das neue AMD APP SDK 2.7 mit Unterstützung für OCL 1.2 gefunden, ich werde über neue Ergebnisse berichten (falls sich etwas ändert).

Ich habe es installiert und die Version hat sich nicht geändert. Vielleicht gibt es keine Hardware-Unterstützung oder etwas anderes.

 
fyords: Geben Sie es ein, die Version hat sich nicht geändert. Wahrscheinlich keine Hardware-Unterstützung oder so.

Das kann nicht sein. Es sollte 1,2 sein. AMD würde sich zunächst um seine eigenen Steine kümmern, und dann um andere. Sie würde sich auf die stützen, die nicht ihre eigenen sind. Außerdem verfügen beide Hersteller schon seit langem über SSE2.

Aber der Unterschied ist nicht groß, vielleicht 10 %.

 
Mathemat:

Das kann nicht sein. Es muss 1,2 sein. Zumindest würde sich AMD zuerst um seine eigenen Steine kümmern und erst dann um die anderer Leute. Es würde bei denen funktionieren, die nicht dazugehören. Außerdem verfügen beide Hersteller schon seit langem über SSE2.

Aber der Unterschied ist nicht groß, vielleicht 10 %.

Ich muss abstürzen. Seit kurzem funktionieren die Updates nicht mehr und jetzt heißt es "Version nicht authentisch". OK, solange es atmet, lass es atmen. Dann werde ich neu installieren und eine neue OCL einbauen.

Ich habe SSE2 und noch mehr. Natürlich sind 10 % nicht viel, aber es ist trotzdem schön.

P.S.: Danke für die Klarstellungen.

 
ilovebtc:

Ich habe zum Beispiel eine Radeon 6930-Grafikkarte, die 1280 Stream-Prozessoren hat. Wie wird sie in der Agentenliste erscheinen? Als 1 Gerät, oder alle 1280.

Er ist allein um ein Vielfaches schneller als 10 Prozessoren, und der Bonus gilt nicht für ein zusätzliches Gerät.

Eine Grafikkarte kann nicht mit Code arbeiten, der in mql geschrieben wurde; sie kann nur mit Code arbeiten, der in speziellen Sprachen geschrieben wurde (in unserem Fall OpenCL). Daher sind Videokarten in der Cloud nur für mql-Programme mit OpenCL-API (mit OpenCL-Inserts) nützlich.

Wenn Sie das alles verstanden haben, können Sie meinen Kommentar ignorieren. Ich hatte nur den Eindruck, dass einige Leute im Forum einen Produktivitätsschub für die meisten gängigen mql5-Programme erwarten, die nicht OpenCL für die Verbindung zur Cloud verwenden. Dies ist nicht der Fall.

 

Installiertes Intel und AMD SDK.

2012.06.07 18:40:28 OpenCL CPU: Intel(R) Corporation Intel(R) Core(TM)2 Duo CPU T8100 @ 2.10GHz with OpenCL 1.1 (2 units, 2100 MHz, 2045 Mb, version 1.1)

2012.06.07 18:40:28 OpenCL CPU: GenuineIntel Intel(R) Core(TM)2 Duo CPU T8100 @ 2.10GHz with OpenCL 1.2 (2 units, 2094 MHz, 2045 Mb, version 2.0 (sse2)) 

2012.06.07 18:40:55 vect_v2_all_devices (EURUSD,H1) =======================================
2012.06.07 18:40:55 vect_v2_all_devices (EURUSD,H1) OCL martices mul:         ROWS1 = 2000; COLSROWS = 2000; COLS2 = 2000
2012.06.07 18:50:04 vect_v2_all_devices (EURUSD,H1) CPUTime = 548.515
2012.06.07 18:50:04 vect_v2_all_devices (EURUSD,H1) ---------------
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) read = 4000000 elements
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) Device = 0: time = 15.975 sec.
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) CPUTime / GPUTotalTime = 34.336
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) sum( 1571,356 ) = 2.88011026;    thirdCPU[ 1571,356 ] = 2.88011026;    buf[ 1571,356 ] = 2.88010764
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) sum( 791,407 ) = 1.36050534;    thirdCPU[ 791,407 ] = 1.36050534;    buf[ 791,407 ] = 1.36050797
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) sum( 1920,1928 ) = 2.97455144;    thirdCPU[ 1920,1928 ] = 2.97455144;    buf[ 1920,1928 ] = 2.97455001
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) sum( 386,216 ) = -1.05270028;    thirdCPU[ 386,216 ] = -1.05270028;    buf[ 386,216 ] = -1.05269444
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) sum( 158,1896 ) = 2.30077577;    thirdCPU[ 158,1896 ] = 2.30077577;    buf[ 158,1896 ] = 2.30077529
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) sum( 1403,1477 ) = 5.44755507;    thirdCPU[ 1403,1477 ] = 5.44755507;    buf[ 1403,1477 ] = 5.44755411
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) sum( 190,97 ) = -0.19755134;    thirdCPU[ 190,97 ] = -0.19755134;    buf[ 190,97 ] = -0.19754831
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) sum( 694,1569 ) = 5.30565643;    thirdCPU[ 694,1569 ] = 5.30565643;    buf[ 694,1569 ] = 5.30566406
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) sum( 1084,703 ) = -0.40982622;    thirdCPU[ 1084,703 ] = -0.40982622;    buf[ 1084,703 ] = -0.40982300
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) sum( 613,1814 ) = -2.08050942;    thirdCPU[ 613,1814 ] = -2.08050942;    buf[ 613,1814 ] = -2.08050990
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) ________________________
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) read = 4000000 elements
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) Device = 1: time = 14.868 sec.
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) CPUTime / GPUTotalTime = 36.892
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) sum( 726,1509 ) = -3.87149954;    thirdCPU[ 726,1509 ] = -3.87149954;    buf[ 726,1509 ] = -3.87148523
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) sum( 408,1551 ) = -3.54236746;    thirdCPU[ 408,1551 ] = -3.54236746;    buf[ 408,1551 ] = -3.54237366
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) sum( 837,1133 ) = -1.46401167;    thirdCPU[ 837,1133 ] = -1.46401167;    buf[ 837,1133 ] = -1.46400595
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) sum( 1885,1406 ) = 3.41383481;    thirdCPU[ 1885,1406 ] = 3.41383481;    buf[ 1885,1406 ] = 3.41383505
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) sum( 419,930 ) = -2.05204225;    thirdCPU[ 419,930 ] = -2.05204225;    buf[ 419,930 ] = -2.05204272
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) sum( 895,1065 ) = 2.29360199;    thirdCPU[ 895,1065 ] = 2.29360199;    buf[ 895,1065 ] = 2.29360104
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) sum( 1687,1449 ) = 2.12151670;    thirdCPU[ 1687,1449 ] = 2.12151670;    buf[ 1687,1449 ] = 2.12152243
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) sum( 1227,1863 ) = 4.48004580;    thirdCPU[ 1227,1863 ] = 4.48004580;    buf[ 1227,1863 ] = 4.48004818
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) sum( 1545,234 ) = 2.60638309;    thirdCPU[ 1545,234 ] = 2.60638309;    buf[ 1545,234 ] = 2.60638452
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) sum( 446,1500 ) = -8.61246967;    thirdCPU[ 446,1500 ] = -8.61246967;    buf[ 446,1500 ] = -8.61247253
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) ________________________

Ist das gut oder schlecht?

 
Manov: Ist das schlecht oder gut?

Nun, es ist ein 2-Kern-Mobilprozessor, der vor 4,5 Jahren auf den Markt kam.

Der Fortschritt ist noch nicht abgeschlossen: Es scheint, dass neue SSE-Befehle und andere architektonische Innovationen die Hauptrolle dabei spielen. Mein Budgetstumpf ist 4-5 mal schneller bei dieser Aufgabe :)

Aber es gibt einen sehr guten Gewinn auf OpenCL. Das ist in Ordnung, so sollte es auch sein.

 
Mathemat:

Nun, es ist ein 2-Kern-Mobilprozessor, der vor 4,5 Jahren auf den Markt kam.

Der Fortschritt steht nicht still: Es scheint, dass neue SSE-Befehle und andere architektonische Innovationen eine wichtige Rolle dabei spielen. Mein Budgetstumpf ist 4-5 mal schneller bei dieser Aufgabe :)

Aber es gibt einen sehr guten Gewinn auf OpenCL. Das ist in Ordnung, so sollte es auch sein.

Herzlichen Dank!

Verstehe ich richtig, dass für große mathematische Berechnungen, wenn ich OpenCL krieche, die Zeit zum Berechnen 30+ mal weniger sein wird?!

 
Manov: Verstehe ich das richtig, dass die Laufzeit bei Verwendung von OpenCL für große mathematische Berechnungen um mehr als das 30-fache reduziert wird?

Nun ja, ungefähr - auf einer diskreten Karte. Wie auch immer, meine HD 4870 erledigt die gleichen Berechnungen in 0,5 Sekunden.

Es sollte jedoch klar sein, dass sich nicht alle intensiven Berechnungen für eine vernünftige Beschleunigung eignen.

 

Guten Abend zusammen.

Ich habe versucht, die Verwendung von OpenCL in Metatrader5 zu verstehen, konnte aber nicht ins Detail gehen.

Können Sie mir sagen, ob es möglich ist, eine Videokarte zur zusätzlichen Beschleunigung der Tests in MT5 Tester zu verwenden und was dafür zu tun ist.

Ich habe auch das Skript parallel_tester_00-01x_new_cycle ausprobiert, aber wie funktioniert es?

 
vittt:

Guten Abend zusammen.

Ich habe versucht, die Verwendung von OpenCL in Metatrader5 zu verstehen, konnte aber nicht auf den Grund kommen.

Können Sie mir sagen, ob es möglich ist, eine Videokarte zur zusätzlichen Beschleunigung der Tests in MT5 Tester zu verwenden und was dafür zu tun ist.

Ich habe auch das Skript parallel_tester_00-01x_new_cycle ausprobiert, aber wie funktioniert es?

Auf dieser Website gibt es zwei großartige Artikel zu diesem Thema, die alles sehr detailliert beschreiben: