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

Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Distração: as pessoas não entendem por que o Windows 11 exige processadores modernos. Elas se distraem com a discussão sobre o TPM.
Na verdade, os técnicos da Microsoft sonham em se livrar da compilação do kernel/aplicativos do sistema operacional em um balde enferrujado e mudar para AVX, pelo menos. Dessa forma, será possível aumentar a velocidade e os recursos.
Mas eles ainda não mudaram, pois têm medo de incompatibilidades e estão protelando o processo.
Acabei de perder a informação de que o Terminal AVX2 será lançado mais tarde.
Em breve, lançaremos a terceira versão do terminal, desenvolvida com o AVX2 e o FMA3.
Distração: as pessoas não entendem por que o Windows 11 exige processadores modernos. Elas são desviadas pela discussão sobre o TPM.
Na verdade, os técnicos da Microsoft sonham em se livrar da compilação do kernel/aplicativos do sistema operacional em um balde enferrujado e mudar para AVX, pelo menos. Dessa forma, será possível aumentar a velocidade e os recursos.
Mas eles não mudaram para o AVX, têm medo de incompatibilidades e estão se arrastando.
Acho que todos aqui estão muito mais preocupados com a velocidade de execução do EX5 e com a integridade do terminal com um testador.
Acho que todos aqui estão muito mais preocupados com a velocidade do EX5 e com a destruição do terminal com o testador.
O nível de otimização do Windows é a raiz do desempenho de todos os programas executados no Windows.
Porque todos os programas usam maciçamente a API do Windows, que não faz ideia do AVX/AVX2 etc. Mas, em alguns pontos, o sistema operacional poderia produzir resultados muito mais rápidos.
Para não ser infundado, eu mesmo construí o driver oficial de código aberto Intel IAVF para as versões mais recentes de NICs muito modernas no Ubuntu 22.04:
....
/tmp/iavf-4.9.1/src/.iavf.mod.o.cmd
cmd_/tmp/iavf-4.9.1/src/iavf.mod.o := gcc -Wp,-MMD,/tmp/iavf-4.9.1/src/.iavf.mod.o.d -nostdinc
-isystem /usr/lib/gcc/x86_64-linux-gnu/11/include -I./arch/x86/include -I./arch/x86/include/generated -I./include -I./arch/x86/include/uapi
-I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/compiler-version.h -include ./include/linux/kconfig.h
-I./ubuntu/include -include ./include/linux/compiler_types.h
-D__KERNEL__
-fmacro-prefix-map=./= -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE
-Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security
-std=gnu89 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387
-mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone
-mcmodel=kernel -DCONFIG_X86_X32_ABI
-Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -mindirect-branch-cs-prefix
-mfunction-return=thunk-extern -fno-jump-tables -mharden-sls=all -fno-delete-null-pointer-checks
-Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member
-O2 -fno-allow-store-data-races -Wframe-larger-than=1024 -fstack-protector-strong -Wimplicit-fallthrough=5 -Wno-main -Wno-unused-but-set-variable
-Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-stack-clash-protection -g -gdwarf-5 -pg
-mrecord-mcount -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-zero-length-bounds
-Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -Wno-alloc-size-larger-than -fno-strict-overflow -fno-stack-check
-fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wno-packed-not-aligned -I/tmp/iavf-4.9.1/src
-fsanitize=bounds -fsanitize=shift -fsanitize=bool -fsanitize=enum -DMODULE -DKBUILD_BASENAME='"iavf.mod"' -DKBUILD_MODNAME='"iavf"' -D__KBUILD_MODNAME=kmod_iavf
-c -o /tmp/iavf-4.9.1/src/iavf.mod.o /tmp/iavf-4.9.1/src/iavf.mod.c
Explicitamente desativado: sse, sse2, mmx, 3d now, AVX
O Address Sanitizer está ativado, o que torna todo o código mais lento. Pelo menos a otimização O2 está ativada.
Como posso esperar que as placas de rede Intel x710/810 funcionem de forma eficiente e com latência mínima? Todo o sistema operacional exige que o kernel e os drivers sejam criados, no mínimo.
Não deve ser infundado
Compartilhe um link para um recurso no qual eles compartilham números de desempenho comparativo antes e depois da recompilação do software, incluindo o sistema operacional.
Terei que compilar os EAs no mesmo servidor em que os executo, por precaução. Ou o AVX estará no sistema errado em meu laptop)
E com servidores methaquot isso pode se tornar bastante divertido).
Terei que compilar os EAs no mesmo servidor em que os executo, por precaução. Ou o AVX acabará no sistema errado em meu laptop de trabalho)
E com servidores methaquot isso pode se tornar bastante divertido).
Em nossa rede VPS, todos os servidores têm pelo menos o AVX. A maioria deles tem AVX2.
Compartilhe um link para um recurso no qual eles compartilham números de desempenho comparativo antes e depois da recompilação do software, incluindo o sistema operacional.
Tudo está no Google.
Os testes sintéticos não são muito reveladores, especialmente dos fabricantes de hardware. Para chegar a uma conclusão, você precisa verificar vários benchmarks, não acreditar em um único sugerido.
É preciso testar tudo por conta própria em seus próprios programas, entendendo seu próprio caso. A matemática pesada de float/duplo é bem acelerada. E o compilador deve estar correto - somente o Clang.
Na versão beta 3905 atual, disponível no MetaQuotes-Demo, ampliamos as informações para MQL5:
Você pode reconhecer rapidamente os recursos do processador no qual o terminal está sendo executado.
Usando a macro de cadeia de caracteres __CPU_ARCHITECTURE__, você pode descobrir e verificar para qual conjunto de comandos o arquivo EX5 foi criado.
Quando o carregamento falha, ele escreve: