OpenCL: MQL5'te dahili uygulama testleri - sayfa 60

 
Mathemat :

Evet, MD , çıplak CPU'nuzda bir şeyler pek iyi değil. Burada Intel hala sonuna kadar yönetiyor ...

Pekala, tamam, süper bir videonuz var.

Evet. Turpumu kaşıyorum. Ancak, sürücünün çarpık olması mümkündür. Dokunmaya korkuyorum, bir kez yıkılınca kendimi neredeyse tamamen karanlıkta buldum - Winda, uygunsuz olduğu belli olan bir sürücüsüyle kartı aldı. %1 görünürlük koşullarında AMD APP SDK'sını yeniden yerleştirmek zorunda kaldı. Eğlenceliydi.. :)) Yüzüncü kez tüm tuşlara bastım ..................
 
MetaDriver : Evet. Turpumu kaşıyorum. Ancak, sürücünün çarpık olması mümkündür. dokunmaya korkuyorum
Harika: yerel sürücüler bile bozuluyor - hem Intel hem de AMD için. Umalım ki bu sadece büyüme sorunlarıdır.
 

Millet, söyleyin bana, bu OpenCL saf bir CPU'da böyle bir ivmeyi sadece MQL5'te mi yoksa diğer dillerde mi veriyor?

Şu karşılaştırmayı yaptınız mı: MQL5 + OpenCL VS C++ + Tam Derleyici Optimizasyonu ?

Bunun OpenCL havalı değil, MQL5'in kendisinde optimizasyon eksikliği olduğuna dair bir şüphe var.

Not: Bir i7 2700K'm var, onu temiz bir CPU'da test etmeye çalışacağım (ona ulaşır ulaşmaz).

 
Mathemat :
Harika: yerel sürücüler bile bozuluyor - hem Intel hem de AMD için. Umalım ki bu sadece büyüme sorunlarıdır.
Evet, birkaç yıl içinde bunun artık olmayacağını, her şeyin net bir şekilde çalışacağını umuyorum. Şu anda başka sorunlarım var - bu saçmalığı akıllıca nasıl programlayacağımı öğrenmek ... :)
 
hrenfx :

Millet, söyleyin bana, bu OpenCL saf bir CPU'da böyle bir ivmeyi sadece MQL5'te mi yoksa diğer dillerde mi veriyor?

Şu karşılaştırmayı yaptınız mı: MQL5 + OpenCL VS C++ + Tam Derleyici Optimizasyonu ?

Bunun OpenCL havalı değil, MQL5'in kendisinde optimizasyon eksikliği olduğuna dair bir şüphe var.

Not: Bir i7 2700K'm var, onu temiz bir CPU'da test etmeye çalışacağım (ona ulaşır ulaşmaz).

Hayır, yapmadılar.

Haydi Yapalım şunu! İyi anlaşma.

Prensipte, kod en fazla on dakika içinde C++'a taşınır (önemli olan çıplak bir CPU'da). OpenCL'yi C++'da nasıl kullanacağımı sadece primerde gördüm, gerçekten denemedim. Ve genel olarak gerekli olacaktır.

 
hrenfx : Bunun OpenCL havalı değil, MQL5'in kendisinde optimizasyon eksikliği olduğuna dair bir şüphe var.

Evet, mantıklı, hatta fazlasıyla. Geçenlerde ixbt forumunda bir CPU analistiyle çatıştım, o da düşünüyor. Tartışmanın başlangıcı burada (takma adım tamehtaM ). Lütfen beceriksizliğim için beni tekmeleme. Ancak Felid'in çok ileri gittiğine dair bir izlenim var: Çok sık GP'den (IGP) bahsediyor - o, IGP'nin aptalca bir şekilde ortada olmadığı veya çok zayıf olduğu zamanlarda bile.

Konudaki ilk mesajım henüz Intel OpenCL runtime'ı nasıl doğru şekilde kuracağımı bilemediğimde yazılmıştı. Aslında, hala her şeyin doğru olduğundan emin değilim. Ama şimdiden - AMD APP SDK'sından yaklaşık üç kat daha iyi.

Hızlanma rakamları acı verecek kadar büyük, orası kesin. Ve optimizasyonlar göründüğünde açıkça küçülmeleri gerekir.

