OpenCL:MQL5での内部実装テスト - ページ 24

 

メモリをデュアルチャネルにしたところ、29倍速から39倍速になりました。

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

念のため、昨日も何度かテストを行いましたが、今日も結果は僅差でした。

不思議なのは、デュアルチャネルモードにすると、CPUは0.3%のブーストだが、GPUは25%のブーストになることだ。

 
tol64:

ゼロの中に何かあるのですが、どういうことでしょうか? この行は、GpuのResult MachResult==0. 0 at0 passです。

メモリが足りないのか、CountBarsやCountPassを少し減らさないといけないのか。
 
fyords:

メモリをデュアルチャネルにしたところ、29倍速から39倍速になりました。

念のため、昨日も何度かテストを行いましたが、今日も結果は僅差でした。

不思議なのは、デュアルチャネルモードでCPUは0.3%の高速化を示したが、GPUは25%の高速化を示したことである。

実は、何も不思議なことはないんです。GPUのボトルネックはRAMです(GPUで計算を行うだけでは不十分で、グラフィックスカードからの結果をRAMに取り込む必要があります)。RAMが速くなった-GPUでの結果が良くなった。

CPUの場合は、すでにすべてがRAMに格納されているので、結果を何度も実行する必要はない。

つまり、「GPUで高速に計算したければ、高速メモリを搭載しろ」ということです。

 
それなら納得です、ありがとうございました。
 
fyords:
メモリが足りないのか、CountBarsやCountPassを少し減らすべきでしょうか。

はい、その通りです。その結果、こうなった。

...というのもいいですね。))

//---

CountBarsを 追加すると、計算中に画像が点滅して消えてしまいます。

 
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!
 

つまり、この話題の結論は簡単で、CPUがいくら速くても、それはグラフィックカードのためのポーズに過ぎないということです :)

とにかくビデオカードは、古いビデオモデルで最低10倍、新しいものでは100倍もCPUを高速化するのです。

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)

私の場合、CPUコアが遅いため、加速度は364倍です。

 
Urain:

つまり、この話題の結論は簡単で、CPUがいくら速くても、それはグラフィックカードのためのポーズに過ぎないということです :)

とにかくグラフィックカードは、古いビデオモデルで10倍以上、新しいものでは100倍以上の速度でCPUを上回る性能を発揮します。

私の場合、CPUコアが遅いため、その差は364倍にもなります。

すごい!記録的です。)))

//---

後で最新のドライバ(295.73)を入れてみると、少しはマシになるかもしれません。))

 
Urain: すべてにおいて、ビデイアは、古いビデオモデルで少なくとも10倍、新しいものでは100倍もCPUを上回るだろう。

面白いですね。fyordsは カードが強く(GeForce GT 440)、計算時間が一桁長くなっています。

うわー 、記録だー。)))

そうですね、もしこの石の代わりにi286が、カードの代わりに現代のモンスターがあったらと想像すると怖いですね。得るものばかり、いや、数倍にもなる。

追伸:私のようにディスクリートグラフィックカードを搭載していないシステムの方はいらっしゃらないでしょうか?

 

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:

...

追伸:私のようにディスクリートグラフィックスを搭載していないシステムの方はいらっしゃらないでしょうか?

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) Cpuでの結果 MachResult==1.27347 at 1125 pass
2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD, M1) インティケータ数 = 16; ヒストリーバー数 = 144000; パス数 = 1280
2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD, M1) CPU時間=21309ms
2012.03.05 17:45:02 ParallelTester_00-01x (EURUSD,M1) Gpuでの結果 MachResult==1.27347 at 1125 pass
2012.03.05 17:45:02 ParallelTester_00-01x (EURUSD, M1) インティケータ数 = 16; ヒストリーバー数 = 144000; パス数 = 1280
2012.03.05 17:45:02 ParallelTester_00-01x (EURUSD, M1) GPU時間=29001ms
2012.03.05 17:44:33 ParallelTester_00-01x (EURUSD,M1) OpenCL init OK!

:(((

もしかしたら、私は「間違ったシステムの手榴弾」を持っているのでは?(AMD SDKのバージョンという意味です)