OpenCL: interne Implementierungstests in MQL5 - Seite 25

 
Ashes:

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

[...] Vielleicht habe ich "Granaten des falschen Systems"? (Ich meine die AMD SDK-Version).

Fantastisch. Ich habe den Kern, das Motherboard, den Speicher und den Kühler in einem der üblichen Geschäfte gekauft, die ich im Netz gefunden habe. Die Gesamtkosten belaufen sich auf etwa 6.000 Euro. Wahrscheinlich haben sie mir aus Versehen einen Kieselstein aus der Zukunft zugesteckt.

Vielleicht liegt es am SDK. Ich glaube nicht, dass es sich um einen Fehler des Speichers handelt, standardmäßig ist er nur DDR-III. Und ob einkanalig oder nicht, es wirkt sich sicherlich aus, aber nicht so stark.

 
Mathemat:

Interessant. Die fyords-Karte ist stärker (GeForce GT 440), und die Rechenzeit ist um eine Größenordnung länger. ...

Ich frage mich, ob die Berechnungsgeschwindigkeit von der Auflösung abhängt (ich habe 1920x1080), weil der Desktop auch etwas frisst (Aero-Thema)?

Vielleicht ist das der Grund, warum die Berechnung länger dauert.

 
fyords: Und ich frage mich, ob die Berechnungsgeschwindigkeit von der Auflösung abhängt (ich habe 1920x1080), weil der Desktop auch etwas frisst (Aero-Thema)?

Ja, das ist möglich. Was zeigt Ihr Windows Aero-Leistungsindex an? Hier ist meine:


Ich brauche dieses Fliegenzeug nicht, also ist es ausgeschaltet.

P.S. Überprüft. Keinerlei Wirkung.

 

Der letzte Test (3.12.2011) verlief normal, aber jetzt treten einige Probleme auf, aber die Note für das Video ist 6,8. Vielleicht ist das das Problem (die Störung). Neue Hardware wird nicht installiert. Könnte ein Problem mit der neuen Hardware sein, dann warte ich auf eine neue Version, dann werde ich einen Test machen.

 

x32

x32

x64

x64

cpu-z

1

2

 

Ich fügte dumme Genetik hinzu und ließ sie in einer Schleife maximieren. Ich erhielt einen Optimierer, der ein einschichtiges Gitter auf simulierte Daten anpasste, die 500 Tagen der Geschichte auf fünfminütigen offenen Preisen (16 Indikatoren pro Eingabe) entsprechen.

Bitte prüfen.

Zu diesem Zeitpunkt betrachte ich die Agitation als erfolgreich abgeschlossen, da der Optimierer-Test unzureichend ist. ;)

Wer eine Flaute hat (im Vergleich zu anderen) - jetzt wissen Sie, wofür Sie sparen müssen ;-)

Also, meine Ergebnisse:

2012.03.06 03:44:23     ParallelOptimazer_00-02 (EURUSD,M30)    Full time of optimization == 14 sec 305 ms
2012.03.06 03:44:23     ParallelOptimazer_00-02 (EURUSD,M30)    Optimization is closing. Best result == 1.91356 at 92 generation.
2012.03.06 03:44:23     ParallelOptimazer_00-02 (EURUSD,M30)    Generation 92: MaxResult==1.91356
2012.03.06 03:44:23     ParallelOptimazer_00-02 (EURUSD,M30)    Generation 91: MaxResult==1.91356
2012.03.06 03:44:23     ParallelOptimazer_00-02 (EURUSD,M30)    Generation 90: MaxResult==1.91356
2012.03.06 03:44:23     ParallelOptimazer_00-02 (EURUSD,M30)    Generation 89: MaxResult==1.91356
.............
.........

Lassen Sie mich zum letzten Mal an meinen Fingern erklären: Dies ist ein vollständiger Optimierungszyklus eines primitiven neuronalen Netzwerks Expert Advisor.

// Nun, fast ein Expert Advisor. Zusätzliche Berechnungen im Code von DIESEM "Expert Advisor", so dass er die Gewinne realistisch genug berechnet,

