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

 
casinonsk: 2枚目はまだ負荷が0の状態です。

そして3つ目は?それとも、ないのでしょうか?

QE 0 ParallelTester_00-01x__1 (EURUSD,H1) 13:23:02 Count inticators = 16; Count history bars = 144000; Count pass = 480000

EF 0 ParallelTester_00-01x__1 (EURUSD,H1) 13:23:02 Gpuでの結果 MachResult==0.0 at 0 pass.

テストが何かうまくいかなかったという印象があります。あ、あとCount passは低めに設定してください、1280で十分です。

また、CPUとGPUの比較結果はどこにあるのでしょうか?

 
joo:


CountPass 262144でビデオカードドライバが無意識にクラッシュしてしまう。しかし、すぐにまた上昇する。

Tychkov教授の方法で、CountBars 10でCountPassが6628025以上でないと、MQLコンパイラがコンパイルを拒否してエラーを発生させることが判りました。

'inds' - グローバル変数のセクションが大きすぎる ParallelTester_00-01x.mq5 86 7

CountBarsが小さいと、コンパイラはCountPasのさらにひどい値をスキップします。

2012.03.17 20:40:36     ParallelTester_00-01 x (EURUSD,H1)       Соunt inticators = 16; Count history bars = 10; Count pass = 6628025
2012.03.17 20:40:36     ParallelTester_00-01 x (EURUSD,H1)       GPU time = 717 ms

あら、そうなの!?

MQLコンパイラーは、単にGPUに十分なメモリがない(あるいはGPUにない)ことをどのようにして知るのでしょうか?- メモリ 不足でビデオカードのドライバがクラッシュしているようです。


ウラジミールへ

また、なぜ各フライに同じ配列を与える必要があるのでしょうか(メモリはCountPassの数に比例して消費されます)?- 1つの共通の配列からデータを取得させる。

 
joo:

ウラジミールへ

なぜ、各フライに同じ配列を与える必要があるのでしょうか(メモリはCountPassの数に比例して消費されます)?- 1つの共通の配列からデータを取得させる。

すでに価格や指標は共通に配列されているのです。

そして、長さがCountPassの配列には、非格子(最適化されたパラメータ)が存在します。各グリッドごとに個別です。

--

...でも、その考え方が好きなんです。:)

 
joo:

Tychkov教授の方法で、CountBarsが10でCountPassが6628025より大きくなると、MQLコンパイラがコンパイルを拒否してエラーを発生させることが分かりました。

'inds' - グローバル変数のセクションが大きすぎる ParallelTester_00-01x.mq5 86 7

CountBarsが小さいと、コンパイラはCountPasのさらにひどい値をスキップします。

あら、そうなの!?

MQLコンパイラーは、単にGPUに十分なメモリがない(あるいはGPUにない)ことをどのようにして知るのでしょうか?- メモリ不足でビデオカードのドライバがクラッシュするようです。

А!そこで、私のコードには初歩的なプラスがあります(82行目)。

////////////float nets[sizeof(NETs)];   // Вот так было. В корне неправильно.
////////////float inds[sizeof(Inds)];  

////////////float nets[sizeof(NETs)/sizeof(float)];  // Вот так будет видно в чём была ошибка.
////////////float inds[sizeof(Inds)/sizeof(float)];  // И в принципе будет работать, хотя лучше...
// ...Вот так - правильно и понятно откуда ноги.
float nets[CountPass*CountInd];
float inds[CountInd*CountBars];  

直して、4倍 近い「メモリブースト」を手に入れる・・・ナシャロー!!!!

// こんな時は、ファーザー・クリスマスになった気分で...。;)

 
MetaDriver:

// こんなときは、ファーザー・クリスマスになった気分で...。;)

// あなたがファーザー・クリスマスなら、私は誰でしょう?;)
 
5の英語版フォーラムを見てみました。同じようなスレッドが ありますが、ロシア語のフォーラムとは比べものにならないほどの活発さと関心の高さです。
 
Mathemat:

そして3つ目は?それとも、ないのでしょうか?

まるでテストがうまくいかなかったかのようです。また、Count passを小さめに設定し、1280で十分です。

また、CPUとGPUの比較結果はどこにあるのでしょうか?

CL 0 ParallelTester_00-01x__1 (EURUSD,H1) 00:02:09 「OpenCL init OK!
IH 0 ParallelTester_00-01x__1 (EURUSD,H1) 00:02:09 GPU time = 187 ms
FN 0 ParallelTester_00-01x__1 (EURUSD,H1) 00:02:09 Count inticators = 16; Count history bars = 144000; Count pass = 1280
CL 0 ParallelTester_00-01x__1 (EURUSD,H1) 00:02:09 Gpuでの結果 MachResult=0.92493 at 1190 pass
 

ビデオカードの温度を返すMQL関数が必要 です。そうでなければ、燃え尽きてしまうからです。自分のためではなく、クライアントのために。

// MQL-functionがないとDLLを使うことになり、マーケットが遮断されるなど不都合が生じます。

 
MetaDriver:

ビデオカードの温度を返すMQL関数が必要です。そうでなければ、燃え尽きてしまうからです。自分自身ではなく、クライアント側で。
また、限界温度に近づくと、限界温度を返し、計算自体を遅くする必要があります。グラフィックカードの種類や放熱の違いもあります。
 
MetaDriver:

ビデオカードの温度を返すMQL関数が必要 です。そうでなければ、燃え尽きてしまうからです。自分のためではなく、クライアントのために。

// MQL-functionがなければDLLを使うことになり、マーケットが遮断されるなど不都合が生じます。

コンピュータゲームはGPUの温度を気にせず、地獄のような負荷をかけるので、何も起こらない--グラフィックカードは動くのです。また、GPUをスポイルしないように、ゲームパブリッシャーにFPS自体をスローダウンしてもらうということは、ゲーマーなら考えないでしょう。ゲーマーとのアナロジーは直接的である - 我々は速度を必要とし、温度は、必要に応じて(追加の冷却システム)、追加の世話をする必要があります。

それから、CPUの温度を返すMQL関数も必要です。さもないと、プロセッサが焼けてしまいます。


FPS 実現可能であれば、なぜそうしないのか?- もちろん、損はしない。