OpenCL: internal implementation tests in MQL5 - page 24

 

Put the memory in dual channel mode, result: 39x acceleration instead of 29x.

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

Did the test several times yesterday to be sure, today too, the results were close.

The strange thing is that when setting dual-channel mode, CPU gave 0.3% boost, but GPU gave 25% boost.

 
tol64:

I have something in zeros. What does that mean? On this line:Result on Gpu MachResult==0.0 at 0 pass

Maybe I don't have enough memory, or maybe I need to decrease CountBars and/or CountPass a bit?
 
fyords:

Put the memory in dual channel mode, result: 39x acceleration instead of 29x.

Did the test several times yesterday to be sure, today too, the results were close.

The strange thing is that CPU showed 0.3% speedup in dual channel mode but GPU showed 25% speedup.

Actually, there is nothing strange about it. In working (not working with graphics, namely the calculations) with the GPU bottle neck is RAM (it is not enough to perform calculations on the GPU, you also need to get the results from the graphics card in RAM). RAM has become faster - the results on the GPU have improved.

In the case of the CPU, everything is already stored in RAM and there is no need to run the results back and forth.

Hence a telling conclusion: if you want fast GPU calculations, install fast memory.

 
That explains it then, thanks for the clarification.
 
fyords:
Maybe there's not enough memory, maybe CountBars or/and CountPass should be reduced a bit?

Yes, that's right. That's how it turned out:

...which is also nice. ))

//---

If I add CountBars, the image blinks and disappears during calculations.

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

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

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

So the conclusion of the topic is simple, no matter how fast your CPU is, it's just a poz for the graphics card :)

Anyway, video card will make the CPU at least 10 times faster on old video models and 100 times faster on newer ones.

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)

In my case, due to slow CPU cores, the acceleration is 364 times.

 
Urain:

So the conclusion of the topic is simple, no matter how fast your CPU is, it's just a poz for the graphics card :)

Anyway your graphics card will outperform your CPU at least 10 times faster on old video models and 100 times faster on newer ones.

In my case due to slow CPU cores the difference is 364 times.

Wow! That's a record! )))

//---

I'll try later to put the latest drivers (295.73), maybe it will get a little better. ))

 
Urain: All the same, a vidya would outperform the CPU by at least a factor of 10, on older video models and by a factor of 100 on newer ones.

Interesting. The fyords card is stronger (GeForce GT 440) and the calculation time is an order of magnitude longer.

Wow , it's a record! )))

Well yes, it's scary to imagine if i286 would be instead of this stone and some modern monster would be instead of the card. All you would get, or even more by several times.

P.S. Will anyone else have a system without a discrete graphics card like me?

 

2012.03.05 17:43:16 Terminal CPU: GenuineIntel Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz with OpenCL 1.1 (4 units, 3092 MHz, 4008 Mb, version 2.0)

Mathemat:

...

P.S. Will anyone else have a system without discrete graphics like me?

2012.03.05 17:43:16 Terminal CPU: GenuineIntel Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz with OpenCL 1.1 (4 units, 3092 MHz, 4008 Mb, version 2.0)

2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD,M1) CpuTime/GpuTime = 0.734767766287369
2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD,M1) Result on Cpu MachResult==1.27347 at 1125 pass
2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD, M1) Count inticators = 16; Count history bars = 144000; Count pass = 1280
2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD, M1) CPU time = 21309 ms
2012.03.05 17:45:02 ParallelTester_00-01x (EURUSD,M1) Result on Gpu MachResult==1.27347 at 1125 pass
2012.03.05 17:45:02 ParallelTester_00-01x (EURUSD, M1) Count inticators = 16; Count history bars = 144000; Count pass = 1280
2012.03.05 17:45:02 ParallelTester_00-01x (EURUSD, M1) GPU time = 29001 ms
2012.03.05 17:44:33 ParallelTester_00-01x (EURUSD,M1) OpenCL init OK!

:(((

Maybe I have "grenades of the wrong system"? (I mean AMD SDK version)

Reason: