Компиляция MQL5 программ с набором инструкций AVX / AVX2 + FMA3 / AVX512 + FMA3 с 3902 билда - страница 3
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Отвлеченно: люди не понимают, почему Windows 11 требует современные процессоры. Их в сторону уводит обсуждение TPM.
А на самом деле технари в Microsoft мечтают избавиться от компиляции ядра/приложений операционки под ржавое ведро и перейти базово хотя бы на AVX. Так и скорость и возможности подтянуть можно будет.
Но не перешли _еще_, боятся несовместимостей и тянут.
я просто пропустил информацию что AVX2 Терминал позже выйдет
Скоро выпустим третью подверсию терминала, собранную с применением AVX2 и FMA3.
Отвлеченно: люди не понимают, почему Windows 11 требует современные процессоры. Их в сторону уводит обсуждение TPM.
А на самом деле технари в Microsoft мечтают избавиться от компиляции ядра/приложений операционки под ржавое ведро и перейти базово хотя бы на AVX. Так и скорость и возможности подтянуть можно будет.
Но не перешли, боятся несовместимостей и тянут.
Думаю, здесь всех значительно сильнее волнует скорость выполнения EX5 и потрохов терминала с тестером.
Думаю, здесь всех значительно сильнее волнует скорость выполнения EX5 и потрохов терминала с тестером.
Уровень оптимизации Windows лежит в корне производительности всех программ, запускаемых в Windows.
Потому, что все программы массово используют Windows API, которое понятия не имеет об AVX/AVX2 и тд. А ведь в некоторых местах операционка могла бы кратно быстрее выдавать результат.
Чтобы не быть голословным - сам собираю официальный опенсорсный драйвер Intel IAVF под последние версии совсем современных сетевых карт на 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
Явно отключены: sse, sse2, mmx, 3d now, AVX
Включен Address Sanitizer, который здорово тормозит весь код. Ладно, хоть O2 оптимизация включена.
Вот как после этого надеяться, что сетевые карты Intel x710/810 работают эффективно и с минимальной задержкой? Вся операционка требует, чтобы ядро и драйверы были собраны на минималках.
Чтобы не быть голословным
Поделитесь ссылкой на ресурс, где делятся цифрами сравнительной производительности до и после перекомпиляции софта, включая операционку.
Придётся теперь, на всякий случай, компилировать советники на том же сервере, где и запускать их. А не то, окажется AVX на рабочем ноуте не той системы)
А с метаквотовскими серверами может стать совсем весело)
Придётся теперь, на всякий случай, компилировать советники на том же сервере, где и запускать их. А не то, окажется AVX на рабочем ноуте не той системы)
А с метаквотовскими серверами может стать совсем весело)
В нашей VPS сети все серверы с AVX как минимум. На большинстве AVX2.
Поделитесь ссылкой на ресурс, где делятся цифрами сравнительной производительности до и после перекомпиляции софта, включая операционку.
Все в гугле есть.
Синтетические тесты не очень показательны, особенно от производителей железа. Чтобы сделать вывод, необходимо множество бенчмарков проверить, а не поверить в один предложенный.
Нужно все самому тестировать на своих собственных программах с пониманием своего случая. Тяжелая математика float/double хорошо ускоряется. И компилятор должен быть правильный - только Clang.
В текущей бете 3905, доступной на MetaQuotes-Demo, мы расширили информацию для MQL5:
Можно на лету узнавать возможности процессора, на котором запущен терминал.
С помощью строкового макроса __CPU_ARCHITECTURE__ можно узнавать и проверять под какой набор команд собран EX5 файл.
При неудаче загрузки пишется: