OpenCL: MQL5'te dahili uygulama testleri - sayfa 24

 

Belleği çift kanal moduna aldım, sonuç: 29 yerine hızlanma 39 kat.

 2012.03 . 05 09 : 45 : 56      ParallelTester_00- 01 x (EURUSD,D1)       OpenCL init OK!
2012.03 . 05 09 : 45 : 57      ParallelTester_00- 01 x (EURUSD,D1)       GPU time = 1123 ms
2012.03 . 05 09 : 45 : 57      ParallelTester_00- 01 x (EURUSD,D1)       Соunt inticators = 16 ; Count history bars = 144000 ; Count pass = 1280
2012.03 . 05 09 : 45 : 57      ParallelTester_00- 01 x (EURUSD,D1)       Result on Gpu МахResult== 1.35098 at 174 pass
2012.03 . 05 09 : 46 : 41      ParallelTester_00- 01 x (EURUSD,D1)       CPU time = 43914 ms
2012.03 . 05 09 : 46 : 41      ParallelTester_00- 01 x (EURUSD,D1)       Соunt inticators = 16 ; Count history bars = 144000 ; Count pass = 1280
2012.03 . 05 09 : 46 : 41      ParallelTester_00- 01 x (EURUSD,D1)       Result on Cpu МахResult== 1.35098 at 174 pass
2012.03 . 05 09 : 46 : 41      ParallelTester_00- 01 x (EURUSD,D1)       CpuTime/GpuTime = 39.10418521816563

Emin olmak için dün birkaç kez test ettim, bugün de sonuçlar yakındı.

Garip olan şu ki, çift kanal modunu ayarlarken CPU %0.3'lük bir artış verdi, ancak GPU %25'lik bir artış verdi.

 
tol64 :

Ve sıfırda bir şeyim var. Bu ne anlama geliyor? Bu satırda: 0 geçişte Gpu MaxResult == 0.0 üzerinde sonuç

Belki yeterli hafıza yoktu, belki CountBars veya/veya CountPass'ı biraz azaltmamız gerekiyor?
 
fyords :

Belleği çift kanal moduna aldım, sonuç: 29 yerine hızlanma 39 kat.

Emin olmak için dün birkaç kez test ettim, bugün de sonuçlar yakındı.

Garip olan şu ki, çift kanal modunu ayarlarken CPU %0.3'lük bir artış verdi, ancak GPU %25'lik bir artış verdi.

Aslında, garip bir şey yok. GPU ile çalışırken (grafiklerle çalışmaz, yani hesaplamalar), darboğaz RAM'dir (GPU üzerinde hesaplamalar yapmak yeterli değildir, ayrıca sonuçları ekran kartından RAM'e almanız gerekir). Op.memory daha hızlı çalışmaya başladı - GPU'daki sonuçlar iyileşti.

CPU durumunda, her şey zaten RAM'de depolanmıştır ve sonuçları ileri geri götürmeye gerek yoktur.

Bu nedenle açıklayıcı sonuç: GPU üzerinde hızlı hesaplamalar istiyorsanız, hızlı bir bellek kurun.

 
O zaman her şey netleşti, açıklama için teşekkürler.
 
fyords :
Belki yeterli bellek yoktu, belki CountBars ve/veya CountPass'ı biraz azaltmamız gerekiyor?

Evet kesinlikle. İşte böyle oldu:

... bu da memnun eder. ))

//---

Çubuk sayısını eklerseniz, görüntü hesaplamalar sırasında yanıp söner ve kaybolur.

 
2012.03.05 12:40:51     Terminal        CPU: GenuineIntel Intel(R) Core(TM)2 Duo CPU T6570 @ 2.10GHz with OpenCL 1.1 (2 units, 2094 MHz, 2048 Mb, version 2.0)

Видеоадаптер    ATI Mobility Radeon HD 545v  (256 Мб)

2012.03.05 08:59:28     ParallelTester_00-01x (GBPUSDL,H1)      CpuTime/GpuTime = 19.70338983050847
2012.03.05 08:59:28     ParallelTester_00-01x (GBPUSDL,H1)      Result on Cpu МахResult==1.33921 at 366 pass
2012.03.05 08:59:28     ParallelTester_00-01x (GBPUSDL,H1)      Соunt inticators = 16; Count history bars = 144000; Count pass = 1280
2012.03.05 08:59:28     ParallelTester_00-01x (GBPUSDL,H1)      CPU time = 46500 ms
2012.03.05 08:58:41     ParallelTester_00-01x (GBPUSDL,H1)      Result on Gpu МахResult==1.33921 at 366 pass
2012.03.05 08:58:41     ParallelTester_00-01x (GBPUSDL,H1)      Соunt inticators = 16; Count history bars = 144000; Count pass = 1280
2012.03.05 08:58:41     ParallelTester_00-01x (GBPUSDL,H1)      GPU time = 2360 ms
2012.03.05 08:58:39     ParallelTester_00-01x (GBPUSDL,H1)      OpenCL init OK!
 

Yani konunun sonucu basit, yüzdeniz ne kadar hızlı olursa olsun, video için sadece bir pot :)

Aynı şekilde, vidyaha eski video modellerinde en az 10 katı ve yeni video modellerinde 100 katı yüzde yapacaktır.

 2012.03 . 05 14 : 31 : 23      ParallelTester_00- 01 x (EURUSD,M15)      CpuTime/GpuTime = 364.5847953216374
2012.03 . 05 14 : 31 : 23      ParallelTester_00- 01 x (EURUSD,M15)      Result on Cpu МахResult== 1.01643 at 577 pass
2012.03 . 05 14 : 31 : 23      ParallelTester_00- 01 x (EURUSD,M15)      Соunt inticators = 16 ; Count history bars = 144000 ; Count pass = 1280
2012.03 . 05 14 : 31 : 23      ParallelTester_00- 01 x (EURUSD,M15)      CPU time = 62344 ms
2012.03 . 05 14 : 30 : 21      ParallelTester_00- 01 x (EURUSD,M15)      Result on Gpu МахResult== 1.01643 at 577 pass
2012.03 . 05 14 : 30 : 21      ParallelTester_00- 01 x (EURUSD,M15)      Соunt inticators = 16 ; Count history bars = 144000 ; Count pass = 1280
2012.03 . 05 14 : 30 : 21      ParallelTester_00- 01 x (EURUSD,M15)      GPU time = 171 ms
2012.03 . 05 14 : 30 : 21      ParallelTester_00- 01 x (EURUSD,M15)      OpenCL init OK!
CPU: Intel P4 3 GHz, 2 kernel, RAM 3 Gb, 32 bits
GPU: NVIDIA Corporation GeForce GT 430 with OpenCL 1.1 ( 2 units, 1400 MHz, 1023 Mb, version 295.73 )

Benim durumumda, yavaş CPU çekirdekleri nedeniyle hızlanma 364 kat.

 
Urain :

Yani konunun sonucu basit, yüzdeniz ne kadar hızlı olursa olsun, video için sadece bir pot :)

Aynı şekilde, vidyaha eski video modellerinde en az 10 katı ve yeni video modellerinde 100 katı yüzde yapacaktır.

Benim durumumda, yavaş CPU çekirdekleri nedeniyle fark 364 kat.

Vay! Bu bir rekor! )))

//---

En son sürücüleri daha sonra (295.73) yüklemeye çalışacağım, belki biraz daha iyi olur. ))

 
Urain : Yine de, vidyaha eski video modellerinde en az 10 kez ve yenilerinde 100 kez yüzde yapacak.

İlginç. Fiyordların daha güçlü bir haritası var (GeForce GT 440) ve hesaplama süresi bir büyüklük sırası daha uzun.

tol64 : Vay canına! Bu bir rekor! )))

Evet, bu taş yerine i286 ve harita yerine modern bir canavar olduğunu hayal etmek korkutucu. Tüm bin, hatta birkaç kat daha fazla ortaya çıkacaktı.

PS Başka birinin benimki gibi ayrı bir vidyuhi olmayan bir sistemi olacak mı?

 

2012.03.05 17:43:16 Terminal CPU: OrijinalIntel Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz, OpenCL 1.1 (4 ünite, 3092 MHz, 4008 Mb, sürüm 2.0)

Mathemat :

...

PS Başka birinin benimki gibi ayrı bir vidyuhi olmayan bir sistemi olacak mı?

2012.03.05 17:43:16 Terminal CPU: OrijinalIntel Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz, OpenCL 1.1 (4 ünite, 3092 MHz, 4008 Mb, sürüm 2.0)

2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD,M1) CpuTime/GpuTime = 0.7347677666287369
2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD,M1) Cpu'da Sonucu MaxResult==1257347'de 1125 pass
2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD,M1) Sayı göstergeleri = 16; Sayı geçmişi çubukları = 144000; Sayı geçişi = 1280
2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD,M1) CPU zamanı = 21309 ms
2012.03.05 17:45:02 ParallelTester_00-01x (EURUSD,M1) Gpu'da Sonuç MaxResult==1257347'de 1125 pass
2012.03.05 17:45:02 ParallelTester_00-01x (EURUSD,M1) Cunt intikatörleri = 16; Sayı geçmişi çubukları = 144000; Sayı geçişi = 1280
2012.03.05 17:45:02 ParallelTester_00-01x (EURUSD,M1) GPU süresi = 29001 ms
2012.03.05 17:44:33 ParallelTester_00-01x (EURUSD,M1) OpenCL başlat TAMAM!

:(((

Belki "yanlış sistemin el bombaları" var? (AMD SDK sürümü açısından)