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

 
Ashes:

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

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

すごい。ネットで見つけた一番普通のショップで、コア、マザー、メモリ、クーラーを購入しました。トータルで6,000円くらいでしたね。おそらく、偶然にも未来から小石を落としてきてくれたのだろう。

SDKのせいかもしれませんね。メモリはデフォルトでDDR-IIIのみなので、故障の意味がないと思います。また、シングルチャンネルであろうとなかろうと、確かに影響はありますが、それほどひどいものではありません。

 
Mathemat:

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

デスクトップも何か(Aeroテーマ)を食っているので、計算速度は解像度(私は1920x1080)次第なのかな?

そのためか、計算に時間がかかってしまいます。

 
fyords: あと、デスクトップも何か食うから(Aeroテーマ)、解像度(私は1920x1080)にも計算速度が左右されるのかな?

そうですね、そうかもしれません。Windows Aeroのパフォーマンス・インデックスは何を示していますか?これが私のものです。


蝶ネクタイのようなものは必要ないので、オフにしています。

追伸:確認しました。何の効果もない。

 

前回のテスト(2011.12.3)は正常に通過しましたが、今回は何らかの不具合が発生しましたが、スコアはビデオで6.8です。それが問題(不具合)なのかもしれませんね。新しいハードウェアはインストールされません。新しいハードウェアの問題かもしれませんが、新しいリリースを待って、もう一度テストしてみます。

 

x32

x32

x64

x64

シーピーユーゼット

1

2

 

5分足の始値で 500日分の履歴に相当するシミュレーションデータ(1入力16指標)に1層格子をフィッティングさせるオプティマイザができました。

テストしてください。

この時点では、オプティマイザーのテストが不十分なので、攪拌が正常に終了したと判断しています。;)

スローダウンをしている人(他人と比べて) - 今、あなたは何を保存するべきか知っている;-)

で、私の結果ですが。

2012.03.06 03:44:23     ParallelOptimazer_00-02 (EURUSD,M30)    Full time of optimization == 14 sec 305 ms
2012.03.06 03:44:23     ParallelOptimazer_00-02 (EURUSD,M30)    Optimization is closing. Best result == 1.91356 at 92 generation.
2012.03.06 03:44:23     ParallelOptimazer_00-02 (EURUSD,M30)    Generation 92: MaxResult==1.91356
2012.03.06 03:44:23     ParallelOptimazer_00-02 (EURUSD,M30)    Generation 91: MaxResult==1.91356
2012.03.06 03:44:23     ParallelOptimazer_00-02 (EURUSD,M30)    Generation 90: MaxResult==1.91356
2012.03.06 03:44:23     ParallelOptimazer_00-02 (EURUSD,M30)    Generation 89: MaxResult==1.91356
.............
.........

私は私の指の最後の時間のために説明しましょう:これは、プリミティブニューラルネットワークExpert Advisorの完全な最適化サイクルです。

// まあ、ほとんどExpert Advisorですね。THIS「Expert Advisor」のコードに追加計算を行い、十分に現実的な利益を計算できるようにする。

// すでにある計算を超えることはありません (アカウント時間で。スマートな実装で)。つまり、減速は、例えば2倍になることがあります。

ファイル:
 
MetaDriver:

5分足の始値で 500日分のシミュレーションを行い、1層格子のフィッティングを行いました(1入力16指標)。

テストしてください。

...

ありがとうございました))

...

NJ 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:06 Generation 36: MaxResult==2.29423
NO 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:08 Generation 37: MaxResult==2.29426
FE 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:10 Generation 38: MaxResult==2.29426
PJ 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:14 Generation 39: MaxResult==2.29427
HO 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:14 Generation 40: MaxResult==2.29427
QE 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:14 Generation 41: MaxResult==2.29427
EJ 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:15 Generation 42: MaxResult==2.29427
LP 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:15 Generation 43: MaxResult==2.29427
KE 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:15 Generation 44: MaxResult==2.29427
DI 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:15 Optimization is closing. Best result == 2.29427 at 44 generation.
KO 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:15 Full time of optimization == 81 sec 917 ms 
 

MetaDriver さん、ありがとうございました。あなたは、Aでカンバセーションの仕事をしました。同時に、ディスクリートグラフィックカードを使用しない私の「馬の背」構成を確認する機会を与えてくれ、とてもとても驚きました。

オプティマイザーを走らせた。こんな感じです。

2012.03.05 23:00:12     Terminal        CPU: GenuineIntel  Intel(R) Pentium(R) CPU G840 @ 2.80 GHz with OpenCL 1.1 (2 units, 2793 MHz, 7912 Mb, version 2.0)
2012.03.06 04:24:34     ParallelOptimazer_00-02 (EURUSD,H1)     Full time of optimization == 58 sec 141 ms
2012.03.06 04:24:34     ParallelOptimazer_00-02 (EURUSD,H1)     Optimization is closing. Best result == 1.87689 at 60 generation.
2012.03.06 04:24:34     ParallelOptimazer_00-02 (EURUSD,H1)     Generation 60: MaxResult==1.87689
2012.03.06 04:24:33     ParallelOptimazer_00-02 (EURUSD,H1)     Generation 59: MaxResult==1.87689
2012.03.06 04:24:32     ParallelOptimazer_00-02 (EURUSD,H1)     Generation 58: MaxResult==1.87689
2012.03.06 04:24:31     ParallelOptimazer_00-02 (EURUSD,H1)     Generation 57: MaxResult==1.87689

各世代がほぼ同じ時間でカウントされると仮定すると、あなたのフェラーリと比べて、私の「タジ」は前回と同じく約6.5~7倍遅いことがわかります(60世代あたり58.14秒~0.97秒/世代)。

2グラフ: もしあなたがテストの間、ディスクリートグラフィックスを無効にして、石の統合グラフィックスでテストを行うことができれば、それは非常に興味深いものになるでしょう(同時に、LynnfieldからSandy Bridgeへの移行におけるこの分野でのインテルの進歩を見てください)。

しかし、そのためには、AMDのOpenCL用SDKを ダウンロードする必要があります。ディスクリートカードの場合は悪化しませんが(独自のドライバがあります)、100%動作するとは限りませんが、PCでOpenCL 1.1を取得することができます。

でも、断っても怒られませんよ。

 

mql4フォーラムからの再投稿です。

同僚たちよ、OpenCLには多くの混乱とヒヤッとすることがあるはずだ。簡単に結果が出るとは思わないでください。

OpenCLはソフトウェア技術であり、ビデオドライバに掛かっているため、選択肢が多い。実は、ビデオドライバは小さなオペレーティングシステムになるのです。UltraVNC、MSI afterbufner、Agnitum OutPost web-control interactive、その他1000のプログラムなど、OpenCLの正常な動作を妨げる可能性のあるものはすべて、途中でそれにぶら下がっています。

つまり、複雑な計算の場合、GPU の技術的精度(32 ビットの部分的な IEEE サポート)と運用的精度 ゲームカードのオーバークロック時の精度 損失)は、本格的な科学計算にはまだ十分ではありません。それに、nVidiaのGPUがほぼすべての最新ビデオカードに64bit倍精度処理を搭載しているのに対し、AMDのビデオカードは一部の最上位シリーズにしか搭載していません。nVidiaにもバグがありますが、それとは異なります。彼らはMicrosoftと提携しているため、彼らの悪名高いCUDA(およびOpenCL)は、たとえばServer 2003では実際には動作しませんが、同時にServer 2008や古いWin XPでは問題なく動作します。

OpenCLは、畳み込みやフィルタリングのような不正確な32ビット計算を高速にストリーミングするためのものです。
Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Основы языка / Типы данных / Приведение типов - Документация по MQL5
 
AlexEros: ゲームカードのオーバークロック時の精度の 低下について

誰がオーバークロックするのでしょうか?計算速度が10〜15%向上するが、たった1匹のハチの死による計算ミスのリスクもある?まあ、100個の頂点を描かなくてもたいした影響がないようなゲームをやっているわけではないので......。

OpenCLは、コンボリューションやフィルタリングのような不正確な32ビット計算を高速にストリーミングするためのものです。

注意点を挙げよう。精度の低下を重要視するには、よほど膨大で重い計算をしなければならない。積分は大量の和算・乗算だから、重箱の隅をつつくようなものだ。

2つの数値を足し算し、3つ目の数値を掛け算し(それぞれ実用的な計算には十分な32ビットの計算精度を持つ)、その結果を1回のループ反復の結果としてどこかのセルに書き込み、GPU内部でそれ以外の使い方をしないのは一つの方法である。

もう一つは、最も収束の遅いライプニッツ級数(この級数はOpenMP技術のデモによく使われる)を使って10億回の反復で円周 率を計算することです。


2つ目のケースとして、32ビットの数値を使う場合、10億個の数値を足し合わせるため、精度が落ちる危険性があるのです。Terverによれば、99.7%のケースで、結果として生じる誤差は、1つの数字に2*10^5を掛けた精度を超えないとのことです。今のは本気だ--とは限らない。

開発者がまっとうなCPUで何度も精密な計算を行い、実際の誤差を推定することを誰も止めないのです。

合理的な予防策を講じれば、この技術は使えると思われる。また、両社の最新プロセッサー(AMD APU Llano、あるいはIntel Sandy Bridge)を使用すれば、ディスクリートグラフィックカードのことはしばらく忘れてしまうかもしれません:私が100倍速くても、たった25倍速くても、どんな違いがあるのでしょう...。また、プロセッサーをオーバークロックするつもりもないので、蜂が死ぬこともありません。