İlginç olan başka bir şey daha var: Bu optimizasyonlar olmasa bile beş, dörtten daha hızlıdır.

Ve ivmenin kendisi ana şey değil. Ana şey, yürütme süresinin mutlak rakamlarıdır. Kesinlikle daha kötüye gitmeyecekler. Daha doğrusu yapmamalılar.

 
Mathemat :

Bu açıkça ayrı bir kartta ve bir CPU'da değil: öykünmede bu tür hızlanmalar pek mümkün değil. Ve zaten sahip olduğunuz cihaz sayısı 5, ne korkunç.

Sakıncası yoksa, lütfen biraz değiştirilmiş kodu çalıştırın ve sonucu buraya gönderin. Kodda, farklı OpenCL cihazları için hesaplamalar döngülüdür (hızlı olmaları gerekir) ve en uzun olan x86'daki hesaplama yalnızca bir kez gerçekleştirilir. Ayak örtüsü uzun olacaktır, ancak komut dosyasının kendisi bir kez yürütülür.

Sana zaten işkence ettiğimi anlıyorum. Ancak her durumda, Destek Ekibi için iyi bir bilgi olacaktır.

İşte sonuç.

2012.04.23 21:42:58 ParallelTester_00-01x_cycle (EURUSD,H1) CpuTime/GpuTime = 439.0727802037846
2012.04.23 21:42:58 ParallelTester_00-01x_cycle (EURUSD,H1) 7544 geçişte Cpu MaxResult==1.41575 üzerinde sonuç
2012.04.23 21:42:58 ParallelTester_00-01x_cycle (EURUSD,H1) Sayı göstergeleri = 16; Sayı geçmişi çubukları = 144000; Sayı geçişi = 12800
2012.04.23 21:42:58 ParallelTester_00-01x_cycle (EURUSD,H1) CPU zamanı = 301643 ms
2012.04.23 21:37:56 ParallelTester_00-01x_cycle (EURUSD,H1) 7544 geçişinde Gpu MaxResult==1.41575 ile ilgili sonuç
2012.04.23 21:37:56 ParallelTester_00-01x_cycle (EURUSD,H1) Sayı göstergeleri = 16; Sayı geçmişi çubukları = 144000; Sayı geçişi = 12800
2012.04.23 21:37:56 ParallelTester_00-01x_cycle (EURUSD,H1) GPU süresi = 687ms
2012.04.23 21:37:55 ParallelTester_00-01x_cycle (EURUSD,H1) OpenCL başlat Tamam! cihaz numarası = 4
2012.04.23 21:37:55 ParallelTester_00-01x_cycle (EURUSD,H1) 7544 geçişinde Gpu MaxResult==1.41575 ile ilgili sonuç
2012.04.23 21:37:55 ParallelTester_00-01x_cycle (EURUSD,H1) Sayı göstergeleri = 16; Sayı geçmişi çubukları = 144000; Sayı geçişi = 12800
2012.04.23 21:37:55 ParallelTester_00-01x_cycle (EURUSD,H1) GPU süresi = 234ms
2012.04.23 21:37:55 ParallelTester_00-01x_cycle (EURUSD,H1) OpenCL başlat Tamam! cihaz numarası = 3
2012.04.23 21:37:55 ParallelTester_00-01x_cycle (EURUSD,H1) 7544 geçişinde Gpu MaxResult==1.41575 ile ilgili sonuç
2012.04.23 21:37:55 ParallelTester_00-01x_cycle (EURUSD,H1) Sayı göstergeleri = 16; Sayı geçmişi çubukları = 144000; Sayı geçişi = 12800
2012.04.23 21:37:55 ParallelTester_00-01x_cycle (EURUSD,H1) GPU süresi = 234ms
2012.04.23 21:37:54 ParallelTester_00-01x_cycle (EURUSD,H1) OpenCL başlat Tamam! cihaz numarası = 2
2012.04.23 21:37:54 ParallelTester_00-01x_cycle (EURUSD,H1) 7544 geçişinde Gpu MaxResult==1.41575 ile ilgili sonuç
2012.04.23 21:37:54 ParallelTester_00-01x_cycle (EURUSD,H1) Sayı göstergeleri = 16; Sayı geçmişi çubukları = 144000; Sayı geçişi = 12800
2012.04.23 21:37:54 ParallelTester_00-01x_cycle (EURUSD,H1) GPU süresi = 234ms
2012.04.23 21:37:54 ParallelTester_00-01x_cycle (EURUSD,H1) OpenCL başlat Tamam! cihaz numarası = 1
2012.04.23 21:37:54 ParallelTester_00-01x_cycle (EURUSD,H1) 7544 geçişinde Gpu MaxResult==1.41575 ile ilgili sonuç
2012.04.23 21:37:54 ParallelTester_00-01x_cycle (EURUSD,H1) Sayı göstergeleri = 16; Sayı geçmişi çubukları = 144000; Sayı geçişi = 12800
2012.04.23 21:37:54 ParallelTester_00-01x_cycle (EURUSD,H1) GPU süresi = 234ms
2012.04.23 21:37:54 ParallelTester_00-01x_cycle (EURUSD,H1) OpenCL başlat Tamam! cihaz numarası = 0

 
casinonsk :

