記事"計算用OpenCL のインストール方法と使用法"についてのディスカッション - ページ 5

 

取引、自動取引システム、取引戦略のテストに関するフォーラム

"計算におけるOpenCLのインストールと使用方法 "の記事についての議論

メタドライバー, 2013.11.27 23:23

...

このような評価もあるのですね:

2013.11.28 00:04:42     OpenCL  Device #1:  CPU AuthenticAMD AMD Phenom(tm) II X6 1100 T Processor with OpenCL 1.1 (6 units, 3840 MHz, 16345 Mb, version 2.0, rating 17)
2013.11.28 00:04:42     OpenCL  Device #0:  GPU Advanced Micro Devices, Inc. Cayman with OpenCL 1.1 (20 units, 750 MHz, 1024 Mb, version CAL 1.4.1703 (VM), rating 171)

こんなに評価が違うなんて信じられない。 何かがおかしい。

ドライバを再インストールしたら、その差はさらに大きくなった。ターミナルログでは、CPUの評価は130まで上がって いる(ビデオカードもほぼ同じ)。しかし、エージェント セクションのプロファイル(クラウドに接続されたエージェント)では、すべてのコアで平均~170(最大183)です。

なぜこのような違いがあるのかわからない。

 
tol64:

ドライバを再インストールしたところ、その差はさらに大きくなりました。ターミナルログでは、CPUレーティングは最大130 (ビデオカードもほぼ同じ)です。しかし、エージェント セクションのプロファイル(クラウドに接続されたエージェント)では、すべてのコアで平均~170(最大183)です。

なぜこのような違いがあるのか...。

エージェントは別物で、通常の(OpenCLではない)計算のレーティングはそこで計算されます。

ドライバについては理解しています。 私はまだ再インストールに手間取っていて、昨年ドライバを再インストールする際に問題が発生しました。 私はかろうじてシステムを再インストールせずに済みました。

 

Intel® SDK for OpenCL* Applications 2013 - PC にインストールされていません:

クリックする場所を教えてください :)- Win 7 x64

 
MigVRN:

Intel® SDK for OpenCL* Applications 2013 - PC にインストールされていません:

クリックする場所を教えてください :)- Win 7 x64

まず、インテルの ウェブサイトからダウンロードして、次のファイルをインストールしてください:intel_sdk_for_ocl_applications_2013_r2_runtime_x64_setup.msi.
 
tol64:
まずインテルの ウェブサイトからダウンロードして、次のファイルをインストールしてください:intel_sdk_for_ocl_applications_2013_r2_runtime_x64_setup.msi
ありがとうございました!
 
テスト用のエージェントとしてGPUを使用する方法を教えてください。すべてインストールされており(OpenCLドライバ)、ターミナルではGPUが見つかりますが、テスターのエージェントリストにはなく、2つのCPUコアしかありません。
 

MetaTraderとOpenCLの機能について、まだよく理解していませんでした......。
私の知る限り、OpenCLの機能は PCのプロセッサーをVGA GPUプロセッサーと共有 することです。(主にゲームや写真編集のために)......ポイントは、PCのプロセッサをあまり働かせないようにすることです。

OpenCLとMetaTrader 5に関するリファレンスをいくつか読みましたが、ほとんどがスクリプティングを含んでいました。
、残念ながら私はコーディングについて何も知りません。


私の質問:....
1.
MetaTrader 5 の OpenCL 機能を有効にした場合、PC のプロセッサ使用量を 50% 程度に減らすことができますか?

2. (OpenCL 機能を有効にした) 8 つの異なる MetaTrader 5 を実行した場合、PC の処理速度は低下せず、軽く感じますか?

どなたかご存知の方がいらっしゃいましたら、簡単な英語で説明してください。

 
stivy007:
テスト用のエージェントとしてGPUを使用する方法を教えてください。すべてインストールされており(OpenCLドライバ)、ターミナルはGPUを検出しますが、テスターのエージェントリストにはGPUは存在せず、2つのCPUコアのみです。
それは、特別に書かれたアドバイザーが サポートしているはずです。
 

OpenCLのシンプルなコードがプロセッサー上では動作するのに、ビデオ・カード上ではビデオ・ドライバがクラッシュする理由を知っている人はいるだろうか?

内部ループを削除すると、ビデオカード上では問題なく動作します。

#property link      "http://www.mql5.com"
#property version   "1.00"
#property script_show_inputs;

input int _device = 0;        /// OpenCLデバイス番号 

string d2s( double arg, int dig )         { return DoubleToString( arg, dig ); }
//+------------------------------------------------------------------+

string i2s( int arg )                     { return IntegerToString( arg ); }
//+------------------------------------------------------------------+

const string clSrc =
      "#pragma  OPENCL EXTENSION cl_khr_fp64 : enable                      \r\n"
      "                                                                    \r\n"
      "__kernel void test( __global double *out )                          \r\n"                 
      "{                                                                   \r\n"                  
      "  double x = 0.0;  double x1 = 0.0;                                 \r\n"                      
      "  for( long j = 0; j < 1000000; j ++ )                              \r\n"
      "  {                                                                 \r\n"
      "     x =x+0.01;                                                     \r\n"     
      "     for( long n = 1; n < 10000; n ++ ) x1=x1+0.01;                 \r\n"
      "  }                                                                 \r\n"
      "  out[ 0 ] = x;                                                     \r\n"
      "}                                                                   \r\n";
      

int OnStart()
{
   int clCtx = CLContextCreate( _device );
   
   int clPrg = CLProgramCreate( clCtx, clSrc );
   int clKrn = CLKernelCreate( clPrg, "test" );

   uint st = GetTickCount( );

   int clMem = CLBufferCreate( clCtx,  sizeof( double ), CL_MEM_READ_WRITE );            
   CLSetKernelArgMem( clKrn, 0, clMem );
   Print (i2s(clCtx)+";"+i2s(clPrg)+";"+i2s(clKrn));
   bool ex = CLExecute( clKrn ); 
                       
   double buf[1];                                                
   uint read = CLBufferRead( clMem, buf );                                                 
   
   Print( "out = " + d2s( buf[0], 12 ) );
      
   CLBufferFree( clMem );
   CLKernelFree( clKrn );
   CLProgramFree( clPrg );
   CLContextFree( clCtx );
   
   double gone = ( GetTickCount( ) - st ) / 1000.;
   Print( "OpenCl: gone = " + d2s( gone, 3 ) + " sec." );
   Print( "________________________" );
   
   return( 0 );
}//+------------------------------------------------------------------+
 

インジケーターやローソク足など、チャートにあるプロパティを GPUに渡すことはできますか?

例えば、RSIやストキャスティクスや一目均衡表やローソク足のOHLCを取得できますか?