Compilazione di programmi MQL5 con set di istruzioni AVX / AVX2 + FMA3 / AVX512 + FMA3 dalla build 3902 - pagina 3
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Distrazione: le persone non capiscono perché Windows 11 richiede processori moderni. Si lasciano distrarre dalla discussione sul TPM.
In realtà, i tecnici Microsoft sognano di sbarazzarsi della compilazione del kernel del sistema operativo/applicazioni sotto un secchio arrugginito e di passare almeno ad AVX. In questo modo sarà possibile migliorare la velocità e le funzionalità.
Ma non sono ancora passati ad AVX, hanno paura delle incompatibilità e la tirano per le lunghe.
Mi è sfuggita l'informazione che il terminale AVX2 sarà rilasciato più tardi.
Rilasceremo presto la terza versione del terminale, realizzata con AVX2 e FMA3.
Distrazione: le persone non capiscono perché Windows 11 richiede processori moderni. Vengono distratti dalla discussione sul TPM.
In realtà, i tecnici Microsoft sognano di sbarazzarsi della compilazione del kernel del sistema operativo/applicazioni sotto un secchio arrugginito e di passare almeno ad AVX. In questo modo sarà possibile migliorare la velocità e le funzionalità.
Ma non sono passati ad AVX, hanno paura delle incompatibilità e la tirano per le lunghe.
Penso che tutti qui siano molto più preoccupati della velocità di esecuzione di EX5 e del terminale con un tester.
Penso che tutti qui siano molto più preoccupati della velocità di EX5 e di sventrare il terminale con il tester.
Il livello di ottimizzazione di Windows è alla base delle prestazioni di tutti i programmi che girano in Windows.
Perché tutti i programmi usano massicciamente le API di Windows, che non hanno idea di AVX/AVX2 ecc. Ma in alcuni punti il sistema operativo potrebbe produrre risultati molto più veloci.
Per non essere smentito - io stesso costruisco il driver ufficiale Intel IAVF opensource per le ultime versioni di NIC molto moderne su 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
Esplicitamente disabilitati: sse, sse2, mmx, 3d now, AVX
L'Address Sanitizer è abilitato, il che rallenta l'intero codice. Almeno l'ottimizzazione O2 è abilitata.
Come posso sperare che le NIC Intel x710/810 funzionino in modo efficiente e con una latenza minima? L'intero sistema operativo richiede che il kernel e i driver siano costruiti al minimo.
Non essere infondato
Condividete un link a una risorsa in cui sono riportati i dati comparativi delle prestazioni prima e dopo la ricompilazione del software, compreso il sistema operativo.
Dovrò compilare gli EA sullo stesso server dove li eseguo, per sicurezza. Oppure AVX si rivelerà essere sul sistema sbagliato del mio portatile).
E con i server methaquot può diventare molto divertente).
Dovrò compilare gli EA sullo stesso server dove li eseguo, per sicurezza. Oppure AVX finirà sul sistema sbagliato del mio portatile di lavoro).
E con i server methaquot può diventare molto divertente).
Nella nostra rete VPS tutti i server hanno almeno AVX. La maggior parte di essi ha AVX2.
Condividete un link a una risorsa in cui sono riportati i dati comparativi delle prestazioni prima e dopo la ricompilazione del software, compreso il sistema operativo.
Tutto si trova su Google.
I test sintetici non sono molto rivelatori, soprattutto quelli dei produttori di hardware. Per trarre una conclusione, è necessario controllare molti benchmark, non credere a uno solo di quelli suggeriti.
È necessario testare tutto da soli con i propri programmi e con la comprensione del proprio caso. I calcoli pesanti a virgola mobile/doppia sono ben accelerati. E il compilatore dovrebbe essere corretto - solo Clang.
Nell'attuale beta 3905, disponibile su MetaQuotes-Demo, abbiamo esteso le informazioni per MQL5:
È possibile riconoscere al volo le capacità del processore su cui è in esecuzione il terminale.
Utilizzando la macro stringa __CPU_ARCHITECTURE__ è possibile scoprire e verificare per quale serie di comandi è stato costruito il file EX5.
Quando il caricamento fallisce, scrive: