OpenCl ve bunun için araçlar. İncelemeler ve izlenimler. - sayfa 5

 
Mathemat :

Harika, MQL ve C/C++'ı karşılaştırmak için bir temel olacak. Ben sadece gerçekleri verdim . Ve genel olarak, neden Thomas'a inanan biri olayım ki?

Sinir ağlarında fark biraz daha fazla olabilir, tartışmıyorum.

Ve bu arada, senin "sadece gerçekleri" görmek isterim.

"Sadece gerçekler"im neredeyse hazır. "Neredeyse" - çünkü eski testlerimin kaynaklarını kazdım. Şimdi onları biraz güncelleyeceğim ve kaynak kodlarını test sonuçlarıyla birlikte buraya tablo şeklinde yayınlayacağım.

 
joo : Bu arada, senin "sadece gerçekleri" görmek istiyorum.

Tam burada . Sayfadaki ikinci mesajıma bakın.

Bu arada, mesajıma zaten bir bağlantı ile cevap vermişsiniz. Biraz daha yüksek olan C kodunu MQL4 için yeniden yapmak çok kolay. Eki görmek.

Dosyalar:
pi.mq4  1 kb
 
Mathemat :

Tam burada . Sayfadaki ikinci mesajıma bakın.

Bu arada, mesajıma zaten bir bağlantı ile cevap vermişsiniz. Biraz daha yüksek olan C kodunu MQL4 için yeniden yapmak çok kolay. Eki görmek.

Lütfen test sonuçlarını bir tablo şeklinde düzenleyin ve buraya gönderin ki bu konuyu okuyan hiç kimse linklere atlamasın.
 
AlexEro :

Meslek okullarının dijital ******ciliğine aldanmamak için size bu canavarların resimlerinin linkini kişisel bir mesajla gönderdim.

Hadi, inan bana, resminle, burada onların sayısını yüzde bile değiştirmeyeceksin. Yay.

Ama uzun sürecek mi? İyi bir şekilde böyle bir teçhizat için, su soğutma diyelim, iyi bir soğutma monte etmek gerekiyor, resimde devamı gibi.

 
joo :
Lütfen test sonuçlarını bir tablo şeklinde düzenleyin ve buraya gönderin ki bu konuyu okuyan hiç kimse linklere atlamasın.

Oradaki tablo ne? Birkaç resim.

1. Paralelpi_x.cpp programlarının farklı derleme ayarlarıyla testleri. MQL4 ile karşılaştırıldığında sadece 1. sonuç önemlidir: 6.723 saniye, orada hızlandırıcı (SSE*, IPP, OML) yoktur.

Ancak, hızlandırıcılar açıldığında sonuçların nasıl değiştiğini görmek isteyen varsa, aşağıdaki ekte derlenmiş yürütülebilir dosyaları ve gerekli paralel kitaplıkları içeren bir arşiv bulunmaktadır. Her şeyi tek bir dizine atmak ve komut satırında çalıştırmak yeterlidir.

Tabii ki, bu sonuçlar bir dizi video kartındaki canavarlara karşı herhangi bir rekabeti temsil etmiyor.

2. MQL4'te yeniden yazılan aynı program:


Sonuç: 22.98 saniye, yani. 3.4 kat daha fazla. Ama orada dizilerle çalışma yok ve bizim için gerekli olabilir. Script kodu ektedir.

Dosyalar:
release.zip  278 kb
pi_1.mq4  1 kb
 
joo :

MQL5, MQL4'ten 20 kat daha hızlıdır.

C++, MQL5'ten 6 kat daha hızlıdır (otomatik yürütme paralelleştirme için kitaplıkları kullanırken)

Toplam: 20*6=120 kez.

Hesaplamaları GPU'ya uygularsanız, daha da hızlı olacaktır.

TOPLAM: 10/120=0.083c

böyle bir yerde.

Çok tantana! Ringde nasıl derleneceğini bilmek için bir yarışmada 4 farklı derleyici var.

Eh, bu bir şaka tabii. Ama cidden, 6 test yazılır. Sonuçlar aşağıdaki tabloda sunulmaktadır. Ve yorumlar daha da düşük. :)

#Testa
Tanım
Yürütülebilir dosya adı
ile test sonucu
1
Ex5 komut dosyası ve ex5 kitaplığı
1 MLP MQL derleyici.ex5
97.2
2
Ex5 komut dosyası ve C++ dll kitaplığı, MS derleyicisi, tüm optimizasyonlar devre dışı bırakıldı
2 MLP MS derleyici nonOpt.ex5
42.6
3
Ex5 komut dosyası ve C++ dll kitaplığı, MS derleyici, tüm optimizasyonlar dahil
3 MLP MS derleyicisi Opt.ex5
27.1
4
Ex5 komut dosyası ve C++ dll kitaplığı, Intel derleyici, tüm optimizasyonlar etkinleştirildi
4 MLP Intel derleyici.ex5
12.5
5
Ex4 komut dosyası ve ex4 kitaplığı
5 MLP MQL4 derleyici.ex4
669.6
6
Ex4 komut dosyası ve C++ dll kitaplığı, Intel derleyici, tüm optimizasyonlar etkinleştirildi
6 MLP MQL4 Intel compiler.ex4
10.7




Ağır hesaplamaları test etmek için, ex4, ex5 ve dll eklenti kitaplıkları şeklinde tasarlanmış, 4 katmanlı bir sinir ağı MLP 80-100-100-10 kullanılır.

Şunu görüyoruz:

- bağlı ex5 lib'lerinin ve ex4 lib'lerinin sonuçları 6,8 kat farklılık gösterir (1 ve 5 numaralı testler)

- Intel derleyicisinin bağlı ex5 lib'lerinin ve dll lib'lerinin sonuçları 7,8 kat farklılık gösterir (test 1 ve 4)

- Intel derleyicisinin bağlı ex4 lib'lerinin ve dll lib'lerinin sonuçları 62,5 kat farklıdır (5 ve 6 numaralı testler)

Bulgular:

Tabii MQL4 ile MQL5 arasındaki yaklaşık 20 kat farkı biraz geri çevirdim. Böyle bir fark, 2 boyutlu dizilerin yoğun kullanımıyla kendini gösterecektir (bu rakamın kafamda nereden geldiğini hatırladım), ancak bu özellik için testleri özellikle keskinleştirmek için çok tembelim (ve tipik durumlara karşılık gelmeyecek) "ağır" hesaplamalar - tipik durumlar testlerde sunulur), bu yüzden sözümü alabilir veya testi kendiniz yazabilirsiniz. Dolayısıyla MQL4 ile MQL5 arasındaki hız farkı 6,8 kat, MQL4 ile C++ arasındaki hız farkı 62,5 kat diyebiliriz.

Ve böyle bir gerçekle cesaretim kırıldı, akhtung! - dll'yi çağıran bir MQL4 betiği, aynı dll'ye sahip bir MQL5 betiğinden daha hızlı çalışır ... Bu ne anlama gelir? - kontrol edildi, birkaç kez koştu, hata yok. Görünüşe göre geliştiriciler, MT5'te dll çağrısının MT4'e kıyasla optimize edildiğini söylediler. Ya bunlar yapıların özellikleri (MT5 574 ve MT4 409) ve sonra testler tamamen doğru değil ya da ... kısacası bilmiyorum.


İhtiyacı olan herkes ızgarayı kullanabilir (4 veya 6 testten oluşan derlenmiş dll - çok akıllı bir ızgara), kaynak kodu ektedir. Her katmandaki nöron sayısı yapılandırılabilir. Doğru, optimize edici (hem 4 hem de 5'te) 64'ten fazla parametreyi desteklemiyor ve ayrıca, adımın büyük ayarlanması gerekecek, bu nedenle böyle bir canavar (testlerde olduğu gibi, 80-100-100-10, 19210 optimize edilmiş) parametreler! ) Normal araçlarla antrenman yapmak işe yaramaz, özel optimizasyon algoritmaları kullanmanız gerekir. Bu durum için (ve sadece bunun için değil), bu arada, düzenli optimize edicilerin (hem 4. hem de 5.) sınırsız optimizasyon yapmasına izin verecek elbette ücretli ( mağazada olacak) bir sokak inşa etmeyi düşündüm. 0 ile bile herhangi bir adımda parametre sayısı

Dosyalar:
tests_mlp.zip  71 kb
 

İnandırıcı bir şekilde, joo , hatta fazlasıyla. Ama birkaç şey var.

İlk olarak, MS'den derlerken, en iyi sonuç (seçenek 3) bile seçenek 1'den 4 kat daha iyidir.

İkincisi, Intel'in "her şey dahil" derleyicisinin MS'den 2 kattan fazla daha iyi olduğuna inanamıyorum. Bu, Intel için daha fazla optimizasyonu etkinleştirdiğiniz anlamına gelir.

Her durumda, etkileyici. Masanın sonuna kadar dolmasını bekliyoruz.

Şimdi bu ekran kartı dizilerine neden ihtiyaç duyulduğunu biliyorum: bu hesaplamaları her tikte yapmak için!

 
Mathemat :

İkincisi, Intel'in "her şey dahil" derleyicisinin MS'den 2 kattan fazla daha iyi olduğuna inanamıyorum. Bu, Intel için daha fazla optimizasyonu etkinleştirdiğiniz anlamına gelir.

Nedir - hepsi dahil. Tüm özelliklerini kullanmadan bir derleyici kullanmanın bir anlamı yoktur - balık daha derinde olduğu yeri arar ve programcı en iyi derleyiciyi arar. Bu anlamda, MQ'nun derleyicilerinin ayarları yoktur, bu nedenle bunların en uygun şekilde yapılandırıldığını varsayabiliriz.
 

Ve böyle bir gerçekle cesaretim kırıldı, akhtung! - dll'yi çağıran bir MQL4 betiği, aynı dll'ye sahip bir MQL5 betiğinden daha hızlıdır ... Bu ne anlama gelir? - kontrol edildi, birkaç kez koştu, hata yok. Görünüşe göre geliştiriciler, dll çağrısının MT4'e kıyasla MT5'te optimize edildiğini söylediler. Ya bunlar yapıların özellikleri (MT5 574 ve MT4 409) ve sonra testler tamamen doğru değil ya da ... kısacası bilmiyorum.



Teşekkürler gayet net ve açıklayıcı.

Sanırım bireysel yüzdeleri çok fazla karşılaştırmamalısınız: sonuçta, asılı bir bilgisayarın CPU hızı (yani, MegaHertz MHz veya GigaHertz, GHz olarak alırsanız) sıfıra eşittir.

Yaklaşık %10-20'lik bir hız farkıyla, programın VE ortamının güvenilirliğine, hata işlemeye daha fazla önem vermek mantıklıdır. Örneğin, MSC'de yapılmış bir DLL kullanırken, MSVCRT.DLL ile anında nasıl bağlantı kurduğuna ve hangi sürüm olduğuna dikkat etmelisiniz, çünkü karmaşık terminal.exe işleminin ortamında ve sürümden sürüme farklılık gösterebilen MSVCRT.DLL başlatma bloğunun ortamı vb. DLL'de normal hata işleme için MetaTrader, kendi içinde tüm sistemi ve DLL çağrılarını ve benzerlerini yavaşlatan bir istisnalar zinciri oluşturur (ve izler).

Nöron hızı konusunda:

burada bir kişi FANN sinir ağı kitaplığını OpenCL'ye aktardı ve ortalama GTX 285 kartında 20x hızlanma talep ediyor:

"Mevcut GPU'mda (GeForce 9500 GT), normal ve OpenCL sürümleri arasında aşağı yukarı aynı hızı alıyorum. Şu anda sipariş ettiğim bir GTX 285 var ve en az 10 kat daha hızlı olmalı. Modern bir GPU ile, GTX 480 olarak 2.26GHz Nehalem Mac Pro'mdan en az 20 kat daha hızlı olmasını bekliyorum."

...

"Evet, yeni kart (GTX 285) çekirdeği yaklaşık 20 kat daha hızlı çalıştırıyor."

http://leenissen.dk/fann/forum/viewtopic.php?f=2&t=658&start=0

http://leenissen.dk/fann/wp/

 

Eh, neredeyse herkes zaten ziyaret etti elbette.

mql5.com'a bakmayan fanatik dörtlüler için: OpenCL: MQL5'te dahili uygulama testleri

Neredeyse bitti ama.

Bunun, diğer platformlarda ticaret yapan otomatik tüccarlar için çok çekici bir özellik olacağından şüpheleniyorum.

Neden: