2012.05.3122:05:11 ParallelTester_00-01 x (EURUSD,D1) OpenCL init OK!
2012.05.3122:05:11 ParallelTester_00-01 x (EURUSD,D1) GPU time = 141 ms
2012.05.3122:05:11 ParallelTester_00-01 x (EURUSD,D1) Соunt inticators = 16; Count history bars = 144000; Count pass = 12802012.05.3122:05:11 ParallelTester_00-01 x (EURUSD,D1) Result on Gpu МахResult==1.28051 at 1213 pass
2012.05.3122:05:54 ParallelTester_00-01 x (EURUSD,D1) CPU time = 43259 ms
2012.05.3122:05:54 ParallelTester_00-01 x (EURUSD,D1) Соunt inticators = 16; Count history bars = 144000; Count pass = 12802012.05.3122:05:54 ParallelTester_00-01 x (EURUSD,D1) Result on Cpu МахResult==1.28051 at 1213 pass
2012.05.3122:05:54 ParallelTester_00-01 x (EURUSD,D1) CpuTime/GpuTime = 306.8014184397163
2012.06.0101:05:53 ParallelTester_00-01 x (EURUSD,D1) OpenCL init OK!
2012.06.0101:05:54 ParallelTester_00-01 x (EURUSD,D1) GPU time = 999 ms
2012.06.0101:05:54 ParallelTester_00-01 x (EURUSD,D1) Соunt inticators = 16; Count history bars = 144000; Count pass = 128002012.06.0101:05:54 ParallelTester_00-01 x (EURUSD,D1) Result on Gpu МахResult==1.49697 at 10010 pass
2012.06.0101:13:08 ParallelTester_00-01 x (EURUSD,D1) CPU time = 434167 ms
2012.06.0101:13:08 ParallelTester_00-01 x (EURUSD,D1) Соunt inticators = 16; Count history bars = 144000; Count pass = 128002012.06.0101:13:08 ParallelTester_00-01 x (EURUSD,D1) Result on Cpu МахResult==1.49697 at 10010 pass
2012.06.0101:13:08 ParallelTester_00-01 x (EURUSD,D1) CpuTime/GpuTime = 434.6016016016016
#define BIG 10000000#define SMALL 1000voidOnStart( )
{
Print( "Script started..." );
double k;
int times[ SMALL ];
MathSrand( TimeCurrent( ) );
for( int ii = 0; ii < SMALL; ii ++ )
{
Comment( ii );
int st = GetTickCount( );
for( int i = 0; i < BIG; i ++ ) k = sin( i );
int timeTotal = GetTickCount( ) - st;
times[ ii ] = timeTotal;
}
int h = FileOpen( "gtc_times.txt", FILE_WRITE, "\r\n" );
for( int ii = 0; ii < SMALL; ii ++ )
FileWrite( h, times[ ii ] );
FileClose( h );
Print("Script unloaded");
}
//+------------------------------------------------------------------+
http://www.ixbt.com/video3/rad2.shtml- OpenCLでプログラムを書くことに「創造性」を発揮するよりも、大規模データセットに最適化されたライブラリを使う のが一番です (否定はしませんが)。少量はOpenCLで、大量 は最適化されたライブラリで 処理するハイブリッド 方式も可能です。特定のプログラミング言語への変換や、このライブラリが含まれる条件の作成が必要になる場合があります。これが実現できれば、素晴らしい結果が得られ、結果的にオペレーションを何倍にも加速させることができるのです。Note to ....
P.S フォーラムの新しいスレッドになるかもしれません。
ユニークとはいえ、極めて特殊な製品のために、開発者がコンパイラを特別に調整するのは技術的に無理がある。
また、今のところ、このような巨大なサイズの乗算行列を必要とするトレーダーのタスクは見当たりません。
MetaTrader 5」アップデートの お知らせ
MetaTrader 5プラットフォームのアップデートは、数日中に公開される予定です。アップデートが公開された後、最終的な変更点のリストとビルド 番号を含む追加のニュースリリースが行われます。 以下の変更を予定しています。
MetaTrader 5 クライアントターミナル ビルド 648
MetaTester: テストエージェントでOpenCLプログラムを使用するためのサポートを追加しました。
OpenCLを理解し、Cloud+OpenCLのタスクテストを用意する。数学的な視点が非常に面白い。
それはMetaDriverの ためです。
ビデオドライバを最近更新しました(NVIDIA301.42)。
興味本位で昔のテスト(ParallelTester_00-01x)をやってみたら、目を疑った。
24ページで テストをしていて29あったのが、メモリを2chモードにしたら39になったんです。
今は~306です。
驚きです。NVIDIAが人力でドライバをいじっているようです。fyords さん、以前のイベントをログの上位に表示させるにはどうしたらいいのでしょうか?
そして、一般的にそれは素晴らしいです、私はあなたを理解しています。HD4870を安く買って、その威力を目の当たりにしたときと同じように嬉しかったですね。
1 つ小さな推奨事項を挙げると、GPU の実行時間が 1 秒に匹敵するようなパラメー タを選択することです。そうすれば、時間比もより正確になります。GteTickCount()関数の平均誤差は数十ミリ秒を下回ることはない。だから、GPUで120msとか170msとか、簡単に出せるんですよ。そして、加速度の値はこれに大きく左右されます。
このスクリプトを少し微調整して、利用可能なすべてのデバイスで実行できるようにしました(下から順に、1)IntelプラットフォームのCPU、次に2)AMDプラットフォームのHD 4870、そして3)AMDプラットフォームのCPU)。
スクリプトの結果は、ボトムアップで!
10倍少ない後者のパラメータでは、私のカードはあなたのカードほど高速ではありません。おそらく、きちんとオーバークロックする時間がないのでしょう :)fyords さん、以前のイベントをログの上位に表示させるにはどうしたらいいのでしょうか?
レポートでは、右ボタン「表示」、新規ウィンドウ「クエリ」ボタンでログが時間別に正しく構築され、読みやすくなりました(私にとっては)。
スクリプトについては、ありがとうございます、明日にでも試してみます、特に Count pass = 12800では 完成までが長いですね。
とりあえず、Count Pass = 12800 の古いスクリプトを以下に示します。
得るものはさらに大きくなりました。誤差は実はあまりないんです。はい、それに近いですが、平均値から外れて、32、48、さらにそれ以上に集まっています。彼らは珍しい、私は議論しない、彼らは無視することができます。
しかし、人がスクリプトを実行するとき、必ずしもコンピュータ上で何かをするわけではありません。そして、システムは独自のタスクを実行することもでき、実行速度が遅くなることもあります。
技術的には、標準偏差は 確かに6〜7程度と小さく、実行時間自体への依存性も弱い。しかし、それは本当のばらつきをうまく反映していない。同じ計算をしたときに記録された時間のヒストグラムを示します。
隣り合うバーの間隔は16msです。小さい列はかなり可能性が高く、32ms程度の差で互いに異なる。真ん中の列(「真の実行時間」)を140ミリ秒とすると、左は124ミリ秒、右は156ミリ秒となります。
そのため、低いGPUの実行時間で割ったときの実質的な変動はかなり大きくなる可能性があります。
20秒/124ms〜161
20秒/156ms ~ 128.
実行時間の「真の比率」は、一番大きな棒グラフにほぼ一致する。
20秒/140ms ~ 143.
GPUでの実行時間を長くとれば、このエラーの影響はかなり少なくなります。せめて500msにしとけよ。
シミュレーションのためのスクリプトです。