使用第 3902 版的 AVX / AVX2 + FMA3 / AVX512 + FMA3 指令集编译 MQL5 程序 - 页 3 12345678910...12 新评论 Renat Fatkhullin 2023.09.01 15:57 #21 分心:人们不明白 Windows 11 为什么需要现代处理器。他们被 TPM 的讨论牵着鼻子走。 事实上,微软的技术人员梦想着摆脱在生锈的水桶下编译操作系统内核/应用程序,至少改用 AVX。这样就有可能提高速度和功能。 但他们还没有改用 AVX,他们害怕不兼容,所以一直拖着。 lynxntech 2023.09.01 16:01 #22 我刚刚错过了 AVX2 终端稍后发布的信息。 我们即将发布使用 AVX2 和 FMA3 构建的第三版终端。 fxsaber 2023.09.01 16:02 #23 Renat Fatkhullin #:分心:人们不明白 Windows 11 为什么需要现代处理器。他们被 TPM 的讨论牵着鼻子走。事实上,微软的技术人员梦想着摆脱在生锈的水桶下编译操作系统内核/应用程序,至少改用 AVX。这样就有可能提高速度和功能。但他们并没有改用 AVX,而是害怕不兼容,所以一直拖着。 我认为这里的每个人都更关心 EX5 的执行速度和使用测试仪的终端内核。 Renat Fatkhullin 2023.09.01 16:06 #24 fxsaber #:我认为,这里的每个人都更关心 EX5 的速度和使用测试仪对终端进行开膛破肚。 Windows 优化水平是所有在 Windows 中运行的程序性能的根源。 因为所有程序都大量使用 Windows API,而 Windows API 对 AVX/AVX2 等一无所知。但在某些地方,操作系统的运行速度会更快。 Renat Fatkhullin 2023.09.01 16:23 #25 我自己在 Ubuntu 22.04 上为最新版本的现代网卡构建了英特尔 IAVF 官方开源驱动程序: make install..../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 优化。 我怎么能希望英特尔 x710/810 网卡工作效率高、延迟小呢?整个操作系统至少需要内核和驱动程序。 Compilation of MQL5 programmes Machine Learning and Neural Structure of tables: data fxsaber 2023.09.01 17:16 #26 Renat Fatkhullin #:并非没有事实根据 分享一个资源链接,在那里他们分享了重新编译软件(包括操作系统)前后的性能对比数据。 Aleksey Nikolayev 2023.09.01 17:52 #27 为了以防万一,我必须在运行 EA 的同一台服务器上编译 EA。否则 AVX 就会在我笔记本电脑上的错误系统上运行)。 如果有了元配服务器,这将变得非常有趣)。 Renat Fatkhullin 2023.09.01 18:04 #28 Aleksey Nikolayev #:为了以防万一,我必须在运行 EA 的同一台服务器上编译 EA。否则 AVX 就会在我工作的笔记本电脑上出现在错误的系统中)。而且,有了元配服务器,这可能会变得相当有趣)。 在我们的 VPS 网络中,所有服务器至少都有 AVX。其中大部分都有 AVX2。 Renat Fatkhullin 2023.09.01 18:09 #29 fxsaber #:分享一个资源链接,在该链接中,他们分享了重新编译软件(包括操作系统)前后的性能对比数据。 一切都在谷歌上。 合成测试并不能说明问题,尤其是硬件制造商提供的测试。要得出结论,你需要检查很多基准测试,而不是相信一个建议。 您需要在了解自身情况的前提下,在自己的程序上测试一切。浮点运算/运算量大的数学运算可以很好地加速。编译器应该是正确的--只有 Clang。 Renat Fatkhullin 2023.09.01 18:28 #30 在 MetaQuotes-Demo 提供的当前 3905 测试版中,我们扩展了 MQL5 的信息: void OnStart() { Print("CPU name: ",TerminalInfoString(TERMINAL_CPU_NAME)); Print("CPU cores: ",TerminalInfoInteger(TERMINAL_CPU_CORES)); Print("CPU architecture: ",TerminalInfoString(TERMINAL_CPU_ARCHITECTURE)); // новое Print(""); Print("EX5 architecture: ",__CPU_ARCHITECTURE__); // новое } CPU name: 12th Gen Intel Core i9-12900K CPU cores: 24 CPU architecture: AVX2 + FMA3 EX5 architecture: AVX 您可以在运行中识别终端所运行的处理器的能力。 使用字符串宏__CPU_ARCHITECTURE__ 可以找出并检查 EX5 文件是为哪一组命令构建的。 当加载失败时,它会写入 your CPU architecture does not allow to run the file 'test.ex5', AVX512 required, you have AVX2 12345678910...12 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
分心:人们不明白 Windows 11 为什么需要现代处理器。他们被 TPM 的讨论牵着鼻子走。
事实上,微软的技术人员梦想着摆脱在生锈的水桶下编译操作系统内核/应用程序,至少改用 AVX。这样就有可能提高速度和功能。
但他们还没有改用 AVX,他们害怕不兼容,所以一直拖着。
我刚刚错过了 AVX2 终端稍后发布的信息。
我们即将发布使用 AVX2 和 FMA3 构建的第三版终端。
分心:人们不明白 Windows 11 为什么需要现代处理器。他们被 TPM 的讨论牵着鼻子走。
事实上,微软的技术人员梦想着摆脱在生锈的水桶下编译操作系统内核/应用程序,至少改用 AVX。这样就有可能提高速度和功能。
但他们并没有改用 AVX,而是害怕不兼容,所以一直拖着。
我认为这里的每个人都更关心 EX5 的执行速度和使用测试仪的终端内核。
我认为,这里的每个人都更关心 EX5 的速度和使用测试仪对终端进行开膛破肚。
Windows 优化水平是所有在 Windows 中运行的程序性能的根源。
因为所有程序都大量使用 Windows API,而 Windows API 对 AVX/AVX2 等一无所知。但在某些地方,操作系统的运行速度会更快。
我自己在 Ubuntu 22.04 上为最新版本的现代网卡构建了英特尔 IAVF 官方开源驱动程序:
....
/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 优化。
我怎么能希望英特尔 x710/810 网卡工作效率高、延迟小呢?整个操作系统至少需要内核和驱动程序。
并非没有事实根据
分享一个资源链接,在那里他们分享了重新编译软件(包括操作系统)前后的性能对比数据。
为了以防万一,我必须在运行 EA 的同一台服务器上编译 EA。否则 AVX 就会在我笔记本电脑上的错误系统上运行)。
如果有了元配服务器,这将变得非常有趣)。
为了以防万一,我必须在运行 EA 的同一台服务器上编译 EA。否则 AVX 就会在我工作的笔记本电脑上出现在错误的系统中)。
而且,有了元配服务器,这可能会变得相当有趣)。
在我们的 VPS 网络中,所有服务器至少都有 AVX。其中大部分都有 AVX2。
分享一个资源链接,在该链接中,他们分享了重新编译软件(包括操作系统)前后的性能对比数据。
一切都在谷歌上。
合成测试并不能说明问题,尤其是硬件制造商提供的测试。要得出结论,你需要检查很多基准测试,而不是相信一个建议。
您需要在了解自身情况的前提下,在自己的程序上测试一切。浮点运算/运算量大的数学运算可以很好地加速。编译器应该是正确的--只有 Clang。
在 MetaQuotes-Demo 提供的当前 3905 测试版中,我们扩展了 MQL5 的信息:
您可以在运行中识别终端所运行的处理器的能力。
使用字符串宏__CPU_ARCHITECTURE__ 可以找出并检查 EX5 文件是为哪一组命令构建的。
当加载失败时,它会写入