// nicht über die bereits vorhandenen Berechnungen hinausgehen (bei intelligenter Implementierung). D.h. die Verlangsamung kann z.B. in zweierlei Hinsicht erfolgen.

Dateien:
 
MetaDriver:

Ich fügte dumme Genetik hinzu und schaltete die Maximierung ein. Ich erhielt einen Optimierer, der ein einschichtiges Gitter auf simulierte Daten anpasste, die 500 Tagen Historie auf Fünf-Minuten-Eröffnungskursen entsprechen (16 Indikatoren pro Eingabe).

Bitte prüfen.

...

Vielen Dank.))

...

NJ 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:06 Generation 36: MaxResult==2.29423
NO 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:08 Generation 37: MaxResult==2.29426
FE 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:10 Generation 38: MaxResult==2.29426
PJ 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:14 Generation 39: MaxResult==2.29427
HO 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:14 Generation 40: MaxResult==2.29427
QE 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:14 Generation 41: MaxResult==2.29427
EJ 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:15 Generation 42: MaxResult==2.29427
LP 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:15 Generation 43: MaxResult==2.29427
KE 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:15 Generation 44: MaxResult==2.29427
DI 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:15 Optimization is closing. Best result == 2.29427 at 44 generation.
KO 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:15 Full time of optimization == 81 sec 917 ms 
 

MetaDriver, ich danke Ihnen sehr. Sie haben Ihre Akquisetätigkeit mit einer Eins abgeschlossen. Gleichzeitig hast du mir die Gelegenheit gegeben, meine "pferdelose" Konfiguration ohne diskrete Grafikkarte zu überprüfen und sehr, sehr überrascht zu sein.

Ihr Optimierer wurde ausgeführt. Das geht so:

2012.03.05 23:00:12     Terminal        CPU: GenuineIntel  Intel(R) Pentium(R) CPU G840 @ 2.80 GHz with OpenCL 1.1 (2 units, 2793 MHz, 7912 Mb, version 2.0)
2012.03.06 04:24:34     ParallelOptimazer_00-02 (EURUSD,H1)     Full time of optimization == 58 sec 141 ms
2012.03.06 04:24:34     ParallelOptimazer_00-02 (EURUSD,H1)     Optimization is closing. Best result == 1.87689 at 60 generation.
2012.03.06 04:24:34     ParallelOptimazer_00-02 (EURUSD,H1)     Generation 60: MaxResult==1.87689
2012.03.06 04:24:33     ParallelOptimazer_00-02 (EURUSD,H1)     Generation 59: MaxResult==1.87689
2012.03.06 04:24:32     ParallelOptimazer_00-02 (EURUSD,H1)     Generation 58: MaxResult==1.87689
2012.03.06 04:24:31     ParallelOptimazer_00-02 (EURUSD,H1)     Generation 57: MaxResult==1.87689

Wenn man davon ausgeht, dass jede Generation etwa gleich lang dauert, ergibt sich, dass mein "tazi" im Vergleich zu deinem Ferrari etwa 6,5-7 mal langsamer ist, genau wie beim letzten Mal (58,14 Sekunden pro 60 Generationen ~ 0,97 Sekunden/Generation).

2 Graff: Wenn Sie die diskrete Grafik für die Dauer des Tests deaktivieren und den Test auf der integrierten Grafik des Steins durchführen könnten, wäre es sehr interessant (zur gleichen Zeit und Blick auf Intels Fortschritte in diesem Bereich in den Übergang von Lynnfield zu Sandy Bridge).

Dazu müssten Sie allerdings das SDK von AMD für OpenCL herunterladen. Es wird Ihre diskrete Karte nicht schlechter machen (sie hat ihren eigenen Treiber), aber Sie können OpenCL 1.1 auf Ihren PC bekommen, obwohl ich nicht 100% sicher bin, dass es funktionieren wird.

Aber wenn Sie sich weigern, werde ich nicht beleidigt sein.

 

Re-post aus dem mql4 Forum.

Kolleginnen und Kollegen, Sie werden mit OpenCL eine Menge Verwirrung und Probleme haben. Erwarten Sie keine einfachen Ergebnisse.

