Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Irgendetwas funktioniert bei mir nicht. Die Initialisierungszeile ist in Ordnung:
2012.04.01 05:52:01 Terminal CPU: GenuineIntel Intel(R) Pentium(R) CPU G840 @ 2.80GHz with OpenCL 1.2 (2 units, 2793 MHz, 7912 Mb, version 2.0 (sse2))
(Ich habe OpenCL 1.1 von AMD und 1.2 darüber gelegt). Aber wenn man den Test jetzt durchführt, erhält man
2012.04.01 06:06:49 ParallelTester_00-01x (EURUSD,H1) OpenCL not found.
Davor habe ich den Intel-Grafiktreiber auf eine neuere Version aktualisiert und dann die AMD-Treiber mit ihrer eigenen Installation entfernt und dann wieder installiert.
Was mache ich jetzt falsch?
P.S. Bald wird Ivy kommen und es wird wirklich zeigen, was Intel im Bereich der integrierten Grafik leisten kann, zusammen mit Intel HD 4000. Sehen Sie sich die Grafiken an.
Was mache ich jetzt falsch?
Was mache ich jetzt falsch?
Im neuen Build wurde der Parameter der CLContextCreate-Funktion geändert, int device wird anstelle von bool use_gpu verwendet.
mit device>=0 wird als Nummer des OpenCL-Geräts in der Reihenfolge
mit device==OPENCL_DEVICE_ANY (-1) verwendet, um automatisch aus allen verfügbaren Geräten auszuwählen
mit device==OPENCL_DEVICE_GPU (-2) verwendet, um automatisch aus allen verfügbaren GPU-Geräten auszuwählen
Können Sie mir bitte zeigen, wie man das im Code macht? Ich rufe CLContextCreate( OPENCL_DEVICE_ANY ) auf und erhalte das Ergebnis beim Kompilieren:
'OPENCL_DEVICE_ANY' - undeclared identifier ParallelTester_00-01x.mq5 145 31
Gebäude 619.
Und die zweite Frage: Wo kann ich die neueste Hilfe finden?
P.S. Es hat funktioniert, sobald ich das Argument auf -1 gesetzt habe. Die Konstante OPENCL_DEVICE_ANY wurde noch nicht deklariert :)
Aber in zukünftigen Builds wird es CL_USE_ANY/CL_USE_GPU_ONLY sein
Ich beschloss zu prüfen, wie OpenCL auf i3-2120 funktionieren wird (es ist nicht mein Rechner, keine diskrete Video im System). Installiertes AMD APP SDK, OpenCL-Z hat alles erkannt. Das Terminal hat während der Initialisierung eine Zeile angezeigt:
2012.04.02 03:59:47 Terminal CPU: GenuineIntel Intel(R) Core(TM) i3-2120 CPU @ 3.30GHz with OpenCL 1.1 (4 units, 3310 MHz, 8039 Mb, version 2.0)
Überprüft es auf MetaDriver Code zu diesem Beitrag beigefügt und leicht mit den neuesten Änderungen in 619 Build geändert (siehe erste Tests hier). Ergebnis:
2012.04.02 04:00:43 ParallelTester_00-01x (EURUSD,H1) CpuTime/GpuTime = 0.741385550890401
2012.04.02 04:00:43 ParallelTester_00-01x (EURUSD,H1) Result on Cpu МахResult==0.79567 at 734 pass
2012.04.02 04:00:43 ParallelTester_00-01x (EURUSD,H1) Соunt inticators = 16; Count history bars = 144000; Count pass = 1280
2012.04.02 04:00:43 ParallelTester_00-01x (EURUSD,H1) CPU time = 20483 ms
2012.04.02 04:00:22 ParallelTester_00-01x (EURUSD,H1) Result on Gpu МахResult==0.79567 at 734 pass
2012.04.02 04:00:22 ParallelTester_00-01x (EURUSD,H1) Соunt inticators = 16; Count history bars = 144000; Count pass = 1280
2012.04.02 04:00:22 ParallelTester_00-01x (EURUSD,H1) GPU time = 27628 ms
2012.04.02 03:59:55 ParallelTester_00-01x (EURUSD,H1) OpenCL init OK!
Zur Laufzeit auf der "GPU" waren alle vier Threads des Prozessors zu 100 % ausgelastet.
Was muss ich tun, um Akzeleration zu erhalten? Auf einem Pentium G840-basierten System (ebenfalls ohne diskretes Video) war es 25 Mal schneller:
P.S. Ich habe dem Service Desk eine Nachricht geschickt, aber ich fürchte, das ist eher mein Problem... Ich habe anscheinend gelernt, wie man das AMD APP SDK mit geschlossenen Augen korrekt installiert und deinstalliert, aber ich schätze, ich habe noch nicht alle Fallstricke überwunden. Obwohl Intel OpenCL Runtime auf meinem System installiert ist, wird es immer noch nicht im Terminal als OpenCL-Gerät erkannt.
P.P.S. Wie sich herausstellte, habe ich noch etwas anderes ausgegraben(https://www.mql5.com/ru/forum/6042/page25):
Asche: 2012.03.05 17:43:16 Terminal CPU: GenuineIntel Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz mit OpenCL 1.1 (4 Einheiten, 3092 MHz, 4008 Mb, Version 2.0)
2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD,M1) CpuTime/GpuTime = 0.734767766287369
2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD,M1) Ergebnis auf Cpu MachResult==1.27347 bei 1125 pass
2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD, M1) Anzahl der Indikatoren = 16; Anzahl der historischen Balken = 144000; Anzahl der Durchläufe = 1280
2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD, M1) CPU-Zeit = 21309 ms
2012.03.05 17:45:02 ParallelTester_00-01x (EURUSD,M1) Ergebnis auf Gpu MachResult==1.27347 bei 1125 pass
2012.03.05 17:45:02 ParallelTester_00-01x (EURUSD, M1) Anzahl der Indikatoren = 16; Anzahl der historischen Balken = 144000; Anzahl der Durchläufe = 1280
2012.03.05 17:45:02 ParallelTester_00-01x (EURUSD, M1) GPU-Zeit = 29001 ms
2012.03.05 17:44:33 ParallelTester_00-01x (EURUSD,M1) OpenCL init OK!
:(((
Vielleicht habe ich "Granaten des falschen Systems"? (Ich meine die AMD SDK-Version)
GPU+OpenCL ist schließlich ein großartiges Werkzeug!
2012.04.08 00:41:22 ParallelTester_00-02-(16x7x3) (USDJPY,M30) CpuTime/GpuTime = 728.1857142857143
2012.04.08 00:41:22 ParallelTester_00-02-(16x7x3) (USDJPY,M30) Ergebnis auf Cpu MachResult==3.78654 bei 50 Durchgängen
2012.04.08 00:41:22 ParallelTester_00-02-(16x7x3) (USDJPY,M30) Anzahl der Indikatoren = 16; Anzahl der historischen Balken = 50.000; Anzahl der Durchläufe = 1280
2012.04.08 00:41:22 ParallelTester_00-02-(16x7x3) (USDJPY,M30) CPU-Zeit = 101946 ms
2012.04.08 00:39:40 ParallelTester_00-02-(16x7x3) (USDJPY,M30) Ergebnis auf Gpu MachResult==3.78654 bei 50 Durchgängen
2012.04.08 00:39:40 ParallelTester_00-02-(16x7x3) (USDJPY,M30) Anzahl der Indikatoren = 16; Anzahl der historischen Balken = 50.000; Anzahl der Durchläufe = 1280
2012.04.08 00:39:40 ParallelTester_00-02-(16x7x3) (USDJPY,M30) GPU-Zeit = 140 ms
GPU+OpenCL ist schließlich ein großartiges Werkzeug!
2012.04.08 00:39:40 ParallelTester_00-02-(16x7x3) (USDJPY,M30) GPU-Zeit = 140 ms
Ich schlage vor, die Tests so zu gestalten, dass die GPU-Berechnungszeit nicht so gering ist. Wie auch immer, 140 ms ist imho ein zu unzuverlässiger Wert, insbesondere mit GetTickCount() -Messfehlern von einigen zehn Millisekunden.
MD, ich bin so neidisch auf dich.
Ich schlage vor, die Tests so zu gestalten, dass die GPU-Berechnungszeit nicht so gering ist.
Ich habe nicht die Geduld, auf eine CPU zu warten :) Je weiter im Wald, desto kühler ist die GPU...
Gleichermaßen. :)
Aber ich werde es auf 4096 Bienen laufen lassen, die CPU wird es in fünf Minuten zählen.