OpenCL: interne Implementierungstests in MQL5 - Seite 30

 
2012.03.08 11:01:12     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      OpenCL init OK!
2012.03.08 11:01:16     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      GPU time = 3962 ms
2012.03.08 11:01:16     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      Соunt inticators = 16; Count history bars = 144000; Count pass = 1024
2012.03.08 11:01:16     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      Result on Gpu МахResult==1.45763 at 821 pass
2012.03.08 11:07:01     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      CPU time = 345465 ms
2012.03.08 11:07:01     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      Соunt inticators = 16; Count history bars = 144000; Count pass = 1024
2012.03.08 11:07:01     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      Result on Cpu МахResult==1.45762 at 821 pass
2012.03.08 11:07:01     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      CpuTime/GpuTime = 87.19459868753155

Nochmals, papaklass hat Onboard-Video, ich habe diskrete, die CPU ist die gleiche, der Unterschied ist vernachlässigbar.

Raraklass, was ist Ihre Achse Bitrate und Achse?

 
papaklass:

W7 32bit.

Danke. Ich auch, ok, ich denke, bis ich zu OpenCL komme, werden alle Bugs behoben sein und alles wird gut funktionieren.
 
MetaDriver:

...

Ich werde den Quellcode aus Gier nicht veröffentlichen, aber für diejenigen, die es auf ihrer eigenen Hardware ausprobieren wollen, gibt es eine ex5 im Trailer.

Das war's, ich bin raus. Ich bin raus, und die Eingabe ist geschlossen, um zu optimieren. ))

FE      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       14:55:06        OpenCL init OK!
ED      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       14:55:10        GPU time = 3946 ms
LS      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       14:55:10        Соunt inticators = 16; Count history bars = 144000; Count pass = 1024
KS      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       14:55:10        Result on Gpu МахResult==0.0 at 0 pass
GK      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       15:01:07        CPU time = 356587 ms
HI      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       15:01:07        Соunt inticators = 16; Count history bars = 144000; Count pass = 1024
HI      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       15:01:07        Result on Cpu МахResult==1.05885 at 866 pass
KM      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       15:01:07        CpuTime/GpuTime = 90.36670045615813

Wenn Sie eine Minute Zeit haben, können Sie ex5 für meinen Nörgler optimieren. )) Machen Sie die Durchläufe kleiner, z. B. 512 oder 100000 Balken. Wenn ich es nicht tue, tue ich es nicht. Ich muss sowieso alles später studieren. )) Sie haben mir bereits eine Fülle von Beispielen gegeben, die ich studieren kann. Ich danke Ihnen.

 
tol64:

Das war's, ich bin über Bord gegangen. Ich bin raus und bastle mit dem Eingang ist geschlossen. ))

Wenn Sie etwas freie Zeit haben, können Sie ex5 für meinen Nörgler korrigieren. )) Machen Sie weniger Durchgänge, z. B. 512, oder Takte 100000........................ Danke.

Nivapros.

2012.03.08 16:37:13    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    CpuTime/GpuTime = 191.7058823529412
2012.03.08 16:37:13    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    Result on Cpu МахResult==1.16557 at 228 pass
2012.03.08 16:37:13    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    Соunt inticators = 16; Count history bars = 100000; Count pass = 256
2012.03.08 16:37:13    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    CPU time = 35849 ms
2012.03.08 16:36:37    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    Result on Gpu МахResult==1.16557 at 228 pass
2012.03.08 16:36:37    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    Соunt inticators = 16; Count history bars = 100000; Count pass = 256
2012.03.08 16:36:37    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    GPU time = 187 ms
2012.03.08 16:36:37    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    OpenCL init OK!

--

Übrigens, Kröte, der CL-Code ist nach wie vor frei verfügbar.

Ich kann sogar im Detail dazu Stellung nehmen, falls jemand Fragen hat.

Nachdem Sie das Skript ausgeführt haben, heißt es cl_ParallelTester_00-02-(16x7x3).cl.

 
MetaDriver:

Nivapros.

Übrigens, Kröte, der CL-Code ist nach wie vor frei verfügbar.

Nach der Ausführung des Skripts wird es cl_ParallelTester_00-02-(16x7x3).cl genannt.

Leider bläst auch diese Variante meinem Laptop das Hirn weg. )))

Zuerst habe ich aus Versehen die alte Variante gestartet und dachte, das Leben sei zu Ende, weil der ganze Bildschirm mit "Schnee" bedeckt war. Und selbst das Schließen des Terminals half nicht. Aber ein Neustart half, und das Leben kehrte zu mir zurück. Als es passierte, drückte ich wie ein echter Westernheld auf PrtSc und hielt das Lichtspektakel fest. Ich hätte nicht gedacht, dass es funktionieren würde, aber es hat funktioniert. So sah es aus:

//---

So sind sie, die leckeren Torten von Vladimir Gomonov. Es war interessant. )))

 
tol64:

1. Leider macht selbst diese Option meinem Laptop einen Strich durch die Rechnung. )))

