Compilación de programas MQL5 con juego de instrucciones AVX / AVX2 + FMA3 / AVX512 + FMA3 a partir de la compilación 3902 - página 3

Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Distraídos: la gente no entiende por qué Windows 11 requiere procesadores modernos. Se distraen con la discusión sobre el TPM.
De hecho, los técnicos de Microsoft sueñan con deshacerse de la compilación del núcleo/aplicaciones del sistema operativo bajo un cubo oxidado y pasar al menos a AVX. Así será posible mejorar la velocidad y las capacidades.
Pero no han cambiado _todavía_, tienen miedo de las incompatibilidades y lo están alargando.
Acabo de perderme la información de que el Terminal AVX2 será lanzado más adelante.
Pronto lanzaremos la tercera versión del terminal, construida usando AVX2 y FMA3.
Distraídos: la gente no entiende por qué Windows 11 requiere procesadores modernos. Se distraen con la discusión sobre el TPM.
De hecho, los técnicos de Microsoft sueñan con deshacerse de la compilación del núcleo/aplicaciones del sistema operativo bajo un cubo oxidado y pasar al menos a AVX. Así será posible mejorar la velocidad y las capacidades.
Pero no han cambiado a AVX, tienen miedo de las incompatibilidades y están dando largas.
Creo que aquí todo el mundo está mucho más preocupado por la velocidad de ejecución de EX5 y las tripas del terminal con un tester.
Creo que aquí todo el mundo está mucho más preocupado por la velocidad de EX5 y por destripar el terminal con el tester.
El nivel de optimización de Windows es la raíz del rendimiento de todos los programas que se ejecutan en Windows.
Porque todos los programas usan masivamente la API de Windows, que no tiene ni idea de AVX/AVX2 etc. Pero en algunos puntos el sistema operativo podría producir resultados mucho más rápidos.
Para no ser insustancial - yo mismo construyo el driver opensource oficial Intel IAVF para las últimas versiones de NICs muy modernas en 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
Explícitamente desactivado: sse, sse2, mmx, 3d now, AVX
Address Sanitizer está habilitado, lo que ralentiza todo el código. Al menos la optimización O2 está habilitada.
¿Cómo puedo esperar que las NIC Intel x710/810 funcionen eficientemente y con una latencia mínima? Todo el sistema operativo requiere que el kernel y los controladores estén construidos como mínimo.
No ser infundado
Comparte un enlace a un recurso donde compartan cifras de rendimiento comparativo antes y después de recompilar el software, incluido el sistema operativo.
Tendré que compilar los EAs en el mismo servidor donde los ejecuto, por si acaso. O AVX resultará estar en el sistema equivocado en mi portátil)
Y con servidores methaquot puede llegar a ser bastante divertido).
Tendré que compilar los EA en el mismo servidor donde los ejecuto, por si acaso. O AVX terminará en el sistema equivocado en mi portátil del trabajo).
Y con servidores methaquot puede llegar a ser bastante divertido).
En nuestra red VPS todos los servidores con AVX por lo menos. La mayoría de ellos tienen AVX2.
Comparte un enlace a un recurso donde se compartan cifras de rendimiento comparativo antes y después de recompilar el software, incluido el sistema operativo.
Todo está en google.
Las pruebas sintéticas no son muy reveladoras, especialmente las de los fabricantes de hardware. Para sacar una conclusión, necesitas comprobar muchos benchmarks, no creer en uno sugerido.
Tienes que probarlo todo tú mismo con tus propios programas y conociendo tu caso. Las matemáticas pesadas con flotadores/dobles están bien aceleradas. Y el compilador debería ser correcto - sólo Clang.
En la actual beta 3905, disponible en MetaQuotes-Demo, hemos ampliado la información para MQL5:
Se puede reconocer sobre la marcha las capacidades del procesador en el que se está ejecutando el terminal.
Usando la macro de cadena __CPU_ARCHITECTURE__ puedes averiguar y comprobar para qué conjunto de comandos está construido el archivo EX5.
Cuando la carga falla, escribe: