OpenCL:MQL5での内部実装テスト - ページ 65 1...58596061626364656667686970 新しいコメント Sceptic Philozoff 2012.06.01 02:03 #641 fyords: レポートで、右クリック「表示」、新しいウィンドウ「クエリ」ボタンで、ログが正しく時間表示され、見やすくなりました(私の場合)。ありがとうございます、レポートを開いていることに気づきませんでした。得るものはさらに大きかった。驚きました。これが80円以下の格安カードなのです。だから、NVidiaはドライバに本格的に取り組んだのです。 Dmitriy Parfenovich 2012.06.01 08:42 #642 そして、新しい結果がこちらです。2012.06.01 09:25:23 ParallelTester_00-01 x_new_cycle (EURUSD,D1) ======================================== 2012.06.01 09:32:25 ParallelTester_00-01 x_new_cycle (EURUSD,D1) CPU time = 421203 ms 2012.06.01 09:32:25 ParallelTester_00-01 x_new_cycle (EURUSD,D1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800 2012.06.01 09:32:25 ParallelTester_00-01 x_new_cycle (EURUSD,D1) Result on Cpu МахResult==1.2809 at 9448 pass 2012.06.01 09:32:25 ParallelTester_00-01 x_new_cycle (EURUSD,D1) ------------------------- 2012.06.01 09:32:28 ParallelTester_00-01 x_new_cycle (EURUSD,D1) Device number = 0 2012.06.01 09:32:39 ParallelTester_00-01 x_new_cycle (EURUSD,D1) GPU time = 11263 ms 2012.06.01 09:32:39 ParallelTester_00-01 x_new_cycle (EURUSD,D1) CpuTime/GpuTime = 37.39705229512563 2012.06.01 09:32:39 ParallelTester_00-01 x_new_cycle (EURUSD,D1) Result on Gpu МахResult==1.2809 at 9448 pass 2012.06.01 09:32:39 ParallelTester_00-01 x_new_cycle (EURUSD,D1) ------------ 2012.06.01 09:32:39 ParallelTester_00-01 x_new_cycle (EURUSD,D1) Device number = 1 2012.06.01 09:32:40 ParallelTester_00-01 x_new_cycle (EURUSD,D1) GPU time = 998 ms 2012.06.01 09:32:40 ParallelTester_00-01 x_new_cycle (EURUSD,D1) CpuTime/GpuTime = 422.0470941883768 2012.06.01 09:32:40 ParallelTester_00-01 x_new_cycle (EURUSD,D1) Result on Gpu МахResult==1.2809 at 9448 pass 2012.06.01 09:32:40 ParallelTester_00-01 x_new_cycle (EURUSD,D1) ------------わかったのは、1.純粋なCPU、2.OpenCLを搭載したCPU、3.OpenCLを使ったGPU?そして、やはり422です。Mathemat:驚きました。80ドル以下の格安カードですからね。だから、NVidiaはドライバにとても力を入れています。そして、汚れから富を得ることに、私はどれほど驚いていることか。NVidiaはこのフォーラムを読んで、同様のテストを行い、バグを見つけては修正しているという印象があります。もし、テスターが シミュレーションする対象を選ぶことができれば、つまり、強制的にコードを書く必要がなければ、それはとても良いことだと思います。それでも、7分に対して1秒(動画が許可されていない、または利用できない場合は11秒)はパワーです。 Renat Fatkhullin 2012.06.01 10:15 #643 小さな誤差の範囲内でテストを実行するには、一連の測定を実行して結果を平均化するか、極限値を破棄する方法があります。しかし、もちろん、結果を安定させるためには計算量を増やした方が良い。 最近のOSや本当にマルチコアプロセッサは、GetTickCountによる 計測値のばらつきの問題を真剣に取り除いている。私が最初にコメントしたのは、あくまでも「GetTickCountの平均誤差は少なくとも数十ms」という誤った記述についてです。 Andrey Dik 2012.06.01 11:30 #644 インテル® プロセッサーをお持ちのお客様へnVidiaドライバ301.42をインストールすると、CPU用のOpenCLドライバが自動的にインストールされます。 をレジストリに登録すると、このようになります。[HKEY_LOCAL_MACHINE⇄SOFTWARE⇄Khronos⇄Vendors]"nvcuda.dll"=dword:00000000"amdocl.dll"=dword:00000000"amdocl64.dll"=dword:00000000"IntelOpenCL64.dll"=dword:00000000Intelのネイティブドライバ(緑色で表示)と比較して、約1.5倍(赤色で表示)遅くなっています。対応するレジストリ値を削除してもかまいませんが、念のためブランチを保存しておいてください。 Oleksandr Olefirov 2012.06.01 23:14 #645 管理者様へしばらくこの掲示板を見ていなかったので、この点を見逃していたかもしれません。クラウドのニーズに合わせてビデオカードを降ろすという実装はあるのでしょうか? MetaQuotes 2012.06.01 23:46 #646 ilovebtc:管理者様へしばらくこの掲示板を見ていなかったので、この点を見逃していたかもしれません。クラウドのニーズに合わせて、ビデオカードの入れ替えの実装はあるのでしょうか?ほぼ完成https://www.mql5.com/ru/forum/23/page15#comment_20194819. MetaTester: テストエージェントでOpenCLプログラムを使用するためのサポートを追加しました。OpenCL プログラムは、OpenCL 1.1以上をサポートするビデオカードで計算を行うためのものです。最近のビデオカードには、入力されたデータに対して簡単な数学的演算を同時に実行できる小型の専用プロセッサが数百個搭載されている。 OpenCL言語は、このような並列計算の構成を引き受け、ある種のタスクに対して大きなスピードアップを実現するものである。 テスト終了後、分散ネットワークでOpenCLを有効にします。 Sceptic Philozoff 2012.06.02 05:22 #647 fyords: 私の理解では、1.純粋なCPU、2.OpenCLを搭載したCPU、3.OpenCLを使ったGPU?はい、その通りです。添付のスクリプトを実行し、結果を投稿していただけませんか?本当に面白いです。桁数が多くても怖がらないでください。計算の正しさをチェックするために存在するだけです。 また、スクリプトはすべてのデバイスを通過する。主な作業は、2つの大きな行列を掛け合わせることです。設定はコード内でのみ変更可能です。この行の行列の線形サイズ_size。#define _size 2000メモリが足りなくなった場合のみ変更してください。その兆候として、ディスクリートGPUで実行したときの配列の数値の不一致があります。数値の差が10^(-4)以上であれば、それは明らかなエラーとなります。でも、メモリは十分あるようですね。 ファイル: vect_v2_all_devices.mq5 17 kb Oleksandr Olefirov 2012.06.02 07:16 #648 例えば、私は1280のストリームプロセッサを持つRadeon 6930グラフィックカードを持っています。エージェントリストにはどのように表示されるのでしょうか?1デバイスとして、または全1280個。それだけで10プロセッサーの何倍もの速度があり、ボーナスは1デバイスを追加した分ではありません。 Dmitriy Parfenovich 2012.06.02 08:38 #649 Mathemat:添付のスクリプトを実行して、結果を表示していただけませんか?本当に面白いです。いや、つまらなくはないです。私自身も気になっています。設定は何も変えていない。2012.06.02 09:28:27 vect_v2_all_devices (EURUSD,D1) ======================================= 2012.06.02 09:28:27 vect_v2_all_devices (EURUSD,D1) OCL martices mul: ROWS1 = 2000; COLSROWS = 2000; COLS2 = 2000 2012.06.02 09:30:31 vect_v2_all_devices (EURUSD,D1) CPUTime = 124.504 2012.06.02 09:30:31 vect_v2_all_devices (EURUSD,D1) --------------- 2012.06.02 09:30:38 vect_v2_all_devices (EURUSD,D1) read = 4000000 elements 2012.06.02 09:30:38 vect_v2_all_devices (EURUSD,D1) Device = 0: time = 2.824 sec. 2012.06.02 09:30:38 vect_v2_all_devices (EURUSD,D1) CPUTime / GPUTotalTime = 44.088 2012.06.02 09:30:38 vect_v2_all_devices (EURUSD,D1) sum( 1968,1939 ) = -5.27639246; thirdCPU[ 1968,1939 ] = -5.27639246; buf[ 1968,1939 ] = -5.27639198 2012.06.02 09:30:38 vect_v2_all_devices (EURUSD,D1) sum( 585,810 ) = 3.74615073; thirdCPU[ 585,810 ] = 3.74615073; buf[ 585,810 ] = 3.74614906 2012.06.02 09:30:38 vect_v2_all_devices (EURUSD,D1) sum( 1131,1732 ) = -4.46934557; thirdCPU[ 1131,1732 ] = -4.46934557; buf[ 1131,1732 ] = -4.46934605 2012.06.02 09:30:38 vect_v2_all_devices (EURUSD,D1) sum( 587,999 ) = -4.46048546; thirdCPU[ 587,999 ] = -4.46048546; buf[ 587,999 ] = -4.46048260 2012.06.02 09:30:38 vect_v2_all_devices (EURUSD,D1) sum( 983,1903 ) = 3.42076445; thirdCPU[ 983,1903 ] = 3.42076445; buf[ 983,1903 ] = 3.42076564 2012.06.02 09:30:38 vect_v2_all_devices (EURUSD,D1) sum( 1927,313 ) = 5.62960339; thirdCPU[ 1927,313 ] = 5.62960339; buf[ 1927,313 ] = 5.62960196 2012.06.02 09:30:38 vect_v2_all_devices (EURUSD,D1) sum( 355,1897 ) = 5.86679220; thirdCPU[ 355,1897 ] = 5.86679220; buf[ 355,1897 ] = 5.86678505 2012.06.02 09:30:38 vect_v2_all_devices (EURUSD,D1) sum( 1455,1651 ) = -3.67937088; thirdCPU[ 1455,1651 ] = -3.67937088; buf[ 1455,1651 ] = -3.67936754 2012.06.02 09:30:38 vect_v2_all_devices (EURUSD,D1) sum( 1207,856 ) = 1.30920172; thirdCPU[ 1207,856 ] = 1.30920172; buf[ 1207,856 ] = 1.30920100 2012.06.02 09:30:38 vect_v2_all_devices (EURUSD,D1) sum( 1699,575 ) = 2.55669522; thirdCPU[ 1699,575 ] = 2.55669522; buf[ 1699,575 ] = 2.55669498 2012.06.02 09:30:38 vect_v2_all_devices (EURUSD,D1) ________________________ 2012.06.02 09:30:42 vect_v2_all_devices (EURUSD,D1) read = 4000000 elements 2012.06.02 09:30:42 vect_v2_all_devices (EURUSD,D1) Device = 1: time = 1.514 sec. 2012.06.02 09:30:42 vect_v2_all_devices (EURUSD,D1) CPUTime / GPUTotalTime = 82.235 2012.06.02 09:30:42 vect_v2_all_devices (EURUSD,D1) sum( 407,514 ) = -3.69270682; thirdCPU[ 407,514 ] = -3.69270682; buf[ 407,514 ] = -3.69270515 2012.06.02 09:30:42 vect_v2_all_devices (EURUSD,D1) sum( 1421,1902 ) = -7.43944120; thirdCPU[ 1421,1902 ] = -7.43944120; buf[ 1421,1902 ] = -7.43943167 2012.06.02 09:30:42 vect_v2_all_devices (EURUSD,D1) sum( 1197,1072 ) = -1.49989450; thirdCPU[ 1197,1072 ] = -1.49989450; buf[ 1197,1072 ] = -1.49989557 2012.06.02 09:30:42 vect_v2_all_devices (EURUSD,D1) sum( 1249,1056 ) = -0.22817086; thirdCPU[ 1249,1056 ] = -0.22817086; buf[ 1249,1056 ] = -0.22817032 2012.06.02 09:30:42 vect_v2_all_devices (EURUSD,D1) sum( 385,1856 ) = 3.88903213; thirdCPU[ 385,1856 ] = 3.88903213; buf[ 385,1856 ] = 3.88902068 2012.06.02 09:30:42 vect_v2_all_devices (EURUSD,D1) sum( 952,488 ) = 0.37963703; thirdCPU[ 952,488 ] = 0.37963703; buf[ 952,488 ] = 0.37963703 2012.06.02 09:30:42 vect_v2_all_devices (EURUSD,D1) sum( 345,1572 ) = 2.28500485; thirdCPU[ 345,1572 ] = 2.28500485; buf[ 345,1572 ] = 2.28500390 2012.06.02 09:30:42 vect_v2_all_devices (EURUSD,D1) sum( 1928,468 ) = -1.35805547; thirdCPU[ 1928,468 ] = -1.35805547; buf[ 1928,468 ] = -1.35805535 2012.06.02 09:30:42 vect_v2_all_devices (EURUSD,D1) sum( 1881,1968 ) = -3.12033391; thirdCPU[ 1881,1968 ] = -3.12033391; buf[ 1881,1968 ] = -3.12033129 2012.06.02 09:30:42 vect_v2_all_devices (EURUSD,D1) sum( 1454,575 ) = 5.97233009; thirdCPU[ 1454,575 ] = 5.97233009; buf[ 1454,575 ] = 5.97232151 2012.06.02 09:30:42 vect_v2_all_devices (EURUSD,D1) ________________________ただ、どの数字も理解できない。説明できますか?まあ、少なくとも指の上では、良いのか悪いのか?デバイスによって違うし、小数点以下5〜6桁の線もすでに場所によって違う。反復操作の多重テストであり、最終的な時間は各デバイスの平均値である、ということが分かったと思います。そうだろ? Sceptic Philozoff 2012.06.02 09:10 #650 fyords: ただ、この数字からは何も理解できない。説明できますか?指先だけ:良いのか悪いのか?デバイスによって違うし、小数点以下5〜6桁の線もすでに場所によって違う。sum( 407,514 ) = -3.69270682; thirdCPU[ 407,514 ] = -3.69270682; buf[ 407,514 ] = -3.69270515これはあくまでチェックデジットです。インデックスはランダムに選ばれており、計算が正しいことを確認するためのランダムチェックである。さて、ここで、出来上がった行列の400万要素すべてをチェックした結果を印刷するわけにはいきませんよね?繰り返しの操作で多重テストを行い、最終的な時間は各デバイスの平均値となる、というのがわかった気がします。そうだろ? いいえ、これは2つの大きな行列の掛け算を1つの操作で行っているのです。パフォーマンス数値の面では:このカードとしては非常に良い。さて、私の結果です。デバイス(下から上 -初期化順)。2012.06.02 05:49:25 OpenCL CPU: GenuineIntel Intel(R) Pentium(R) CPU G840 @ 2.80 GHz with OpenCL 1.2 (2 units, 2793 MHz, 8040 Mb, version 2.0 (sse2)) 2012.06.02 05:49:25 OpenCL GPU: Advanced Micro Devices, Inc. ATI RV770 with OpenCL 1.0 (10 units, 780 MHz, 512 Mb, version CAL 1.4.1720) 2012.06.02 05:49:25 OpenCL CPU: Intel(R) Corporation Intel(R) Pentium(R) CPU G840 @ 2.80 GHz with OpenCL 1.1 (2 units, 2800 MHz, 8040 Mb, version 1.1)つまり、最初はIntelのCPUとIntelのOCLエンジン、次に私の恐竜HD 4870、そして再び流石にAMDのエンジンを搭載しています。スクリプトです。2012.06.02 07:38:19 vect_v2_all_devices (EURUSD,H1) ________________________ 2012.06.02 07:38:19 vect_v2_all_devices (EURUSD,H1) sum( 1477,98 ) = -5.84002066; thirdCPU[ 1477,98 ] = -5.84002066; buf[ 1477,98 ] = -5.84001255 2012.06.02 07:38:19 vect_v2_all_devices (EURUSD,H1) sum( 1339,1186 ) = 0.59214997; thirdCPU[ 1339,1186 ] = 0.59214997; buf[ 1339,1186 ] = 0.59215009 2012.06.02 07:38:19 vect_v2_all_devices (EURUSD,H1) sum( 1410,1861 ) = -0.27033439; thirdCPU[ 1410,1861 ] = -0.27033439; buf[ 1410,1861 ] = -0.27033412 2012.06.02 07:38:19 vect_v2_all_devices (EURUSD,H1) sum( 1282,459 ) = -0.87189484; thirdCPU[ 1282,459 ] = -0.87189484; buf[ 1282,459 ] = -0.87189591 2012.06.02 07:38:19 vect_v2_all_devices (EURUSD,H1) sum( 710,1645 ) = 4.86117268; thirdCPU[ 710,1645 ] = 4.86117268; buf[ 710,1645 ] = 4.86116362 2012.06.02 07:38:19 vect_v2_all_devices (EURUSD,H1) sum( 526,938 ) = 0.94805324; thirdCPU[ 526,938 ] = 0.94805324; buf[ 526,938 ] = 0.94805157 2012.06.02 07:38:19 vect_v2_all_devices (EURUSD,H1) sum( 914,489 ) = 5.58242941; thirdCPU[ 914,489 ] = 5.58242941; buf[ 914,489 ] = 5.58243275 2012.06.02 07:38:19 vect_v2_all_devices (EURUSD,H1) sum( 811,257 ) = -1.11584055; thirdCPU[ 811,257 ] = -1.11584055; buf[ 811,257 ] = -1.11583853 2012.06.02 07:38:19 vect_v2_all_devices (EURUSD,H1) sum( 318,498 ) = 1.62952971; thirdCPU[ 318,498 ] = 1.62952971; buf[ 318,498 ] = 1.62952805 2012.06.02 07:38:19 vect_v2_all_devices (EURUSD,H1) sum( 648,1434 ) = -5.57316303; thirdCPU[ 648,1434 ] = -5.57316303; buf[ 648,1434 ] = -5.57315731 2012.06.02 07:38:19 vect_v2_all_devices (EURUSD,H1) CPUTime / GPUTotalTime = 29.879 2012.06.02 07:38:19 vect_v2_all_devices (EURUSD,H1) Device = 2: time = 3.105 sec. 2012.06.02 07:38:19 vect_v2_all_devices (EURUSD,H1) read = 4000000 elements 2012.06.02 07:38:15 vect_v2_all_devices (EURUSD,H1) ________________________ 2012.06.02 07:38:15 vect_v2_all_devices (EURUSD,H1) sum( 684,439 ) = 0.21124490; thirdCPU[ 684,439 ] = 0.21124490; buf[ 684,439 ] = 0.21124732 2012.06.02 07:38:15 vect_v2_all_devices (EURUSD,H1) sum( 795,204 ) = -1.68047857; thirdCPU[ 795,204 ] = -1.68047857; buf[ 795,204 ] = -1.68047154 2012.06.02 07:38:15 vect_v2_all_devices (EURUSD,H1) sum( 579,1503 ) = 2.46559286; thirdCPU[ 579,1503 ] = 2.46559286; buf[ 579,1503 ] = 2.46558809 2012.06.02 07:38:15 vect_v2_all_devices (EURUSD,H1) sum( 675,1504 ) = 0.44935751; thirdCPU[ 675,1504 ] = 0.44935751; buf[ 675,1504 ] = 0.44935691 2012.06.02 07:38:15 vect_v2_all_devices (EURUSD,H1) sum( 1251,1415 ) = -2.85569835; thirdCPU[ 1251,1415 ] = -2.85569835; buf[ 1251,1415 ] = -2.85569715 2012.06.02 07:38:15 vect_v2_all_devices (EURUSD,H1) sum( 204,1755 ) = 0.31420049; thirdCPU[ 204,1755 ] = 0.31420049; buf[ 204,1755 ] = 0.31420231 2012.06.02 07:38:15 vect_v2_all_devices (EURUSD,H1) sum( 1999,74 ) = -2.22978306; thirdCPU[ 1999,74 ] = -2.22978306; buf[ 1999,74 ] = -2.22977948 2012.06.02 07:38:15 vect_v2_all_devices (EURUSD,H1) sum( 436,657 ) = 0.59192652; thirdCPU[ 436,657 ] = 0.59192652; buf[ 436,657 ] = 0.59192693 2012.06.02 07:38:15 vect_v2_all_devices (EURUSD,H1) sum( 967,922 ) = -4.91348410; thirdCPU[ 967,922 ] = -4.91348410; buf[ 967,922 ] = -4.91348314 2012.06.02 07:38:15 vect_v2_all_devices (EURUSD,H1) sum( 1489,1175 ) = -2.48868656; thirdCPU[ 1489,1175 ] = -2.48868656; buf[ 1489,1175 ] = -2.48868561 2012.06.02 07:38:15 vect_v2_all_devices (EURUSD,H1) CPUTime / GPUTotalTime = 179.795 2012.06.02 07:38:15 vect_v2_all_devices (EURUSD,H1) Device = 1: time = 0.516 sec. 2012.06.02 07:38:15 vect_v2_all_devices (EURUSD,H1) read = 4000000 elements 2012.06.02 07:38:14 vect_v2_all_devices (EURUSD,H1) ________________________ 2012.06.02 07:38:14 vect_v2_all_devices (EURUSD,H1) sum( 303,1215 ) = -7.46387863; thirdCPU[ 303,1215 ] = -7.46387863; buf[ 303,1215 ] = -7.46388054 2012.06.02 07:38:14 vect_v2_all_devices (EURUSD,H1) sum( 1173,1406 ) = -5.64940453; thirdCPU[ 1173,1406 ] = -5.64940453; buf[ 1173,1406 ] = -5.64940882 2012.06.02 07:38:14 vect_v2_all_devices (EURUSD,H1) sum( 1617,1405 ) = -0.98162729; thirdCPU[ 1617,1405 ] = -0.98162729; buf[ 1617,1405 ] = -0.98162866 2012.06.02 07:38:14 vect_v2_all_devices (EURUSD,H1) sum( 760,1003 ) = -0.97699410; thirdCPU[ 760,1003 ] = -0.97699410; buf[ 760,1003 ] = -0.97699606 2012.06.02 07:38:14 vect_v2_all_devices (EURUSD,H1) sum( 679,793 ) = -5.41226530; thirdCPU[ 679,793 ] = -5.41226530; buf[ 679,793 ] = -5.41227150 2012.06.02 07:38:14 vect_v2_all_devices (EURUSD,H1) sum( 1345,1865 ) = 0.95630527; thirdCPU[ 1345,1865 ] = 0.95630527; buf[ 1345,1865 ] = 0.95630503 2012.06.02 07:38:14 vect_v2_all_devices (EURUSD,H1) sum( 1289,1659 ) = -3.82919979; thirdCPU[ 1289,1659 ] = -3.82919979; buf[ 1289,1659 ] = -3.82920074 2012.06.02 07:38:14 vect_v2_all_devices (EURUSD,H1) sum( 1216,1759 ) = 4.87398672; thirdCPU[ 1216,1759 ] = 4.87398672; buf[ 1216,1759 ] = 4.87398672 2012.06.02 07:38:14 vect_v2_all_devices (EURUSD,H1) sum( 1268,1060 ) = 2.78621030; thirdCPU[ 1268,1060 ] = 2.78621030; buf[ 1268,1060 ] = 2.78621435 2012.06.02 07:38:14 vect_v2_all_devices (EURUSD,H1) sum( 1686,577 ) = -4.36586094; thirdCPU[ 1686,577 ] = -4.36586094; buf[ 1686,577 ] = -4.36585188 2012.06.02 07:38:14 vect_v2_all_devices (EURUSD,H1) CPUTime / GPUTotalTime = 22.783 2012.06.02 07:38:14 vect_v2_all_devices (EURUSD,H1) Device = 0: time = 4.072 sec. 2012.06.02 07:38:14 vect_v2_all_devices (EURUSD,H1) read = 4000000 elements 2012.06.02 07:38:10 vect_v2_all_devices (EURUSD,H1) --------------- 2012.06.02 07:38:10 vect_v2_all_devices (EURUSD,H1) CPUTime = 92.774 2012.06.02 07:36:37 vect_v2_all_devices (EURUSD,H1) OCL martices mul: ROWS1 = 2000; COLSROWS = 2000; COLS2 = 2000 2012.06.02 07:36:37 vect_v2_all_devices (EURUSD,H1) ======================================= Документация по MQL5: Основы языка / Переменные / Создание и уничтожение объектов www.mql5.com Основы языка / Переменные / Создание и уничтожение объектов - Документация по MQL5 1...58596061626364656667686970 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ありがとうございます、レポートを開いていることに気づきませんでした。
得るものはさらに大きかった。
驚きました。これが80円以下の格安カードなのです。だから、NVidiaはドライバに本格的に取り組んだのです。
そして、新しい結果がこちらです。
わかったのは、1.純粋なCPU、2.OpenCLを搭載したCPU、3.OpenCLを使ったGPU?
そして、やはり422です。
驚きました。80ドル以下の格安カードですからね。だから、NVidiaはドライバにとても力を入れています。
そして、汚れから富を得ることに、私はどれほど驚いていることか。NVidiaはこのフォーラムを読んで、同様のテストを行い、バグを見つけては修正しているという印象があります。
もし、テスターが シミュレーションする対象を選ぶことができれば、つまり、強制的にコードを書く必要がなければ、それはとても良いことだと思います。それでも、7分に対して1秒(動画が許可されていない、または利用できない場合は11秒)はパワーです。
最近のOSや本当にマルチコアプロセッサは、GetTickCountによる 計測値のばらつきの問題を真剣に取り除いている。私が最初にコメントしたのは、あくまでも「GetTickCountの平均誤差は少なくとも数十ms」という誤った記述についてです。
をレジストリに登録すると、このようになります。
"nvcuda.dll"=dword:00000000
"amdocl.dll"=dword:00000000
"amdocl64.dll"=dword:00000000
"IntelOpenCL64.dll"=dword:00000000
Intelのネイティブドライバ(緑色で表示)と比較して、約1.5倍(赤色で表示)遅くなっています。
対応するレジストリ値を削除してもかまいませんが、念のためブランチを保存しておいてください。
管理者様へしばらくこの掲示板を見ていなかったので、この点を見逃していたかもしれません。
クラウドのニーズに合わせてビデオカードを降ろすという実装はあるのでしょうか?
管理者様へしばらくこの掲示板を見ていなかったので、この点を見逃していたかもしれません。
クラウドのニーズに合わせて、ビデオカードの入れ替えの実装はあるのでしょうか?
ほぼ完成https://www.mql5.com/ru/forum/23/page15#comment_201948
OpenCL プログラムは、OpenCL 1.1以上をサポートするビデオカードで計算を行うためのものです。最近のビデオカードには、入力されたデータに対して簡単な数学的演算を同時に実行できる小型の専用プロセッサが数百個搭載されている。 OpenCL言語は、このような並列計算の構成を引き受け、ある種のタスクに対して大きなスピードアップを実現するものである。
はい、その通りです。
添付のスクリプトを実行し、結果を投稿していただけませんか?本当に面白いです。
桁数が多くても怖がらないでください。計算の正しさをチェックするために存在するだけです。
また、スクリプトはすべてのデバイスを通過する。主な作業は、2つの大きな行列を掛け合わせることです。
設定はコード内でのみ変更可能です。この行の行列の線形サイズ_size。
#define _size 2000メモリが足りなくなった場合のみ変更してください。その兆候として、ディスクリートGPUで実行したときの配列の数値の不一致があります。数値の差が10^(-4)以上であれば、それは明らかなエラーとなります。でも、メモリは十分あるようですね。
例えば、私は1280のストリームプロセッサを持つRadeon 6930グラフィックカードを持っています。エージェントリストにはどのように表示されるのでしょうか?1デバイスとして、または全1280個。
それだけで10プロセッサーの何倍もの速度があり、ボーナスは1デバイスを追加した分ではありません。
添付のスクリプトを実行して、結果を表示していただけませんか?本当に面白いです。
いや、つまらなくはないです。私自身も気になっています。設定は何も変えていない。
ただ、どの数字も理解できない。説明できますか?まあ、少なくとも指の上では、良いのか悪いのか?デバイスによって違うし、小数点以下5〜6桁の線もすでに場所によって違う。
反復操作の多重テストであり、最終的な時間は各デバイスの平均値である、ということが分かったと思います。そうだろ?
これはあくまでチェックデジットです。インデックスはランダムに選ばれており、計算が正しいことを確認するためのランダムチェックである。さて、ここで、出来上がった行列の400万要素すべてをチェックした結果を印刷するわけにはいきませんよね?
繰り返しの操作で多重テストを行い、最終的な時間は各デバイスの平均値となる、というのがわかった気がします。そうだろ?
いいえ、これは2つの大きな行列の掛け算を1つの操作で行っているのです。
パフォーマンス数値の面では:このカードとしては非常に良い。さて、私の結果です。デバイス(下から上 -初期化順)。
つまり、最初はIntelのCPUとIntelのOCLエンジン、次に私の恐竜HD 4870、そして再び流石にAMDのエンジンを搭載しています。スクリプトです。