Compilation des programmes MQL5 avec le jeu d'instructions AVX / AVX2 + FMA3 / AVX512 + FMA3 à partir du build 3902 - page 3
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Distraction : les gens ne comprennent pas pourquoi Windows 11 nécessite des processeurs modernes. Ils se laissent distraire par la discussion sur les MTP.
En fait, les techniciens de Microsoft rêvent de se débarrasser de la compilation du noyau du système d'exploitation et des applications sous un seau rouillé et de passer au moins à AVX. De cette manière, il sera possible d'améliorer la vitesse et les capacités.
Mais ils ne sont pas encore passés à l'AVX, ils ont peur des incompatibilités et font traîner les choses.
Je viens de manquer l'information selon laquelle le terminal AVX2 sera publié plus tard.
Nous publierons bientôt la troisième version du terminal, construite en utilisant AVX2 et FMA3.
Distraction : les gens ne comprennent pas pourquoi Windows 11 nécessite des processeurs modernes. Ils se laissent distraire par la discussion sur les MTP.
En fait, les techniciens de Microsoft rêvent de se débarrasser de la compilation du noyau du système d'exploitation et des applications sous un seau rouillé et de passer au moins à AVX. De cette manière, il sera possible d'améliorer la vitesse et les capacités.
Mais ils ne sont pas passés à AVX, ils ont peur des incompatibilités et traînent en longueur.
Je pense que tout le monde ici est bien plus préoccupé par la vitesse d'exécution d'EX5 et les tripes du terminal avec un testeur.
Je pense que tout le monde ici est beaucoup plus préoccupé par la vitesse de l'EX5 et par le fait de vider le terminal avec le testeur.
Le niveau d'optimisation de Windows est à l'origine des performances de tous les programmes fonctionnant sous Windows.
Parce que tous les programmes utilisent massivement l'API de Windows, qui n'a aucune idée d'AVX/AVX2, etc. Mais à certains endroits, le système d'exploitation pourrait produire des résultats beaucoup plus rapides.
Je construis moi-même le pilote opensource officiel Intel IAVF pour les dernières versions de cartes réseau très modernes sur 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
Explicitement désactivés : sse, sse2, mmx, 3d now, AVX
L'Address Sanitizer est activé, ce qui ralentit l'ensemble du code. Au moins, l'optimisation O2 est activée.
Comment puis-je espérer que les cartes réseau Intel x710/810 fonctionnent efficacement et avec une latence minimale ? L'ensemble du système d'exploitation nécessite que le noyau et les pilotes soient construits au minimum.
Ne pas être sans fondement
Partagez un lien vers une ressource qui donne des chiffres sur les performances comparées avant et après la recompilation des logiciels, y compris le système d'exploitation.
Je vais devoir compiler les EA sur le même serveur que celui où je les exécute, juste au cas où. Ou bien AVX s'avérera être sur le mauvais système de mon ordinateur portable)
Et avec les serveurs métaquot, cela peut devenir assez amusant).
Je vais devoir compiler les EA sur le même serveur que celui où je les exécute, juste au cas où. Sinon, AVX se retrouvera sur le mauvais système de mon ordinateur portable professionnel.)
Et avec les serveurs métaquot, cela peut devenir assez amusant).
Dans notre réseau VPS, tous les serveurs ont au moins AVX. La plupart d'entre eux ont AVX2.
Partagez un lien vers une ressource où l'on peut trouver des chiffres sur les performances comparées avant et après la recompilation d'un logiciel, y compris le système d'exploitation.
Tout est sur Google.
Les tests synthétiques ne sont pas très révélateurs, surtout de la part des fabricants de matériel. Pour tirer une conclusion, vous devez vérifier un grand nombre de tests de référence, et non pas vous fier à un seul test suggéré.
Vous devez tout tester vous-même sur vos propres programmes en comprenant votre propre cas. Les mathématiques lourdes en flottant/double sont bien accélérées. Et le compilateur devrait être correct - seulement Clang.
Dans la version actuelle beta 3905, disponible sur MetaQuotes-Demo, nous avons étendu les informations pour MQL5 :
Vous pouvez reconnaître à la volée les capacités du processeur sur lequel le terminal est exécuté.
En utilisant la macro de chaîne __CPU_ARCHITECTURE__, vous pouvez découvrir et vérifier pour quel ensemble de commandes le fichier EX5 est construit.
Lorsque le chargement échoue, il écrit :