Compilazione di programmi MQL5 con set di istruzioni AVX / AVX2 + FMA3 / AVX512 + FMA3 dalla build 3902 - pagina 6

 

Terminale:

Editor:


All'avvio nel registro del terminale:

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


Nelle impostazioni dell'editor:


E al momento della compilazione nel log:

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

Perché? Processore con AVX2, nelle impostazioni di compilazione è selezionato AVX2+FMA3, ma compila in X64 Regular.... Perché?

 
Dmitry Fedoseev #:

Perché non fare in modo che diverse opzioni di compilazione siano racchiuse in un unico file compilato con priorità.... Ci deve essere un futuro per questa variante. Ma per ora è solo un giocattolo.

Non ne avete bisogno. X64 funziona e va bene. Perché devo controllare tutte e quattro le varianti per vedere se funzionano? Ricordo ancora i tempi in cui MQL x32 e x64 davano risultati diversi.

 
Artyom Trishkin #:

E durante la compilazione nel log:

Perché? Processore con AVX2, nelle impostazioni di compilazione è selezionato AVX2+FMA3, ma compila in X64 Regular... Perché?

Molto probabilmente si sta compilando un progetto e non un singolo file.

I progetti hanno le loro impostazioni personali di modalità di compilazione.

 
Renat Fatkhullin #:

Il chiaro passaggio a versioni specializzate dei terminali per i processori moderni è un passo importante e corretto. Siamo seriamente concentrati sul miglioramento delle prestazioni dell'intera piattaforma e ora siamo liberi di implementare direttamente nuovi metodi di ottimizzazione senza costruire stampelle.

Non è chiaro come mantenere le versioni precedenti dei terminali.

Ad esempio, sulla macchina AVX2-home è stato riscontrato un bug critico nella versione b3521 del terminale. Avevo dei backup delle versioni precedenti sulla mia macchina domestica, in caso di rollback temporaneo fino a quando il bug non fosse stato risolto.

E ora su DDS (AVX2 non lo supporta), dove sono in esecuzione i terminali di combattimento ed è installata la release b3521, ho bisogno di eseguire urgentemente un rollback. I file AVX2-exe dalla macchina di casa non funzionano. Come fare il rollback!

 

Aggiunta la visualizzazione e la selezione della modalità di compilazione nella barra degli strumenti:


 
fxsaber #:

Come si fa a tornare indietro?

Creare un meccanismo che consenta di eseguire automaticamente il backup dei file exe correnti all'avvio di LiveUpdate.

 
Renat Fatkhullin #:

Quando si distribuisce il software, compreso il mercato, è necessario creare la variante x64.

E per gli agenti cloud?
 
Renat Fatkhullin #:

Molto probabilmente state compilando un progetto, non un singolo file.

I progetti hanno le loro impostazioni personali di modalità di compilazione.

No, un singolo file .mqh

UPD. Quando si compilano le classi nel file .mqh, sì, viene usato X64 Regular, ma quando si compila .mq5 a cui è allegato il file con le classi, tutto va bene:

0 errors, 0 warnings, 3318 msec elapsed, cpu='AVX2 + FMA3'              1       1
 
fxsaber #:
E per gli agenti cloud?

In MQL5 Cloud Network, il limite superiore per EX5 sarà su AVX2 e i compiti saranno distribuiti automaticamente agli agenti con il set di CPU richiesto.

In altre parole, tutto funzionerà in modo trasparente in un paio di giorni. Domani rilasceremo una beta aperta per i broker e tra una settimana avremo il rilascio.

 
Renat Fatkhullin #:

In MQL5 Cloud Network, il limite superiore per EX5 sarà su AVX2 e i compiti saranno distribuiti automaticamente agli agenti con il set di CPU richiesto.

In altre parole, tutto funzionerà in modo trasparente in un paio di giorni. Domani rilasceremo l'open beta per i broker e tra una settimana avremo il rilascio.

Gli agenti senza AVX2 riceveranno meno incarichi? Se compilati su AVX512 - non possono usare il cloud?