İşte herhangi bir DLL olmadan doğrudan MetaTrader 5 terminalinde OpenCL ile yapabilecekleriniz - sayfa 5
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım 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
Bu arka plana karşı, AMD yalnızca açıkça daha hızlı matematik hesaplamaları (AMD'deki madenci çiftlikleri genellikle toplar) nedeniyle değil, aynı zamanda açık standart stratejileri (çok fazla açtılar ve halka tanıttılar) nedeniyle avantajlı görünüyor. AMD kartlarında OpenCL 2.0'ın piyasaya sürülmesi, bu özelliği CUDA'nın yeteneklerine çok yaklaştırdı ve artık CUDA'ya güvenmenin hiçbir anlamı yok .
Bu faydalı bir bilgi, yoksa yaklaşık 7 yıl önce CUDA ile oynadım, hala geçerli olduğunu düşündüm.
Soru - OpenCL altındaki hata ayıklayıcılar ne olacak? MT5 terminalinden bahsetmiyorum, genel anlamda. Şimdiye kadar yalnızca Intel'den gelen hata ayıklayıcıyı Visual Studio için bir eklenti ve ondan bağımsız bir hata ayıklayıcı (kullanımdan kaldırılmış) olarak gördüm. Ancak, Intel'den gelen işlemciler ve entegre grafikleri için özel olarak keskinleşme var gibi görünüyor. Ve genel olarak, paralel kodun nasıl hata ayıklanacağını anlamıyorum, benim için hala saf bir kara kutu.
CUDA ile yalnızca kendiniz için veya Nvidia kartlarının açıkça bulunmasını gerektirebileceğiniz belirli alanlar için çalışabilirsiniz.
Evet, CUDA eskiden daha fazla özelliğe sahipti. Ancak OpenCL 2.0 ile AMD donanımının piyasaya sürülmesi ve OpenCL 2.1'in yeni bir sürümünün kullanıma sunulmasıyla birlikte, satıcı kilitliliği altında oturmak mantıklı değil. Özellikle bu satıcı aynı zamanda işlevselliği de azaltıyorsa.
Maksimum kapsama açısından, tek bir seçenek var - geleneksel işlemcilerde iyi çalışan OpenCL. Yani, bir GPU'nun koşulsuz varlığını gerektirmek veya GPU ve CPU için kodun iki versiyonunu yazmak gerekli değildir. OpenCL kodu yazıldıktan sonra farklı konfigürasyonlarda çalışacaktır.
CUDA/OpenCL'de yalnızca özel hata ayıklayıcılarda hata ayıklayabilirsiniz. Burada bir mucize olamaz.
örnekte
mevcut bir CPU cihazı olan bir konfigürasyonda "OpenCL bulunamadı" mesajı görüntüleniyor
Ve bu yüzden -
İşler
* soru, cihazın varsayılan seçimidir
O halde tüm bunları hiçbir alıntı olmadan ilahi biçimde elde etmek mümkün müdür? PPC algılama ve yaratma için ne kadar elverişsiz
Ve sinir ağları için, zaten standart sınıflara sahip olmanız gerekir ve opcl) kuyuslab gibi hemen kullanabilirsiniz.
"#define HL2Count " + ( string )hl2NeuronCount + " \r\n"
//------------------------------------------------------------------------------------
"#define NeuronSensitivity " + ( string )NeuronSensitivity_P + " \r\n"
//------------------------------------------------------------------------------------
"#define sampleCount " + ( string )sampleCount + " \r\n"
//------------------------------------------------------------------------------------
"#define signalCount " + ( string )signalCount + " \r\n"
//------------------------------------------------------------------------------------
"#define StrArrSaSize " + ( string )( sizeof (ArrSample) / sizeof ( float )) + "\r\n"
"typedef struct{float C[StrArrSaSize];} ArrSa; \r\n"
//------------------------------------------------------------------------------------
"#define StrArrWeSize " + ( string )( sizeof (ArrWe) / sizeof ( float )) + " \r\n"
"typedef struct{float C[StrArrWeSize];} ArrWe; \r\n"
//------------------------------------------------------------------------------------
"#define StrArrCrSize " + ( string )( sizeof (ArrCr) / sizeof ( float )) + " \r\n"
"typedef struct{float C[StrArrCrSize];}ArrCr; \r\n"
//------------------------------------------------------------------------------------
"#define Spread " + ( string )(Spread_P * Point ()) + " \r\n"
//------------------------------------------------------------------------------------
"#define Point " + ( string ) Point () + " \r\n"
"#define SL " + ( string )(StopLoss_P * Point ()) + " \r\n"
"#define TP " + ( string )(TakeProfit_P * Point ()) + " \r\n"
//------------------------------------------------------------------------------------
" \r\n"
"__kernel void Work(__global ArrSa *Sample, \r\n"
" __global ArrWe *Weights, \r\n"
" __global ArrCr *Result) \r\n"
"{ \r\n"
" int thread = get_global_id(0); \r\n"
" \r\n"
" //------------------Переменные нейронной сети---------------------------------\r\n"
O halde tüm bunları alıntı yapmadan ilahi bir biçimde elde etmek mümkün müdür? PPC algılama ve yaratma için ne kadar elverişsiz
Ve sinir ağları için, zaten standart sınıflara sahip olmanız gerekir ve opcl) kuyuslab gibi hemen kullanabilirsiniz.
Bu, yalnızca MQL5 kodundaki GPU üzerindeki hesaplamaların değil, aynı zamanda terminalin grafik yeteneklerinin bir gösterimidir:
Bir komut dosyası biçimindeki tam kaynak kodu ektedir. OpenCL 1.2'deki hata düzeltildi.
Temsilciler için buluta gidecek mi?
Temsilciler için buluta gidecek mi?
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
İşte herhangi bir DLL olmadan doğrudan MetaTrader 5 terminalinde OpenCL ile yapabilecekleriniz
Renat Fatkhullin , 2016.12.10 14:49
Yakında en azından CPU uygulamaları için MQL5 Cloud Network'te OpenCL'ye izin vereceğiz.Her şey harika ama! OCL ve genel olarak tüm paralelleştirme araçlarıyla ilgili büyük bir sorun var - algoritmaların çok küçük bir kısmı etkili bir şekilde paralelleştirilebilir. Paralel hesaplama örneklerinde, dalgaların taklidi, topun yıkımı ile piramidin üzerine düşmesi, yani küçük parçacıklara bölünebilen ve her biri kendi başına hesaplanabilen her şey neden bu kadar seviliyor.
Handikap/değişim için, bunlar elbette sinir ağları, Fourier, Wavelet, filtreler vb. gibi çeşitli dönüşümler, hepsi mükemmel paralel. Ancak paralelleştirilemeyen doğrusal algoritmalar da var. Kural olarak, bu, algoritmanın bir sonraki adımının sonucunun bir önceki adımın sonuçlarına dayandığı zamandır.
Bunu şimdi 2 harika video alacağım ve test cihazımda her şey uçuyor diye düşünenler için yazdım.