Compilação de programas MQL5 com conjunto de instruções AVX / AVX2 + FMA3 / AVX512 + FMA3 do build 3902 - página 6

 

Terminal:

Editor:


Na inicialização, no registro do terminal:

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


Nas configurações do editor:


E na compilação, no registro:

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

Por quê? Processador com AVX2, nas configurações de compilação, AVX2+FMA3 está selecionado, mas compila em X64 Regular.... Por quê?

 
Dmitry Fedoseev #:

Por que não fazer com que várias opções de compilação sejam agrupadas em um único arquivo compilado com priority.... Deve haver um futuro para essa variante. Mas, por enquanto, é apenas um brinquedo.

Você não precisa disso. O X64 funciona e está tudo bem. Por que eu preciso verificar todas as quatro variantes para ver se elas funcionam? Ainda me lembro de momentos em que o MQL x32 e x64 apresentavam resultados diferentes

 
Artyom Trishkin #:

E ao compilar no registro:

Por quê? Processador com AVX2, nas configurações de compilação AVX2+FMA3 está selecionado, mas ele compila em X64 Regular... Por quê?

Provavelmente, você está compilando um projeto e não um único arquivo.

Os projetos têm suas próprias configurações pessoais de modo de compilação.

 
Renat Fatkhullin #:

A mudança clara para versões especializadas de terminais para processadores modernos é um passo grande e correto. Estamos seriamente concentrados em aprimorar o desempenho de toda a plataforma e agora estamos livres para implementar diretamente novos métodos de otimização sem a necessidade de construir muletas.

Não está claro como manter as versões anteriores dos terminais agora.

Por exemplo, na máquina AVX2-home, foi encontrado um bug crítico no terminal de lançamento b3521. Eu tinha backups de versões anteriores em meu computador doméstico para o caso de uma reversão temporária até que o bug fosse corrigido.

E agora no DDS (o AVX2 não é compatível com ele), onde os terminais de combate estão em execução e a versão b3521 está instalada, preciso fazer a reversão com urgência. Os arquivos AVX2-exe da máquina doméstica não funcionarão. Como fazer a reversão?

 

Adição da exibição e seleção do modo de compilação diretamente na barra de ferramentas:


 
fxsaber #:

Como você reverte?

Crie algum mecanismo que faça backup automático dos arquivos exe atuais quando o LiveUpdate for iniciado.

 
Renat Fatkhullin #:

Ao distribuir software, inclusive no mercado, você precisa criar a variante x64.

E para agentes de nuvem?
 
Renat Fatkhullin #:

Provavelmente, você está compilando um projeto, não um único arquivo.

Os projetos têm suas próprias configurações pessoais de modo de compilação.

Não, um único arquivo .mqh

UPD. Ao compilar as classes no arquivo .mqh, sim, o X64 Regular é usado, mas ao compilar o .mq5 ao qual o arquivo com as classes está anexado, tudo fica bem:

0 errors, 0 warnings, 3318 msec elapsed, cpu='AVX2 + FMA3'              1       1
 
fxsaber #:
E para os agentes de nuvem?

Na MQL5 Cloud Network, o limite superior do EX5 estará no AVX2 e as tarefas serão distribuídas automaticamente aos agentes com o conjunto de CPU necessário.

Ou seja, tudo funcionará de forma transparente em alguns dias. Amanhã estaremos lançando uma versão beta aberta para corretores e, em uma semana, teremos um lançamento.

 
Renat Fatkhullin #:

Na MQL5 Cloud Network, o limite superior do EX5 estará no AVX2 e as tarefas serão distribuídas automaticamente aos agentes com o conjunto de CPU necessário.

Ou seja, tudo funcionará de forma transparente em alguns dias. Amanhã estaremos lançando a versão beta aberta para corretores e, em uma semana, teremos o lançamento.

Os agentes sem AVX2 receberão menos atribuições? Se compilado no AVX512, não é possível usar a nuvem?

Razão: