OpenCL: MQL5'te dahili uygulama testleri - sayfa 29

 
MetaDriver :

...

--

512 yapın ve ne elde ettiğinizi görün. Programı parçalamaktan korkmayın, bundan sadece daha bütün olacak. :) Yaparsan buraya yaz.

TAMAM! 512 geçiş ve 144.000 bar ile:

PK       0        po_00- 02 (GBPJPY,M5)     23 : 38 : 29         OpenCL init OK.
LS       0        po_00- 02 (GBPJPY,M5)     23 : 38 : 30         Generation 001 ( 512 passes, 1186 ms) : MaxResult== 81.21127 ; Average Result== 24.14348
PR       0        po_00- 02 (GBPJPY,M5)     23 : 38 : 32         Generation 002 ( 512 passes, 1170 ms) : MaxResult== 88.56933 ; Average Result== 45.67882
RF       0        po_00- 02 (GBPJPY,M5)     23 : 38 : 33         Generation 003 ( 512 passes, 1170 ms) : MaxResult== 100.78146 ; Average Result== 66.20171
RF       0        po_00- 02 (GBPJPY,M5)     23 : 38 : 34         Generation 004 ( 512 passes, 1170 ms) : MaxResult== 107.30714 ; Average Result== 82.67181
RG       0        po_00- 02 (GBPJPY,M5)     23 : 38 : 35         Generation 005 ( 512 passes, 1170 ms) : MaxResult== 115.61784 ; Average Result== 93.52664
DG       0        po_00- 02 (GBPJPY,M5)     23 : 38 : 36         Generation 006 ( 512 passes, 1170 ms) : MaxResult== 116.37332 ; Average Result== 100.41042
CG       0        po_00- 02 (GBPJPY,M5)     23 : 38 : 37         Generation 007 ( 512 passes, 1170 ms) : MaxResult== 116.37332 ; Average Result== 103.95667
JF       0        po_00- 02 (GBPJPY,M5)     23 : 38 : 39         Generation 008 ( 512 passes, 1170 ms) : MaxResult== 116.37332 ; Average Result== 105.85167
NI       0        po_00- 02 (GBPJPY,M5)     23 : 38 : 40         Generation 009 ( 512 passes, 1170 ms) : MaxResult== 116.37332 ; Average Result== 106.22531
MI       0        po_00- 02 (GBPJPY,M5)     23 : 38 : 41         Generation 010 ( 512 passes, 1170 ms) : MaxResult== 116.37332 ; Average Result== 106.33067
GH       0        po_00- 02 (GBPJPY,M5)     23 : 38 : 42         Generation 011 ( 512 passes, 1170 ms) : MaxResult== 116.37332 ; Average Result== 106.23798
DK       0        po_00- 02 (GBPJPY,M5)     23 : 38 : 43         Generation 012 ( 512 passes, 1170 ms) : MaxResult== 116.37332 ; Average Result== 106.02062
PK       0        po_00- 02 (GBPJPY,M5)     23 : 38 : 44         Generation 013 ( 512 passes, 1170 ms) : MaxResult== 116.37332 ; Average Result== 105.62199
CJ       0        po_00- 02 (GBPJPY,M5)     23 : 38 : 44         Optimization finished. Best result == 116.37332 at 13 generation.
RM       0        po_00- 02 (GBPJPY,M5)     23 : 38 : 44         Total time of optimization == 15 sec 226 ms

Pekala, eğer 60 en iyi seçenekse, o zaman genellikle harikadır:

FG       0        po_00- 02 (GBPJPY,M5)     23 : 39 : 44         OpenCL init OK.
OO       0        po_00- 02 (GBPJPY,M5)     23 : 39 : 44         Generation 001 ( 60 passes, 312 ms) : MaxResult== 91.27985 ; Average Result== 38.30907
RN       0        po_00- 02 (GBPJPY,M5)     23 : 39 : 44         Generation 002 ( 60 passes, 312 ms) : MaxResult== 94.08679 ; Average Result== 48.68662
DR       0        po_00- 02 (GBPJPY,M5)     23 : 39 : 45         Generation 003 ( 60 passes, 296 ms) : MaxResult== 108.52215 ; Average Result== 58.43468
IS       0        po_00- 02 (GBPJPY,M5)     23 : 39 : 45         Generation 004 ( 60 passes, 312 ms) : MaxResult== 129.80438 ; Average Result== 65.32684
DP       0        po_00- 02 (GBPJPY,M5)     23 : 39 : 45         Generation 005 ( 60 passes, 297 ms) : MaxResult== 144.99834 ; Average Result== 73.78468
MQ       0        po_00- 02 (GBPJPY,M5)     23 : 39 : 46         Generation 006 ( 60 passes, 297 ms) : MaxResult== 144.99834 ; Average Result== 79.96281
QF       0        po_00- 02 (GBPJPY,M5)     23 : 39 : 46         Generation 007 ( 60 passes, 312 ms) : MaxResult== 152.74852 ; Average Result== 85.70296
EG       0        po_00- 02 (GBPJPY,M5)     23 : 39 : 46         Generation 008 ( 60 passes, 312 ms) : MaxResult== 152.74852 ; Average Result== 87.95421
PD       0        po_00- 02 (GBPJPY,M5)     23 : 39 : 46         Generation 009 ( 60 passes, 296 ms) : MaxResult== 152.74852 ; Average Result== 89.29836
CE       0        po_00- 02 (GBPJPY,M5)     23 : 39 : 47         Generation 010 ( 60 passes, 312 ms) : MaxResult== 152.74852 ; Average Result== 87.88991
OI       0        po_00- 02 (GBPJPY,M5)     23 : 39 : 47         Generation 011 ( 60 passes, 296 ms) : MaxResult== 152.74852 ; Average Result== 85.3231
HK       0        po_00- 02 (GBPJPY,M5)     23 : 39 : 47         Generation 012 ( 60 passes, 312 ms) : MaxResult== 152.74852 ; Average Result== 81.60567
IH       0        po_00- 02 (GBPJPY,M5)     23 : 39 : 48         Generation 013 ( 60 passes, 297 ms) : MaxResult== 152.74852 ; Average Result== 77.38504
QI       0        po_00- 02 (GBPJPY,M5)     23 : 39 : 48         Generation 014 ( 60 passes, 312 ms) : MaxResult== 152.74852 ; Average Result== 76.46695
EM       0        po_00- 02 (GBPJPY,M5)     23 : 39 : 48         Optimization finished. Best result == 152.74852 at 14 generation.
PO       0        po_00- 02 (GBPJPY,M5)     23 : 39 : 48         Total time of optimization == 4 sec 290 ms

//---

Yani, bu başlıkta sunulan en zayıf dizüstü bilgisayarda sonuç budur. Bu yüzden çok umut verici.

//---

Ne yazık ki, henüz bu konu hakkında özgürce konuşamıyorum, çünkü joo makalesini bile incelemedim ve sinir ağlarıyla hiç ilgilenmedim ve sonra OpenCL var. İçindeki her satırı anlamadan şu veya bu kodu kullanamam. Her şeyi bilmek istiyorum. ))) Ticaret programının motoru üzerinde çalışırken. Yapacak o kadar çok şey var ki başım dönüyor. )))

 

CountBar'ları 30 kat arttırdım (4.320.000'e kadar), taşın yüke karşı direncini kontrol etmeye karar verdim.

Her şey umurumda değil: saban sürüyor, ısınıyor ama fazla terletmiyor. Sıcaklık yavaş yavaş yükseliyor, ancak zaten doygunluğa ulaştı.

Kırmızı çizgi sıcaklık, yeşil çizgi çekirdeklerin yüküdür.


Sandy Bridge Intel'i bu yüzden seviyorum: yeşil. Evet grafikler çok sıcak değil ama bakalım Ivy Bridge nasıl olacak...
 
Mathemat :

...

Sandy Bridge Intel'i bu yüzden seviyorum: yeşil. Evet grafikler o kadar sıcak değil ama bakalım Ivy Bridge nasıl olacak...

kuruluş birimi Bu gerçek stres testidir. :) Benimki muhtemelen çoktan bükülmüştür.

O zaman Haswell ve ardından Rockwell biraz sonra nasıl olacak ...)))

 

OpenCL'de Barnsley eğrelti otunun örnek bir uygulaması.

Hesaplama, Chaos Game algoritmasına ( örnek ) göre yapılır, benzersiz yörüngeler oluşturmak için, get_global_id(0) tarafından döndürülen iş parçacığı kimliğine bağlı bir nesil tabanı ile bir rastgele sayı üreteci kullanılır.

IFS eğrelti otu OpenCL

Ölçekleme sırasında, görüntü kalitesini korumak için gereken nokta sayısı ikinci dereceden büyür, bu nedenle bu uygulamada çekirdek örneklerinin her birinin görünür alana düşen sabit sayıda nokta çizeceği varsayılır.

Hesaplanan iş parçacığı sayısı 191 satırında belirtilmiştir:

   uint   work  []={ 500 };

puan sayısı - 233 satırında:

   float pointsneeded= float ( MathRound ( 1500 +scale));

UPD

IFS-fern.mq5 - CPU analogu

Ölçek=1000 ile:


Chaos game - Wikipedia, the free encyclopedia
Chaos game - Wikipedia, the free encyclopedia
  • en.wikipedia.org
In mathematics, the term chaos game, as coined by Michael Barnsley,1 originally referred to a method of creating a fractal, using a polygon and an initial point selected at random inside it.2 The fractal is created by iteratively creating a sequence of points, starting with the initial random point, in which each point in the sequence is a...
Dosyalar:
 
Güzel.
 

Üç katmanlı 16x7x3 nöron yaptım. Sobsno dünden önceki gün yaptı, bugün hata ayıkladı. Ondan önce, CPU'yu kontrol ederken sonuçlar bir araya gelmiyordu - nedenleri burada açıklamayacağım (destan oldukça meraklı ve öğretici olsa da), en azından şimdi değil - gerçekten uyumak istiyorum. :)

Zamansal özellikler:

 2012.03 . 08 04 : 46 : 13 ParallelTester_00- 02 -( 16 x7x3) (EURUSD,M30)  CpuTime/GpuTime = 776.72 18045112782
2012.03 . 08 04 : 46 : 13 ParallelTester_00- 02 -( 16 x7x3) (EURUSD,M30)  Result on Cpu МахResult== 1.06443 at 1004 pass
2012.03 . 08 04 : 46 : 13 ParallelTester_00- 02 -( 16 x7x3) (EURUSD,M30)  Соunt inticators = 16 ; Count history bars = 144000 ; Count pass = 1024
2012.03 . 08 04 : 46 : 13 ParallelTester_00- 02 -( 16 x7x3) (EURUSD,M30)  CPU time = 206608 ms
2012.03 . 08 04 : 42 : 46 ParallelTester_00- 02 -( 16 x7x3) (EURUSD,M30)  Result on Gpu МахResult== 1.06443 at 1004 pass
2012.03 . 08 04 : 42 : 46 ParallelTester_00- 02 -( 16 x7x3) (EURUSD,M30)  Соunt inticators = 16 ; Count history bars = 144000 ; Count pass = 1024
2012.03 . 08 04 : 42 : 46 ParallelTester_00- 02 -( 16 x7x3) (EURUSD,M30)  GPU time = 266 ms

Yarın bu ızgara için bir Optimize Edici yapacağım. Ardından, gerçek verileri yüklemeye ve test cihazında MT5 test cihazında kontrol edilen gerçekçi hesaplamalara ince ayar yapmaya başlayacağım. Daha sonra, kendi optimizasyonları için MLP ağları + cl-kodlarının oluşturucusu ile ilgileneceğim.

Kaynağı göndermiyorum - bir kurbağa. Ancak donanımlarını ex5 fragmanında test etmek isteyenler için.

 
MetaDriver : - bu bir kurbağa. Ancak donanımlarını ex5 fragmanında test etmek isteyenler için.

Putin'de olduğu gibi benim için her şey istikrarlı:

2012.03.08 05:38:22    ParallelTester_00-02-j16x7x3z (EURUSD,H1)    CpuTime/GpuTime = 24.08037178786222
2012.03.08 05:38:22    ParallelTester_00-02-j16x7x3z (EURUSD,H1)    Result on Cpu МахResult==1.09311 at 771 pass
2012.03.08 05:38:22    ParallelTester_00-02-j16x7x3z (EURUSD,H1)    Соunt inticators = 16; Count history bars = 144000; Count pass = 1024
2012.03.08 05:38:22    ParallelTester_00-02-j16x7x3z (EURUSD,H1)    CPU time = 176172 ms
2012.03.08 05:35:26    ParallelTester_00-02-j16x7x3z (EURUSD,H1)    Result on Gpu МахResult==1.09311 at 771 pass
2012.03.08 05:35:26    ParallelTester_00-02-j16x7x3z (EURUSD,H1)    Соunt inticators = 16; Count history bars = 144000; Count pass = 1024
2012.03.08 05:35:26    ParallelTester_00-02-j16x7x3z (EURUSD,H1)    GPU time = 7316 ms
2012.03.08 05:35:18    ParallelTester_00-02-j16x7x3z (EURUSD,H1)    OpenCL init OK!


Bu arada, dikkat edin: CPU'da yürütme süresi açısından, sizin sisteminizle benimki (Pentium G840'a dayalı) arasındaki fark artık o kadar büyük değil.

Hızlı RAM'iniz var mı? 1333 MHz'im var.

Ve bir şey daha: CPU üzerinde hesaplama yaparken, her iki çekirdeğin de yüklü olması ilginç. Sonunda yükte keskin bir düşüş - bu, hesaplamaların bitiminden sonra. Bu ne anlama geliyor?


 
Mathemat :

Putin'de olduğu gibi benim için her şey istikrarlı:

2012.03.08 05:38:22    ParallelTester_00-02-j16x7x3z (EURUSD,H1)    CpuTime/GpuTime = 24.08037178786222
2012.03.08 05:38:22    ParallelTester_00-02-j16x7x3z (EURUSD,H1)    Result on Cpu МахResult==1.09311 at 771 pass
2012.03.08 05:38:22    ParallelTester_00-02-j16x7x3z (EURUSD,H1)    Соunt inticators = 16; Count history bars = 144000; Count pass = 1024
2012.03.08 05:38:22    ParallelTester_00-02-j16x7x3z (EURUSD,H1)    CPU time = 176172 ms
2012.03.08 05:35:26    ParallelTester_00-02-j16x7x3z (EURUSD,H1)    Result on Gpu МахResult==1.09311 at 771 pass
2012.03.08 05:35:26    ParallelTester_00-02-j16x7x3z (EURUSD,H1)    Соunt inticators = 16; Count history bars = 144000; Count pass = 1024
2012.03.08 05:35:26    ParallelTester_00-02-j16x7x3z (EURUSD,H1)    GPU time = 7316 ms
2012.03.08 05:35:18    ParallelTester_00-02-j16x7x3z (EURUSD,H1)    OpenCL init OK!


1. Bu arada, dikkat edin: CPU'da yürütme süresi açısından, sizin sisteminizle benimki (Pentium G840'a dayalı) arasındaki fark artık o kadar büyük değil.

2. Hızlı RAM'iniz var mı? 1333 MHz'im var.

1. Hız aşırtmamı boş zamanımda geri yükledim. Her nasılsa arabam aniden asıldı (daha sonra ortaya çıktığı gibi, disklerin güç kablosu soketten uçtu), bu yüzden mucizeler aramak için anakarttaki "MemoryOK" düğmesine bastım. Bundan sonra hala çalışmadı, yalnızca tüm CMOS parametreleri varsayılan duruma sıfırlandı. Ve şimdi yine işlemci frekansını 3840 MHz'e yakaladım. Yani şimdi daha hızlı çalışıyor.

2. Hala anlayamıyorum. :) BIOS 1866Mhz gösteriyor, ancak hiçbir test bunu doğrulamadı. Özellikle, Renat'ın bir bağlantı yayınladığı kıyaslama 1600MHz'i gösteriyor. Ve Windows genellikle 1033MHz gösterir :))) Belleğin kendisinin eşit olarak iki GHz olmasına ve annenin (resmi olarak) 1866'ya kadar çekmesine rağmen.

 
Mathemat :

Ve bir şey daha: CPU üzerinde hesaplama yaparken, her iki çekirdeğin de yüklü olması ilginç. Sonunda yükte keskin bir düşüş - bu, hesaplamaların bitiminden sonra. Bu ne anlama geliyor?

Yani belki GPU üzerinde hiç düşünmüyorsunuz? Sürücü kalktı, ama .. Tek bir açıklamam var - hesaplama CPU-OpenCL'de, elbette, yalnızca mevcut tüm çekirdeklerde ve vektör SSE talimatlarını kullanarak gerçekleşir. :)

İkinci seçenek - hem GPU'ya hem de CPU'ya bağlıdır. Bu (CPU-ZHPU) desteğinin sürücü tarafından nasıl sağlandığını bilmiyorum, ancak prensipte openCL işlemeyi başlatmak için böyle bir seçeneği hariç tutmuyorum.

Varsa bunlar benim tahminlerim. Ya da şimdi yazmanın ne kadar moda olduğu - "IMHO". ;)

 
MetaDriver : Tek açıklamaya sahibim - hesaplama CPU-OpenCL'de, yalnızca, elbette, tüm mevcut çekirdeklerde ve vektör SSE talimatlarını kullanarak gerçekleşir. :)

Ben şüpheliyim. Özellikle sadece 2 çekirdeğim olduğu için. O zaman 25 katın kârı nereden geliyor?

Peki, tüm Intel Math Kernel Library veya Intel Performance Primitives (onları indirmedim) taşa bağlıysa, o zaman hala mümkündür... bazı durumlarda. Ancak bu olası değildir, yüzlerce meg ağırlığındadırlar.

Bakalım Google bu konuda ne diyecek.

Mathemat: Ve bir şey daha: CPU üzerinde hesaplama yaparken, her iki çekirdeğin de yüklü olması ilginç.

Hayır, herhangi bir OpenCL olmadan CPU üzerinde saf bilgi işlemden bahsediyordum. Orada yük %100'den az ve her bir çekirdekte karşılaştırılabilir yük değerleri var. Ancak OpenCL kodunu yürütürken, GPU üzerinde çalışarak tam olarak anlaşılabilir olan %100'e çıkar.