2. und am Anfang habe ich aus Versehen die alte Variante gestartet und dachte, das Leben sei vorbei, weil der ganze Bildschirm mit "Schnee" bedeckt war.

1. lösbar. Hier ist eine andere Variante. 50000 Takte x 128 Durchgänge.

// Noch besser als zuvor - ich habe dem neuronalen Netz eine gestufte Aktivierungsfunktion hinzugefügt.

// (die vorherige Version war linear, was bei echten Netzen ziemlich sinnlos ist)

2... Das passiert, wenn man die GPU überlastet. Ich hatte schon mehr als das. ;-)

 
MetaDriver:

Das Problem kann gelöst werden. Hier ist eine weitere Möglichkeit. 50.000 Takte x 128 Durchgänge

// Noch besser als zuvor - dem neuronalen Netz wurde eine gestufte Aktivierungsfunktion hinzugefügt.

// (die vorherige Version war linear, was bei echten Netzen ziemlich sinnlos ist)

Danke. Hier ist das Ergebnis:

OR      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:08        OpenCL init OK!
DD      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:11        GPU time = 2216 ms
PR      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:11        Соunt inticators = 16; Count history bars = 50000; Count pass = 128
EQ      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:11        Result on Gpu МахResult==3.56957 at 14 pass
QI      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:29        CPU time = 17894 ms
GH      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:29        Соunt inticators = 16; Count history bars = 50000; Count pass = 128
FJ      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:29        Result on Cpu МахResult==3.56957 at 14 pass
OL      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:29        CpuTime/GpuTime = 8.074909747292418

//---

Hier ist eine Frage (wahrscheinlich eher an die Entwickler). Warum haben die bisherigen Varianten eine so tödliche Wirkung auf die Karte? Übrigens stürzt der Barnsley-Farn auch auf mich ab, wenn ich tief heranzoome. Wird dieses Problem in irgendeiner Weise in der Programmierung gelöst, oder wird der Terminal-Mechanismus schließlich in der Lage sein, dies zu kontrollieren. Ich meine, es sollte nicht zu einem Absturz kommen, sondern nur zu einer längeren Rechenzeit.

 
tol64:

Ich danke Ihnen. Hier ist das Ergebnis:

//---

Hier ist eine Frage (wahrscheinlich eher an die Entwickler). Warum sind die bisherigen Optionen auf der Karte so tödlich? Übrigens stürzt der Barnsley-Farn auch auf mich ab, wenn ich tief heranzoome. Wird dieses Problem in irgendeiner Weise in der Programmierung gelöst, oder wird der Terminal-Mechanismus schließlich in der Lage sein, dies zu kontrollieren. Ich meine, es sollte nicht zu einem Absturz kommen, sondern nur zu einer längeren Rechenzeit.

Ich bitte Sie.

--

Das mag unerwartet klingen, aber ich bin strikt gegen eine Kontrolle durch das Terminal - es verlangsamt die Kontrollen.

Und das, obwohl mein Farn den Videotreiber bei einem starken Zoom überhaupt zerrissen hatte.

// Richtig, das System ist nicht abgestürzt - der Treiber hat sich selbst mit einer kritischen Fehlermeldung neu gestartet.

// Aber das Terminal hat sich festgefahren - ich musste es über den Task-Manager beenden

Stattdessen sollte die Funktion GPU_Info(int GPU_PARAM_xxx) erstellt werden, die die Systeminformationen über die Grafikkarte abruft, einschließlich der maximal zulässigen Gesamtzahl an Puffern für einen Task. Dann kann der Programmierer selbst dafür sorgen, dass die Grenzen nicht überschritten werden.

Документация по MQL5: Программы MQL5 / Ошибки выполнения
Документация по MQL5: Программы MQL5 / Ошибки выполнения
  • www.mql5.com
Программы MQL5 / Ошибки выполнения - Документация по MQL5
 
MetaDriver:

Stattdessen sollte die Funktion GPU_Info(int GPU_PARAM_xxx) erstellt werden, die Systeminformationen über die Grafikkarte abruft, einschließlich der maximalen Anzahl von Puffern für eine Aufgabe. Dann kann der Programmierer selbst dafür sorgen, dass die Grenzen nicht überschritten werden.

Ihr Vorschlag ist besser, aber im Prinzip genauso - Kontrolle. Einige Benutzer können durch solche Tänze schon vorher graue Haare bekommen oder Wutanfälle bekommen. Auf wen wird all dies dann ausgegossen werden. Richtig, die Programmierer. Es wird mehr Arbeit für Arbitrage geben. Und niemand braucht sie. )))
 

Link aus AlexEros Beitrag über "quaternary": Tabelle aller mehr oder weniger modernen AMD-Grafikkarten.

Wenn Sie an der Unterstützung von Berechnungen mit doppelter Genauigkeit interessiert sind, lesen Sie bitte die Spalte FP64 (Double Precision) - Berechnungen mit doppelter Gleitkommazahl. Sie ist Vorletzte in der Tabelle. Steht dort ein "-", bedeutet dies, dass es nicht unterstützt wird.

Grund der Beschwerde: