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

 
Urain:

ああ、わかった気がする、君は満足してないんだね。

1. 使用によるアルゴリズムの複雑化、メモリオーバー。

2. そして、コピーの段階でオフセットできるようにしたい。

だから、100000個の要素をコピーして、998000個のオフセットをする必要はないんだ。

なぜなら、1つのデータを何度もコピーするのではなく、新しいオフセットを持つ既存のCL-bufferから新しいタスクのためにデータを取得することができるからです。

1.いいえ。余計なコピーで時間を 浪費するのが嫌なんです。もっとも、floatを使うと、いずれにせよ隙間にコピーしなければならないが。

2.はい。

3.はい。

 
Сторонникам всемирного заговора и полным параноикам, ну или просто любителям по управлять ценой, посвящается! ;) - MQL4 форум
  • www.mql5.com
Сторонникам всемирного заговора и полным параноикам, ну или просто любителям по управлять ценой, посвящается! ;) - MQL4 форум
 
MetaDriver:

初めてのパンケーキhttps://www.mql5.com/ru/forum/138292/page7#601897

いいですね。感動的です。おいしいホットケーキ

//---

OpenCLの 記事は出るのでしょうか?まだこのテーマには実践で近づいていないのですが、視点を変えて読んでみると非常に面白いですね。せめてヘルプに使い方のサンプルスクリプトを2つくらい書いてほしい。情報が足りないんです。

 

CPUのシングルコアと比較して、カードでx200倍のスピードアップに成功したのです。

2012.03.04 23:01:32 ParallelTester_00-01 x (EURUSD,D1)  CpuTime/GpuTime = 216.0292397660819
2012.03.04 23:01:32 ParallelTester_00-01 x (EURUSD,D1)  Result on Cpu МахResult==1.3431 at 819 pass
2012.03.04 23:01:32 ParallelTester_00-01 x (EURUSD,D1)  Соunt inticators = 16; Count history bars = 144000; Count pass = 1280
2012.03.04 23:01:32 ParallelTester_00-01 x (EURUSD,D1)  CPU time = 36941 ms
2012.03.04 23:00:55 ParallelTester_00-01 x (EURUSD,D1)  Result on Gpu МахResult==1.3431 at 819 pass
2012.03.04 23:00:55 ParallelTester_00-01 x (EURUSD,D1)  Соunt inticators = 16; Count history bars = 144000; Count pass = 1280
2012.03.04 23:00:55 ParallelTester_00-01 x (EURUSD,D1)  GPU time = 171 ms
2012.03.04 23:00:55 ParallelTester_00-01 x (EURUSD,D1)  OpenCL init OK!

是非、テストして結果を投稿してください。

CPU: AuthenticAMD AMD Phenom(tm) II X6 1100 T Processor with OpenCL 1.1 (6 units, 3311 MHz, 16345 Mb, version 2.0)
GPU: Advanced Micro Devices, Inc. Cayman with OpenCL 1.1 (20 units, 750 MHz, 1024 Mb, version CAL 1.4.1664 (VM))

カードがメモリを引っ張っていない場合、履歴(CountBars)またはパス数(CountPass)を減らすと、より望ましい。

マルチチャンネルテスターのトレーラー

ファイル:
 
2012.03.04 22:24:07     ParallelTester_00-01 x (EURUSD,D1)       OpenCL init OK!
2012.03.04 22:24:08     ParallelTester_00-01 x (EURUSD,D1)       GPU time = 1513 ms
2012.03.04 22:24:08     ParallelTester_00-01 x (EURUSD,D1)       Соunt inticators = 16; Count history bars = 144000; Count pass = 1280
2012.03.04 22:24:08     ParallelTester_00-01 x (EURUSD,D1)       Result on Gpu МахResult==1.80839 at 1002 pass
2012.03.04 22:24:52     ParallelTester_00-01 x (EURUSD,D1)       CPU time = 44055 ms
2012.03.04 22:24:52     ParallelTester_00-01 x (EURUSD,D1)       Соunt inticators = 16; Count history bars = 144000; Count pass = 1280
2012.03.04 22:24:52     ParallelTester_00-01 x (EURUSD,D1)       Result on Cpu МахResult==1.80839 at 1002 pass
2012.03.04 22:24:52     ParallelTester_00-01 x (EURUSD,D1)       CpuTime/GpuTime = 29.11764705882353
2012.03.04 22:27:16     Terminal        GPU: NVIDIA Corporation GeForce GT 440 with OpenCL 1.1 (2 units, 1660 MHz, 1024 Mb, version 295.73)
2012.03.04 22:27:16     Terminal        CPU: AuthenticAMD AMD Athlon(tm) II X4 630 Processor with OpenCL 1.1 (4 units, 2812 MHz, 2048 Mb, version 2.0)
私のあまり良くないハードウェアでも、ゲインが目に見えて分かります。便利なテストです。ありがとうございます(苦笑)。
 

私の結果、133倍という加速度です。

2012.03.04 23:23:30     ParallelTester_00-01 x (EURUSD,D1)       CpuTime/GpuTime = 133.8285714285714
2012.03.04 23:23:30     ParallelTester_00-01 x (EURUSD,D1)       Result on Cpu МахResult==1.24101 at 1079 pass
2012.03.04 23:23:30     ParallelTester_00-01 x (EURUSD,D1)       Соunt inticators = 16; Count history bars = 144000; Count pass = 1280
2012.03.04 23:23:30     ParallelTester_00-01 x (EURUSD,D1)       CPU time = 18736 ms
2012.03.04 23:23:11     ParallelTester_00-01 x (EURUSD,D1)       Result on Gpu МахResult==1.24101 at 1079 pass
2012.03.04 23:23:11     ParallelTester_00-01 x (EURUSD,D1)       Соunt inticators = 16; Count history bars = 144000; Count pass = 1280
2012.03.04 23:23:11     ParallelTester_00-01 x (EURUSD,D1)       GPU time = 140 ms
2012.03.04 23:23:11     ParallelTester_00-01 x (EURUSD,D1)       OpenCL init OK!
2012.03.04 23:21:47     Terminal        CPU: GenuineIntel  Intel(R) Core(TM) i7-2600 CPU @ 3.40 GHz with OpenCL 1.1 (8 units, 3392 MHz, 16366 Mb, version 2.0)
2012.03.04 23:21:47     Terminal        GPU: Advanced Micro Devices, Inc. Barts with OpenCL 1.1 (14 units, 900 MHz, 1024 Mb, version CAL 1.4.1664 (VM))
 
驚くべきは、シングルコアの場合、i7はX6 1100Tの2倍の速度で、同等の周波数(i7は約3.8GHz、1100Tは3.7)であることです。そのような計算であることは理解できますが、低スレッドでのCPU速度の差は化け物級です。
 
Mathemat:
シングルコアでは、i7はX6 1100Tよりも2倍速く、同等の周波数(i7は約3.8GHz、1100Tは3.7)で動作するのは驚くべきことです。そのような計算であることは理解できますが、低スレッドでのCPU速度の差は化け物級です。

いろいろと考えたり、googleを読んだり。

頭を悩ませていたんです。

最先端のmql-compiler-optimizerを自分たちでクランプしておいて渡さないのか、それとももうわからないのか、どちらかです。

そういうわけにはいきません。"信じられない!"(c) KSS.

また、Intel用に最適化されたコードジェネレータを持っている可能性が高いです。

とにかく暴挙だ! 国連に文句を言うぞ。

 
ジュニアインテル)
2012.03.05 02:03:33     ParallelTester_00-01 x (EURUSD,D1)       OpenCL init OK!
2012.03.05 02:03:33     ParallelTester_00-01 x (EURUSD,D1)       GPU time = 234 ms
2012.03.05 02:03:33     ParallelTester_00-01 x (EURUSD,D1)       Соunt inticators = 16; Count history bars = 144000; Count pass = 1280
2012.03.05 02:03:33     ParallelTester_00-01 x (EURUSD,D1)       Result on Gpu МахResult==1.03434 at 315 pass
2012.03.05 02:04:01     ParallelTester_00-01 x (EURUSD,D1)       CPU time = 27471 ms
2012.03.05 02:04:01     ParallelTester_00-01 x (EURUSD,D1)       Соunt inticators = 16; Count history bars = 144000; Count pass = 1280
2012.03.05 02:04:01     ParallelTester_00-01 x (EURUSD,D1)       Result on Cpu МахResult==1.03434 at 315 pass
2012.03.05 02:04:01     ParallelTester_00-01 x (EURUSD,D1)       CpuTime/GpuTime = 117.3974358974359
2012.03.05 01:54:17     Terminal        GPU: NVIDIA Corporation GeForce GT 520 with OpenCL 1.1 (1 units, 1620 MHz, 512 Mb, version 285.62)

過去ログにCPUに関する行がなぜか見つからなかったんです。

インテル Celeron G530 2.4GHz

 

ここがわからないところです。

GeForce GT 440でOpenCL 1.1 (2 units, 1660 MHz, 1024 Mb, version 295.73) GPU時間=です。 1513 ms

GeForce GT 520でOpenCL 1.1 (1 units, 1620 MHz, 512 Mb, version 285.62) GPU time =.234 ms

なぜ、そんなことが可能なのか?

ここで GeForce GT 440とここで GeForce GT 520の仕様を比較すると、私のは、すべてのパラメータによってよりですが、ランタイムは6.5 倍以上です。

NVIDIA GeForce GT 440 | NVIDIA
NVIDIA GeForce GT 440 | NVIDIA
  • www.nvidia.ru
Установи GeForce в свой ПК для максимальной производительности и разгони свою цифровую жизнь. Смотри потоковые HD фильмы и выводи фотографии высокого разрешения без задержек. Создай дома 3D кинотеатр с помощью Blu-Ray 3D™ и NVIDIA® GeForce®. Разгони свои любимые приложения и раздвинь границы возможностей интернет с новым поколением браузеров с...