Diskussion zum Artikel "Neuronale Netze leicht gemacht (Teil 5): Parallele Berechnungen mit OpenCL" - Seite 3
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
Die Verwendung von Vektoroperationen ermöglicht es Ihnen, das Produkt von 4 Elementen parallel statt sequentiell durchzuführen. Sehen Sie sich das Video https://ru.coursera.org/lecture/parallelnoye-programmirovaniye/4-1-chto-takoie-viektorizatsiia-i-zachiem-ona-nuzhna-f8lh3 an. Es geht um OpenMP, aber die Bedeutung ist dieselbe.
Vielen Dank!
Die Vektorisierung wird also automatisch vom Compiler für OpenCL durchgeführt? Ich sehe keine speziellen Befehle in dem Code.
Ich danke Ihnen!
Also Vektorisierung wird automatisch durch den Compiler für OpenCL getan? Ich sehe keine speziellen Befehle in dem Code.
Nein, es gibt keine automatische Vektorisierung. Im Code deklarieren wir zuerst 2 Vektorvariablen.
Dann schreiben wir einen Teil der Daten aus den eingehenden Puffern in die Vektorvariablen.
Die Durchführung von Operationen mit Vektorvariablen bedeutet dann die Durchführung von Vektoroperationen. Die im Code verwendete Punktfunktion ist nur für Vektoroperationen vorgesehen.
Wir haben also die Multiplikationsoperation parallelisiert, aber nicht auf der Ebene des Threads, sondern auf der Ebene einer konkreten Operation mit Vektorberechnungen.
Nein, es gibt keine automatische Vektorisierung. Im Code deklarieren wir zunächst 2 Vektorvariablen
Dann schreiben wir einen Teil der Daten aus den eingehenden Puffern in die Vektorvariablen.
Und wenn man dann Operationen mit Vektorvariablen durchführt, bedeutet das, dass man Vektoroperationen durchführt. Die im Code verwendete Punktfunktion ist nur für Vektoroperationen gedacht.
Wir haben also die Multiplikationsoperation parallelisiert, aber nicht auf der Ebene des Threads, sondern auf der Ebene einer konkreten Operation mit Vektorberechnungen.
D.h. eine spezielle Funktion dot() ist für die Vektorisierung zuständig? Kann diese Vektorisierung in MQL5 ohne OpenCL durchgeführt werden?
D.h. eine spezielle Funktion dot() ist für die Vektorisierung zuständig? Kann diese Vektorisierung in MQL5 ohne OpenCL durchgeführt werden?
dot führt nur das Skalarprodukt aus. Es gibt andere Funktionen, um andere Operationen durchzuführen.
Es gibt keine Vektorvariablen in MQL.
dot führt nur das Skalarprodukt aus. Es gibt andere Funktionen, um andere Operationen durchzuführen.
Es gibt keine Vektorvariablen in MQL.
Verstanden, danke für die Klarstellung.
Trotz der extremen Notwendigkeit des Artikels und des Dankes an den Autor für den Artikel fasse ich dennoch zusammen, was in ihm wirklich fehlt:
1. Der Code des Hauptprogramms mql wird nicht berücksichtigt, das Handelsprinzip selbst ist nicht klar
2. Es ist nicht klar, wo die Kernel aufgerufen werden.
3. Der Code enthält Verweise auf Bibliotheken von Drittanbietern, die in dem Artikel nicht beschrieben sind, es ist nicht klar
4. Kernel werden im Artikel selbst nicht berücksichtigt und erklärt, deshalb haben sie eine so hitzige Diskussion im Forum ausgelöst.
5. Der Kernel selbst ist für die meisten Benutzer, die keine Erfahrung mit OpenCL haben, sehr schwierig geschrieben.
6. Die Methode zum Training des neuronalen Netzwerks ist überhaupt nicht klar.
Diese 6 Punkte machen den Artikel für die absolute Mehrheit praktisch nutzlos.
Ich werde meine Meinung beibehalten:
1. Sie müssen den mql-Code eines sehr einfachen Expert Advisors erstellen, der mit einem einfachen Indikator handelt, seine Version auf mql mit einer Beschreibung des Codes und der OpenCL-Version schreiben und die Geschwindigkeit vergleichen, idealerweise nehmen Sie ein fertiges Beispiel wie Moving Average.mq5.
2. Die Funktionsaufrufe aus allen Drittanbieter-Bibliotheken sollten beschrieben werden.
3. Beschreiben Sie den Kernel im Detail, Zeile für Zeile, beschreiben Sie mehrere Varianten des Kernels und vergleichen Sie die Leistung.
4. Beschreiben Sie detailliert die Methodik des Trainings neuronaler Netze.
Nun, so ist es ....
Was ist die NeuroNet.mqh-Datei im Archiv?
Ich habe die NeuroNet.mqh-Datei ein wenig bereinigt. Und für die Kompatibilität mit EAs von früheren Artikeln, habe ich die alte Version in einer Kopie gespeichert.