İşte sonuç.

2012.04.23 21:42:58 ParallelTester_00-01x_cycle (EURUSD,H1) CpuTime/GpuTime = 439.0727802037846
2012.04.23 21:42:58 ParallelTester_00-01x_cycle (EURUSD,H1) 7544 geçişte Cpu MaxResult==1.41575 üzerinde sonuç
2012.04.23 21:42:58 ParallelTester_00-01x_cycle (EURUSD,H1) Sayı göstergeleri = 16; Sayı geçmişi çubukları = 144000; Sayı geçişi = 12800
2012.04.23 21:42:58 ParallelTester_00-01x_cycle (EURUSD,H1) CPU zamanı = 301643 ms
2012.04.23 21:37:56 ParallelTester_00-01x_cycle (EURUSD,H1) 7544 geçişinde Gpu MaxResult==1.41575 ile ilgili sonuç
2012.04.23 21:37:56 ParallelTester_00-01x_cycle (EURUSD,H1) Sayı göstergeleri = 16; Sayı geçmişi çubukları = 144000; Sayı geçişi = 12800
2012.04.23 21:37:56 ParallelTester_00-01x_cycle (EURUSD,H1) GPU süresi = 687ms
2012.04.23 21:37:55 ParallelTester_00-01x_cycle (EURUSD,H1) OpenCL başlat Tamam! cihaz numarası = 4

Eh, şimdi açık, cihaz = 4 - bu çıplak CPU. Ve zaman GPU süresi = 687 ms - oldukça tutarlı. Senin için her şey yolunda.

Yürütme süresinin neden bana açık değil CPU zamanı çok büyük. Ayrıca yaklaşık 235000 ms'm var - çok daha düşük bir çekirdek frekansıyla (2.8 GHz).

Ya çok az belleğiniz var ya da çok yavaş ya da CPU her zaman bir tür çok kaynak-yoğun görevle yükleniyor. belirsiz. Zamanların oranı doğal olmayan bir şekilde büyüktür.

 
Mathemat :

Eh, şimdi açık, cihaz = 4 - bu çıplak CPU. Ve zaman GPU süresi = 687 ms - oldukça tutarlı. Senin için her şey yolunda.

Yürütme süresinin neden bana açık değil CPU zamanı çok büyük. Ayrıca yaklaşık 235000 ms'm var - çok daha düşük bir çekirdek frekansıyla (2.8 GHz).

Ya çok az belleğiniz var ya da çok yavaş ya da CPU her zaman bir tür çok kaynak-yoğun görevle yükleniyor. belirsiz. Zamanların oranı doğal olmayan bir şekilde büyüktür.

EA'yı optimize ediyorum, çekirdekler biraz yüklü.

bellek 16Gb

 
casinonsk : , çekirdekler biraz yüklü.

O zaman her şey açıktır. Optimizasyon bittiğinde aynı betiği çalıştırmayı deneyin. Muhtemelen tüm çekirdekleri yüklüyor.

Başka hiçbir şeyin karışmadığı koşullarda, çıplak bir üst uç CPU'ya bakmak çok ilginç.

Neden: