"Hesaplamalar için OpenCL Nasıl Yüklenir ve Kullanılır?" makalesi için tartışma - sayfa 5

 

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi üzerine forum

"Hesaplamalarda OpenCL nasıl kurulur ve kullanılır" makalesinin tartışılması

MetaDriver, 2013.11.27 23:23

...

Bazı reytingler size saçma geliyor. ya da çarpık sayılıyor. işte benim bugünkü reytinglerim:

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)

Böyle bir reyting farkına inanmıyorum. Burada bir sorun var.

Sürücüleri yeniden yükledim ve şimdi fark daha da büyük. Terminal günlüğünde CPU değeri 130 'a kadar çıkıyor (ekran kartı da hemen hemen aynı). Ancak profilde Ajanlar bölümünde (buluta bağlı ajanlar) derecelendirme tüm çekirdeklerde ortalama ~170 (maksimum 183).

Neden böyle bir fark olduğunu bilmiyorum...

 
tol64:

Sürücüleri yeniden yükledim ve şimdi fark daha da büyük. Terminal günlüğünde CPU değeri 130 'a kadar çıkıyor (ekran kartında da yaklaşık aynı). Ancak profilde Ajanlar bölümünde (buluta bağlı ajanlar) derecelendirme tüm çekirdeklerde ortalama ~170 (maksimum 183).

Neden böyle bir fark var bilmiyorum...

Hayır, aracılar farklı bir şarkı, orada derecelendirmeler normal (OpenCL değil) hesaplamalar için hesaplanır, yani diğer göreceli birimlerde hesaplanırlar.

Sürücüler konusunu anlıyorum. Benimkini yeniden yüklemekte hala yavaşım - geçen yıl sürücüleri yeniden yüklemekte sorun yaşadım. Sistemi yeniden yüklemeden zar zor başardım.

 

OpenCL* Uygulamaları için Intel® SDK 2013 - bilgisayarımda yüklü değil:

Lütfen nereye tıklayacağımı söyleyin :) - Win 7 x64

 
MigVRN:

OpenCL* Uygulamaları için Intel® SDK 2013 - bilgisayarımda yüklü değil:

Lütfen nereye tıklayacağımı söyleyin :) - Win 7 x64

Önce Intel web sitesinden indirin ve ardından şu dosyayı yükleyin: intel_sdk_for_ocl_applications_2013_r2_runtime_x64_setup.msi.
 
tol64:
Önce Intel web sitesinden indirin ve ardından şu dosyayı yükleyin: intel_sdk_for_ocl_applications_2013_r2_runtime_x64_setup.msi.
Çok teşekkürler - yardımcı oldu!
 
GPU'yu test için bir aracı olarak nasıl kullanacağımı söyleyebilir misiniz, çünkü her şey yüklü (OpenCL sürücüleri), terminal GPU'yu buluyor, ancak test cihazındaki aracılar listesinde değil, sadece 2 CPU çekirdeği var?
 

MetaTrader ve OpenCL özelliği hakkında hala gerçekten bir şey anlamadım.......
Bildiğim kadarıyla OpenCL işlevi, PC işlemcisini VGA GPU işlemcisiyle paylaşmaktır. (çoğunlukla oyun / fotoğraf düzenleme için).... amaç PC işlemcisinin çok fazla çalışmamasını sağlamaktır.

OpenCL ve MetaTrader 5 hakkında bazı referanslar okudum,,, ama çoğunlukla komut dosyası içeriyor,
maalesef kodlama hakkında hiçbir şey bilmiyorum,,,,, ve ne kadar çok okursam o kadar başım dönüyor.


Benim Sorum:....
1. Herhangi bir EA kullanmıyorum ve sadece BollingerBand & Stochastic göstergesini kullanıyorum.....
MetaTrader 5'im OpenCL özelliği aktifse, PC İşlemci kullanımını yaklaşık% 50'ye düşürebilir mi?

2. 8 farklı 'MetaTrader 5' (OpenCL aktifken) çalıştırırsanız, gerçekten daha hafif hissediyor ve bilgisayarı yavaşlatmıyor mu?

Cevabı bilen varsa, lütfen basit İngilizce ile açıklayın.

 
stivy007:
GPU'yu test için bir aracı olarak nasıl kullanacağımı söyleyebilir misiniz, çünkü her şey yüklü (OpenCL sürücüleri), terminal GPU'yu buluyor, ancak test cihazındaki aracılar listesinde mevcut değil, sadece 2 CPU çekirdeği var mı?
hiçbir şekilde. sadece destekli özel olarak yazılmış danışmanlar olmalı.
 

OpenCL için basit bir kodun neden işlemcide çalıştığını, ancak video sürücüsünün ekran kartında çöktüğünü bilen var mı?

İç döngüyü kaldırırsanız, ekran kartında sorunsuz çalışır.

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

input int _device = 0;        /// OpenCL cihaz numarası 

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 );
}//+------------------------------------------------------------------+
 

Gösterge veya mum veya grafikte bulunan herhangi bir özelliği GPU'ya aktarabilir misiniz?

yani RSI veya stokastik veya ichimoku veya mum OHLC'yi alabilir miyim?