Yapı 3902'den itibaren AVX / AVX2 + FMA3 / AVX512 + FMA3 komut seti ile MQL5 programlarının derlenmesi - sayfa 3
![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Dikkat dağınıklığı: İnsanlar Windows 11'in neden modern işlemciler gerektirdiğini anlamıyor. TPM tartışmasıyla dikkatleri dağılıyor.
Aslında Microsoft teknisyenleri, işletim sistemi çekirdeğini/uygulamalarını paslı bir kova altında derlemekten kurtulmayı ve en azından AVX'e geçmeyi hayal ediyor. Bu şekilde hız ve yetenekleri geliştirmek mümkün olacak.
Ama henüz geçmediler, uyumsuzluklardan korkuyorlar ve işi yokuşa sürüyorlar.
AVX2 Terminalinin daha sonra yayınlanacağı bilgisini kaçırmışım.
AVX2 ve FMA3 kullanılarak oluşturulan terminalin üçüncü sürümünü yakında yayınlayacağız.
Dikkat dağınıklığı: İnsanlar Windows 11'in neden modern işlemciler gerektirdiğini anlamıyor. TPM tartışmasıyla dikkatleri dağılıyor.
Aslında Microsoft teknisyenleri, işletim sistemi çekirdeğini/uygulamalarını paslı bir kova altında derlemekten kurtulmayı ve en azından AVX'e geçmeyi hayal ediyor. Bu şekilde hız ve yetenekleri geliştirmek mümkün olacaktır.
Ancak AVX'e geçmediler, uyumsuzluklardan korkuyorlar ve sürüncemede bırakıyorlar.
Bence buradaki herkes EX5 uygulamasının hızı ve bir test cihazı ile terminal bağırsakları hakkında çok daha fazla endişe duyuyor.
Sanırım buradaki herkes EX5'in hızı ve terminalin test cihazı ile boşaltılması konusunda çok daha fazla endişe duyuyor.
Windows optimizasyon seviyesi, Windows'ta çalışan tüm programların performansının temelini oluşturur.
Çünkü tüm programlar AVX/AVX2 vb. hakkında hiçbir fikri olmayan Windows API'sini büyük ölçüde kullanır. Ancak bazı yerlerde işletim sistemi çok daha hızlı sonuçlar üretebilir.
Doğrulanmamış olmamak için - Ubuntu 22.04'te çok modern NIC'lerin en son sürümleri için resmi Intel IAVF açık kaynak sürücüsünü kendim oluşturuyorum:
....
/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
Açıkça devre dışı bırakılmış: sse, sse2, mmx, 3d now, AVX
Adres Temizleyici etkinleştirilmiştir, bu da tüm kodu yavaşlatır. En azından O2 optimizasyonu etkinleştirildi.
Intel x710/810 NIC'lerin verimli ve minimum gecikme ile çalışmasını nasıl umabilirim? Tüm işletim sistemi, çekirdek ve sürücülerin en az düzeyde oluşturulmasını gerektirir.
Asılsız olmamak
İşletim sistemi de dahil olmak üzere yazılımı yeniden derlemeden önce ve sonra karşılaştırmalı performans rakamlarını paylaştıkları bir kaynağın bağlantısını paylaşın.
Her ihtimale karşı EA'ları çalıştırdığım sunucuda derlemem gerekecek. Ya da AVX dizüstü bilgisayarımda yanlış sistemde olduğu ortaya çıkacak)
Ve metaquot sunucularla oldukça eğlenceli hale gelebilir).
Her ihtimale karşı EA'ları çalıştırdığım sunucuda derlemem gerekecek. Ya da AVX iş dizüstü bilgisayarımdaki yanlış sisteme düşecek)
Ve metaquot sunucularla oldukça eğlenceli hale gelebilir).
VPS ağımızda tüm sunucular en azından AVX'e sahip. Çoğunda AVX2 vardır.
İşletim sistemi de dahil olmak üzere yazılımı yeniden derlemeden önce ve sonra karşılaştırmalı performans rakamlarını paylaştıkları bir kaynağın bağlantısını paylaşın.
Her şey google'da.
Sentetik testler, özellikle donanım üreticilerinden çok açıklayıcı değildir. Bir sonuca varmak için, önerilen bir tanesine inanmak yerine çok sayıda kıyaslamayı kontrol etmeniz gerekir.
Her şeyi kendi programlarınızda kendi durumunuzu anlayarak kendiniz test etmeniz gerekir. Float/double ağır matematik iyi hızlandırılmıştır. Ve derleyici doğru olmalıdır - sadece Clang.
MetaQuotes-Demo'da mevcut olan 3905 numaralı güncel beta sürümünde, MQL5 için bilgileri genişlettik:
Terminalin üzerinde çalıştığı işlemcinin yeteneklerini anında tanıyabilirsiniz.
__CPU_ARCHITECTURE__ string makrosunu kullanarak EX5 dosyasının hangi komut seti için oluşturulduğunu öğrenebilir ve kontrol edebilirsiniz.
Yükleme başarısız olduğunda şöyle yazar: