Обсуждение статьи "Как установить и использовать в расчетах OpenCL" - страница 5

 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Обсуждение статьи "Как установить и использовать в расчетах OpenCL"

MetaDriver, 2013.11.27 23:23

...

Чёт какие-то рейтинги бешеные у тебя.  или считаются криво.  Вот мои сегодняшние:

2013.11.28 00:04:42     OpenCL  Device #1: CPU AuthenticAMD AMD Phenom(tm) II X6 1100T 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)

Ну не верю я в такую разницу в рейтингах.  Шо-то тут не так.

Переустановил драйвера и сейчас разница ещё больше. В журнале терминала рейтинг процессора до 130 доходит (на видеокарте также примерно осталось). А вот в профиле в разделе Агенты (подключил агентов к облаку) рейтинг в среднем ~170 на всех ядрах (максимум 183). 

Почему такая разница не знаю... 

 
tol64:

Переустановил драйвера и сейчас разница ещё больше. В журнале терминала рейтинг процессора до 130 доходит (на видеокарте также примерно осталось). А вот в профиле в разделе Агенты (подключил агентов к облаку) рейтинг в среднем ~170 на всех ядрах (максимум 183). 

Почему такая разница не знаю... 

Не, ну агенты это другая песня, там рейтинги для обычных (не OpenCL) вычислений расчитываются.  Т.е. они вообще в принципе в других относительных единицах считаются.

А про драйвера понял.  Я пока торможу свои переустанавливать - были уже в прошлом году проблемы при переустановке дров.  Еле-еле обошёлся без переустановки системы.

 

Intel® SDK for OpenCL* Applications 2013 - не устанавливается на бук:

Подскажите куда жать :) - ОС Win 7 x64

 
MigVRN:

Intel® SDK for OpenCL* Applications 2013 - не устанавливается на бук:

Подскажите куда жать :) - ОС Win 7 x64

Скачайте сначала с сайта Intel и затем установите вот этот файл: intel_sdk_for_ocl_applications_2013_r2_runtime_x64_setup.msi.
 
tol64:
Скачайте сначала с сайта Intel и затем установите вот этот файл: intel_sdk_for_ocl_applications_2013_r2_runtime_x64_setup.msi.
Огромное спасибо - помогло!
 
Подскажите, а как использовать GPU в качестве агента для тестирования, а то все поставил(OpenCL драйверы), терминал GPU находит, но в списке агентов в тестере ее нет, только 2 ядра CPU?
 

Я так и не понял, что такое MetaTrader и функция OpenCL........
Насколько я знаю, функция OpenCL заключается в совместном использовании процессора ПК с процессором VGA GPU. (в основном для игр/редактирования фотографий).... смысл в том, чтобы процессор ПК не работал слишком интенсивно.

Я прочитал несколько ссылок об OpenCL и MetaTrader 5, но в основном они содержат скриптинг,
к сожалению, я ничего не знаю о кодировании,,,,, и чем больше я читаю, тем больше у меня кружится голова.


Мой вопрос:....
1. Я не использую никаких советников и только использую индикатор BollingerBand и Stochastic.....
если мой MetaTrader 5 с активированной функцией OpenCL, может ли он уменьшить использование процессора ПК примерно до 50%?

2. Если запустить 8 разных "MetaTrader 5" (с активным OpenCL), действительно ли они чувствуют себя более легкими и не замедляют работу ПК?

Если кто-то знает ответ, пожалуйста, объясните простым английским языком.

 
stivy007:
Подскажите, а как использовать GPU в качестве агента для тестирования, а то все поставил(OpenCL драйверы), терминал 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?