Es gibt viele Optionen, da OpenCL eine Softwaretechnologie ist, die vom Grafiktreiber abhängt. Der Grafiktreiber wird so zu einem kleinen Betriebssystem. Alles, was unterwegs daran hängt: UltraVNC, MSI Afterbufner, Agnitum OutPost web-control interactive und tausend andere Programme können den normalen Betrieb von OpenCL behindern.

Doch selbst wenn es gelingt, OpenCL für einfache Threading-Berechnungen einzusetzen, gibt es noch ein weiteres unüberwindbares Hindernis: Für komplexe Berechnungen reicht die technologische ( teilweise 32-Bit-IEEE-Unterstützung) und betriebliche(Präzisionsverlust beim Übertakten einer Spielekarte) Präzision der GPU für ernsthafte wissenschaftliche Berechnungen nicht aus. Während nVidia-Grafikprozessoren bei fast allen modernen Grafikkarten über 64-Bit-Doppelpräzisionsverarbeitung verfügen, ist dies bei AMD-Grafikkarten nur bei einigen Spitzenmodellen der Fall. nVidia hat auch einen Fehler, aber anders - sie sind in der Liga mit Microsoft und daher ihre berüchtigten CUDA (und OpenCL) nicht wirklich auf zB Server 2003, aber zur gleichen Zeit arbeiten gut auf Server 2008 und sogar auf alten Win XP - nur aufgrund einiger Marketing-Überlegungen von Microsoft.

OpenCL ist für schnelles Streaming von ungenauen 32-Bit-Berechnungen wie Faltung oder Filterung gedacht.
Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Основы языка / Типы данных / Приведение типов - Документация по MQL5
 
AlexEros:Verlust der Genauigkeit beim Übertakten einer Spielkarte

Wer wird ihn übertakten? Eine um 10-15 % höhere Rechengeschwindigkeit, aber das Risiko eines Rechenfehlers aufgrund des Todes einer einzigen Biene? Nun, wir spielen hier kein Spiel, bei dem das Nicht-Zeichnen von hundert Scheitelpunkten keine wirklichen Auswirkungen hat...

OpenCL ist für das schnelle Streaming von ungenauen 32-Bit-Berechnungen wie Faltung oder Filterung gedacht.

Wir möchten einen Vorbehalt anbringen. Die Berechnungen müssen sehr umfangreich und schwer sein, um den Verlust an Präzision als signifikant zu betrachten. Integration ist eine massive Summierung/Multiplikation, also ein schwerer Fall.

Es ist eine Sache, zwei Zahlen zu addieren, mit einer dritten zu multiplizieren (jeweils 32-Bit-Berechnungen mit einer für praktische Berechnungen ausreichenden Genauigkeit) und das Ergebnis als Ergebnis einer Iteration der Schleife in eine Zelle zu schreiben und es nicht auf andere Weise innerhalb der GPU zu verwenden.

Eine andere Möglichkeit ist die Berechnung von pi in einer Milliarde Iterationen unter Verwendung der langsamsten konvergenten Leibniz-Reihe (diese Reihe wird häufig zur Demonstration der OpenMP-Technologie verwendet):


Im zweiten Fall, bei der Verwendung von 32-Bit-Zahlen, besteht die reale Gefahr, dass die Genauigkeit verloren geht, da eine Milliarde Zahlen addiert werden. Terver sagt, dass der resultierende Fehler in 99,7 % der Fälle die Genauigkeit einer Zahl multipliziert mit 2*10^5 nicht überschreitet. Das ist ernst gemeint - und nicht immer.

Niemand hindert einen Entwickler daran, mehrere präzise Berechnungen auf einer ehrlichen CPU durchzuführen, um die tatsächlichen Fehler abzuschätzen.

Meines Erachtens kann diese Technologie mit angemessenen Vorsichtsmaßnahmen eingesetzt werden. Und wenn Sie moderne Prozessoren beider Hersteller verwenden (AMD APU Llano oder sogar Intel Sandy Bridge), können Sie die diskrete Grafikkarte für eine Weile vergessen: Was macht es für einen Unterschied, ob ich 100 oder nur 25 Mal schneller bin... Und es werden keine Bienen sterben, da ich den Prozessor auch nicht übertakten werde.

Grund der Beschwerde: