DLLを使わずにMetaTrader 5で直接OpenCLを使ってできることは次のとおりです。 - ページ 15

 
Ilyas:
  1. 端子を閉じる
  2. HKEY_CURRENT_USER SOFTWARE」レジストリハイブからOpenCLの値を削除します。
  3. 端末を 起動してテスト

実行前にOpenCLキーを削除しました。挙動は変わっていない。

つまり、CLContextCreate(CL_USE_GPU_ONLY)でExpert Advisorを初めて起動すると、上記のエラーが発生し、Expert Advisorが起動しないのです。2回目からはOpenCLデバイスの初期化ログが表示されなくなり、EAのログにエラーが出るだけで、EAが動作しなくなりました。ターミナルを再起動すると、CLContextCreate(0) コマンドを修正したEAが動作し、メガリアリスティックな海景が表示 されるようになりました。同時に、初期化ログにも同じようにパフォーマンステストのエラーが発生しますが、EAログは沈黙して います。

キーを少し変えています。

[HKEY_CURRENT_USER]

before - "OpenCL"=hex:91,57,f4,f8,2e,0b,19,c5,e9,ef,30,dd,c9,a9,af,8c,00,00,00,00,00,00,00,58,f7,f7,28,88,c5,e1,77,3c,4c,f8,8a,4d,31,88,88,6c,2a,09,a4,b3,d8,e2,3f

после - "OpenCL"=hex:91,57,f4,f8,2e,0b,19,c5,e9,ef,30,dd,c9,a9,af,8c,00,00,00,00,00,00,00,00,58,f7,f7,28,88,c5,e1,77,3c,4c,f8,8a,4d,31,88,88,98,6b,19,ab,41,5c,fd,3f

EA/スクリプトを修正し、デバイスを明示的にアドレス指定し、CL_DEVICE_TYPEサインをチェックすることでバイパスすれば、原理的にこの動作は重要ではありません。タスクは独自のレーティングでデバイスに分散させた方が管理しやすいとさえイミフです。初期化エラーが出るのはもどかしいだけです。OpenCLが次に戦闘でどのような挙動を示すかは誰にもわかりません。

カーネルを書いてテストするために、オリジナルの Intel SDK for OpenCL Applications 2016 R2 を探すのを手伝ってください。インテルにロシア語で書き込んでも無駄です ;)

AMD SDKを使用してみてはいかがでしょうか?

 
ベータ版2543にアップグレードしてみてください。
 
directxの方が安定してるけど、計算の手間がかかるし、ダブりがない。
 
Ilyas:
ベータ版2543にアップグレードしてみてください。

ベータ2545、リリース2560。

スクリプトが初めて実行さ れるたびに

Scripts script Seascape (GBPUSD,H1) loaded successfully
OpenCL  device #0: GPU Intel(R) Corporation Intel(R) HD Graphics 4400 with OpenCL 1.2 (20 units, 400 MHz, 1425 Mb, version 10.18.14.5117)
OpenCL  device #1: CPU Intel(R) Corporation Intel(R) Core(TM) i7-4500 U CPU @ 1.80 GHz with OpenCL 1.2 (4 units, 1800 MHz, 8087 Mb, version 4.2.0.148, rating 21)
OpenCL  device performance test started
OpenCL  test compilation failed with error: 
':9:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 
:10:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 
:11:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 
:12:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 
:13:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 
:20:4: error: use of type 'double' requires cl_khr_fp64 extension to b
                
OpenCL  device #0 performance test error: 'cannot create OpenCL program (5105)'
OpenCL  device performance test finished with error(s)
OpenCL  device #0: GPU Intel(R) Corporation Intel(R) HD Graphics 4400 with OpenCL 1.2 (20 units, 400 MHz, 1425 Mb, version 10.18.14.5117)
OpenCL  device #1: CPU Intel(R) Corporation Intel(R) Core(TM) i7-4500 U CPU @ 1.80 GHz with OpenCL 1.2 (4 units, 1800 MHz, 8087 Mb, version 4.2.0.148, rating 21)
Scripts script Seascape (GBPUSD,H1) removed
CLContextCreate(CL_USE_GPU_ONLY)でスクリプトを実行 した場合
Seascape (GBPUSD,H1)    OpenCL not found. Error=5114
 

同様のエラーが発生するが、1年前の弱小タブレットでは問題なく動作していた

OpenCL  device #0: GPU Intel(R) Corporation Intel(R) HD Graphics 400 with OpenCL 1.2 (12 units, 600 MHz, 1598 Mb, version 20.19.15.4364)
OpenCL  device #1: CPU Intel(R) Corporation  Intel(R) Atom(TM) x5-Z8550 CPU @ 1.44 GHz with OpenCL 1.2 (4 units, 1440 MHz, 4016 Mb, version 5.2.0.10094)
OpenCL  device performance test started
OpenCL  test compilation failed with error: '1:9:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 1:10:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 1:11:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 1:12:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 1:13:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 1:20:4: error: use of type 'double' requires cl_khr_fp64 extensio
OpenCL  device #0 performance test error: 'cannot create OpenCL program (5105)'
OpenCL  test compilation failed with error: 'Compilation started 2:9:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 2:10:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 2:11:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 2:12:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 2:13:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 2:20:4: error: use of type 'double' requires 
OpenCL  device #1 performance test error: 'cannot create OpenCL program (5105)'
OpenCL  device performance test finished with error(s)
OpenCL  device #0: GPU Intel(R) Corporation Intel(R) HD Graphics 400 with OpenCL 1.2 (12 units, 600 MHz, 1598 Mb, version 20.19.15.4364)
OpenCL  device #1: CPU Intel(R) Corporation  Intel(R) Atom(TM) x5-Z8550 CPU @ 1.44 GHz with OpenCL 1.2 (4 units, 1440 MHz, 4016 Mb, version 5.2.0.10094)
で、今はそれすらも効かない。
void OnStart()
{
        Print(CLContextCreate( CL_USE_ANY ));
}

CL_USE_ANY, CL_USE_CPU_ONLY, CL_USE_GPU_ONLY - result: -1 witherror code:5115

パラメータ: 0, 1 - 結果: 正

 
aim-1:

ベータ2545、リリース2560。

初めて スクリプトを実行 するときは必ず。

CLContextCreate(CL_USE_GPU_ONLY)でスクリプトを実行 した場合

お使いのカードは二重計算をサポートしていません。

use of type 'double' requires cl_khr_fp64 extension to be enabled

金融計算では、膨大な丸め誤差があるため浮動小数点演算は使えないので、二重計算のサポートを明示的に要求しています。

以前は、ダブルでなくてもOpenCLの起動を許可していましたが、これでは意味がありません。

今は明示的に制限しています。

 
A100:

同様のエラーが発生するが、1年前の弱小タブレットでは問題なく動作していた

そして今、これさえもうまくいかない。

CL_USE_ANY, CL_USE_CPU_ONLY, CL_USE_GPU_ONLY - result: -1 witherror code:5115

パラメータ: 0, 1 - 結果は陽性

Atomがdoubleについて同じエラーを出すのは非常に奇妙です。

ぜひともチェックしたいところです。

 
Renat Fatkhullin:

Atomが doubleについて同じエラーを出すのは、非常に不思議です。

ダブルにも対応していない。

端末にこれだけのサポートが必要なこと自体がおかしいのですが......。私の.clファイルにはダブルが全くなく、精密な科学計算のためにOpenCLを使用しているわけではありません。

しかも、古いAtomではなく、GPUを分離した最新のものです

 
Renat Fatkhullin:

お使いのカードがダブルカウントに対応していない

デバイス本体に聞いてみよう。

void OnStart() {
   int clCtx=CLContextCreate(0);
   if(clCtx == -1) Print("ERROR in CLContextCreate");
   string str;
   if(CLGetInfoString(clCtx,CL_DEVICE_NAME,str))       Print("OpenCL device name: ",str);
   if(CLGetInfoString(clCtx,CL_DEVICE_EXTENSIONS,str)) Print("OpenCL device ext: ",str);
   CLContextFree(clCtx); }

戦車からの答え。


OpenCLデバイス名:Intel(R) HD Graphics 4400

OpenCLデバイスの拡張。cl_intel_accelerator cl_intel_advanced_motion_estimation cl_intel_ctz cl_intel_d3d11_nv12_media_sharing cl_intel_dx9_media_sharing cl_intel_motion_estimationcl_intel_simultaneous_sharing cl_intel_subgroups cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_d3d10_sharing cl_khr_d3d11_sharingcl_khr_depth_images cl_khr_dx9_media_sharing cl_khr_gl_depth_images cl_khr_gl_event cl_khr_gl_msaa_sharing cl_khr_gl_sharing cl_khr_global_int32_base_atomicscl_khr_global_int32_extended_atomics cl_khr_icd cl_khr_image2d_from_buffer cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_spir


実際、cl_khr_fp64 のサポートはありません。

ドライバの問題ではないことを確認するために、倍精度不足に関する情報が記載されたIntel HD Graphics 4400の 公式データシートをネット上で見つけることができません。

 

ビデオカードがFP64を搭載しているかどうかを判断するには、左記ベンチマークを使用するしかありません。

https://askgeek.io/ru/gpus/vs/Intel_HD-Graphics-515-vs-Intel_HD-Graphics-4400

ちなみにRenataのグラフィックコプロセッサーもFP64サポートなしのようです。

https://askgeek.io/ru/gpus/vs/Intel_HD-Graphics-515-vs-Intel_UHD-Graphics-630

Renatさん、上記のスクリプトを実行して、お使いのIGPが倍精度をサポートしているかどうかを判断してもらえますか?

もしそうなら、パフォーマンステストが成功した理由が明らかになります。

OpenCLに送る前に、CPUでmqlrates配列を intに変換し、Digitsを 掛けるというオプションを試してみるといいかもしれません。メモリ消費量は半分になります。その後、ベクトルを使って遊んだり、floatを使うときにエラーにならないように工夫してください。原則的にDigits+1指標の精度は十分すぎるほどであるべきです。

Datetimeも、1日のうち1440分が最初の12ビット(または最初の2バイト)、日が上位ビットにあれば、簡単にint型に変換できます。intとdoubleの速度差は、カーネルの iTimeのようなカスタム関数のオーバーヘッドをカバーするのに十分であるべきです。

Главная
Главная
  • askgeek.io
Сравнительный анализ видеокарт Intel HD Graphics 515 и Intel UHD Graphics 630 по всем известным характеристикам в категориях: Общая информация, Технические характеристики, Видеовыходы и порты, Совместимость, размеры, требования, Поддержка API, Память, Поддержка технологий. Анализ производительности видеокарт по бенчмаркам: PassMark - G2D Mark...