Kompilierung von MQL5-Programmen mit AVX / AVX2 + FMA3 / AVX512 + FMA3 Befehlssatz ab Build 3902 - Seite 6

 

Terminal:

Editor:


Beim Starten im Terminalprotokoll:

2023.09.06 10:53:15.635 Terminal        MetaTrader 5 x64 build 3915 started for MetaQuotes Software Corp.
2023.09.06 10:53:15.635 Terminal        Windows 10 build 19045, 4 x Intel Core i3-7100  @ 3.90 GHz, AVX2, 10 / 15 Gb memory, 205 / 476 Gb disk, UAC, GMT+7


In den Editor-Einstellungen:


Und beim Kompilieren im Protokoll:

0 errors, 0 warnings, 14 msec elapsed, cpu='X64 Regular'                1       1

Warum? Prozessor mit AVX2, in den Kompiliereinstellungen ist AVX2+FMA3 ausgewählt, aber kompiliert in X64 Regular.... warum?

 
Dmitry Fedoseev #:

Warum sollte es nicht möglich sein, mehrere Kompilieroptionen in eine Kompilierdatei mit Priorität zu packen.... Es muss eine Zukunft für eine solche Variante geben. Aber im Moment ist es nur ein Spielzeug.

Sie brauchen das nicht. X64 funktioniert und das ist gut so. Warum muss ich alle vier Varianten prüfen, um zu sehen, ob sie funktionieren? Ich erinnere mich noch an Zeiten, in denen MQL x32 und x64 unterschiedliche Ergebnisse lieferten

 
Artyom Trishkin #:

Und beim Kompilieren im Protokoll:

Warum? Prozessor mit AVX2, in den Kompilierungseinstellungen ist AVX2+FMA3 ausgewählt, aber es kompiliert in X64 Regular... Warum eigentlich?

Höchstwahrscheinlich kompilieren Sie ein Projekt und nicht eine einzelne Datei.

Projekte haben ihre eigenen persönlichen Kompiliermodus-Einstellungen.

 
Renat Fatkhullin #:

Der klare Schritt zu spezialisierten Versionen von Terminals für moderne Prozessoren ist ein großer und richtiger Schritt. Wir konzentrieren uns ernsthaft darauf, die Leistung der gesamten Plattform zu verbessern, und jetzt können wir neue Optimierungsmethoden direkt umsetzen, ohne Krücken zu bauen.

Es ist nicht klar, wie man frühere Versionen von Terminals jetzt beibehalten kann.

Zum Beispiel wurde auf dem AVX2-Home-Rechner ein kritischer Fehler im Release-Terminal b3521 gefunden. Ich hatte Backups von früheren Versionen auf meinem Heimcomputer für den Fall eines vorübergehenden Rollbacks, bis der Fehler behoben war.

Und jetzt auf DDS (AVX2 unterstützt es nicht), wo Kampfterminals laufen und Release b3521 installiert ist, muss ich dringend ein Rollback durchführen. AVX2-exe-Dateien vom Heimrechner funktionieren nicht. Wie mache ich ein Rollback?

 

Anzeige und Auswahl des Kompilierungsmodus direkt in der Symbolleiste hinzugefügt:


 
fxsaber #:

Wie kann man das rückgängig machen?!

Bitte erstellen Sie einen Mechanismus, der automatisch ein Backup der aktuellen exe-Dateien erstellt, wenn LiveUpdate startet.

 
Renat Fatkhullin #:

Bei der Verteilung von Software, auch auf dem Markt, müssen Sie die x64-Variante erstellen.

Und für Cloud-Agenten?
 
Renat Fatkhullin #:

Sie kompilieren höchstwahrscheinlich ein Projekt, nicht eine einzelne Datei.

Projekte haben ihre eigenen persönlichen Kompiliermodus-Einstellungen.

Nein, eine einzelne .mqh-Datei

UPD: Beim Kompilieren von Klassen in der .mqh-Datei wird X64 Regular verwendet, aber beim Kompilieren von .mq5, an das die Datei mit den Klassen angehängt ist, ist alles in Ordnung:

0 errors, 0 warnings, 3318 msec elapsed, cpu='AVX2 + FMA3'              1       1
 
fxsaber #:
Und für Cloud-Agenten?

In MQL5 Cloud Network wird die Obergrenze für EX5 auf AVX2 liegen und die Aufgaben werden automatisch an Agenten mit dem erforderlichen CPU-Set verteilt.

Das heißt, alles wird in ein paar Tagen transparent funktionieren. Morgen veröffentlichen wir eine offene Betaversion für Makler, und in einer Woche werden wir ein Release haben.

 
Renat Fatkhullin #:

In MQL5 Cloud Network liegt die Obergrenze für EX5 bei AVX2 und die Aufgaben werden automatisch an Agenten mit dem erforderlichen CPU-Set verteilt.

Das heißt, alles wird in ein paar Tagen transparent funktionieren. Morgen veröffentlichen wir die offene Beta für Makler, und in einer Woche werden wir die Freigabe haben.

Werden Agenten ohne AVX2 weniger Aufträge erhalten? Wenn sie auf AVX512 kompiliert sind - können sie die Cloud nicht nutzen?