OpenCL: interne Implementierungstests in MQL5 - Seite 24

 

Stellen Sie den Speicher in den Dual-Channel-Modus, Ergebnis: 39x Beschleunigung statt 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

Ich habe den Test gestern mehrmals durchgeführt, um sicherzugehen, und auch heute lagen die Ergebnisse dicht beieinander.

Das Seltsame ist, dass bei der Einstellung des Dual-Channel-Modus die CPU einen Boost von 0,3 %, die GPU jedoch einen Boost von 25 % aufweist.

 
tol64:

Ich habe etwas in Nullen. Was bedeutet das? In dieser Zeile:Ergebnis auf Gpu MachResult==0. 0 bei 0 Durchgang

Vielleicht habe ich nicht genug Speicher, oder vielleicht muss ich CountBars und/oder CountPass ein wenig reduzieren?
 
fyords:

Stellen Sie den Speicher in den Dual-Channel-Modus, Ergebnis: 39x Beschleunigung statt 29x.

Ich habe den Test gestern mehrmals durchgeführt, um sicherzugehen, und auch heute lagen die Ergebnisse dicht beieinander.

Das Seltsame ist, dass die CPU im Dual-Channel-Modus 0,3 % mehr Geschwindigkeit aufweist, die GPU aber 25 % mehr.

Eigentlich ist daran nichts Seltsames. Bei der Arbeit (nicht die Arbeit mit Grafiken, nämlich die Berechnungen) mit der GPU Flaschenhals ist RAM (es ist nicht genug, um Berechnungen auf der GPU durchführen, müssen Sie auch die Ergebnisse von der Grafikkarte im RAM zu bekommen). Der Arbeitsspeicher ist schneller geworden - die Ergebnisse auf der GPU haben sich verbessert.

Im Falle der CPU ist alles bereits im RAM gespeichert, und es ist nicht nötig, die Ergebnisse hin- und herzuschieben.

Daraus ergibt sich eine wichtige Schlussfolgerung: Wenn Sie schnelle GPU-Berechnungen wollen, installieren Sie schnellen Speicher.

 
Das erklärt es dann, danke für die Aufklärung.
 
fyords:
Vielleicht ist nicht genug Speicher vorhanden, vielleicht sollte CountBars oder/und CountPass etwas reduziert werden?

Ja, das ist richtig. So war es dann auch:

...was auch schön ist. ))

//---

Wenn ich CountBars hinzufüge, blinkt das Bild und verschwindet während der Berechnungen.

 
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!
 

Also die Schlussfolgerung des Themas ist einfach, egal wie schnell Ihre CPU ist, es ist nur ein poz für die Grafikkarte :)

Wie auch immer, die Grafikkarte macht die CPU mindestens 10 mal schneller bei alten Grafikmodellen und 100 mal schneller bei neueren.

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 meinem Fall beträgt die Beschleunigung aufgrund der langsamen CPU-Kerne das 364-fache.

 
Urain:

Also die Schlussfolgerung des Themas ist einfach, egal wie schnell Ihre CPU ist, es ist nur ein poz für die Grafikkarte :)

Auf jeden Fall ist Ihre Grafikkarte bei alten Videomodellen mindestens 10-mal und bei neueren 100-mal schneller als Ihre CPU.

In meinem Fall beträgt der Unterschied aufgrund langsamer CPU-Kerne 364 Mal.

Wow! Das ist ein Rekord! )))

//---

Ich werde später versuchen, die neuesten Treiber (295.73) zu installieren, vielleicht wird es dann ein wenig besser. ))

 
Urain: Trotzdem würde ein Vidya die CPU bei älteren Videomodellen mindestens um den Faktor 10 und bei neueren Modellen um den Faktor 100 übertreffen.

Interessant. Die fyords-Karte ist stärker (GeForce GT 440) und die Rechenzeit ist um eine Größenordnung länger.

Wow , das ist ein Rekord! )))

Nun ja, es ist beängstigend, sich vorzustellen, wenn i286 anstelle dieses Steins und irgendein modernes Monster anstelle der Karte wäre. Alles, was Sie bekommen würden, oder sogar noch mehr um ein Vielfaches.

P.S. Wird noch jemand ein System ohne diskrete Grafikkarte haben, so wie ich?

 

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

Mathemat:

...

P.S. Wird noch jemand ein System ohne diskrete Grafik wie ich haben?

2012.03.05 17:43:16 Terminal CPU: GenuineIntel Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz mit OpenCL 1.1 (4 Einheiten, 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) Ergebnis auf Cpu MachResult==1.27347 bei 1125 pass
2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD, M1) Anzahl der Indikatoren = 16; Anzahl der historischen Balken = 144000; Anzahl der Durchläufe = 1280
2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD, M1) CPU-Zeit = 21309 ms
2012.03.05 17:45:02 ParallelTester_00-01x (EURUSD,M1) Ergebnis auf Gpu MachResult==1.27347 bei 1125 pass
2012.03.05 17:45:02 ParallelTester_00-01x (EURUSD, M1) Anzahl der Indikatoren = 16; Anzahl der historischen Balken = 144000; Anzahl der Durchläufe = 1280
2012.03.05 17:45:02 ParallelTester_00-01x (EURUSD, M1) GPU-Zeit = 29001 ms
2012.03.05 17:44:33 ParallelTester_00-01x (EURUSD,M1) OpenCL init OK!

:(((

Vielleicht habe ich "Granaten des falschen Systems"? (Ich meine die AMD SDK-Version)

Grund der Beschwerde: