Discusión sobre el artículo "Cómo instalar y utilizar OpenCL para efectuar cálculos" - página 5

 

Foro sobre negociación, sistemas automatizados de negociación y prueba de estrategias de negociación

Discusión del artículo "Cómo instalar y utilizar OpenCL en cálculos"

MetaDriver, 2013.11.27 23:23

...

Algunas valoraciones te vuelven loco. o contadas torcidamente. aquí están mis valoraciones de hoy:

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)

No me creo tanta diferencia de valoraciones, algo falla aquí.

He reinstalado los controladores y ahora la diferencia es aún mayor. En el registro de la terminal, la calificación de la CPU es de hasta 130 (la tarjeta de vídeo es también casi la misma). Pero en el perfil en la sección de Agentes (agentes conectados a la nube) la puntuación es ~170 de media en todos los núcleos (máximo 183).

No sé por qué tanta diferencia...

 
tol64:

He vuelto a instalar los controladores y ahora la diferencia es aún mayor. En el registro del terminal la puntuación de la CPU es de hasta 130 (en la tarjeta de vídeo también es más o menos la misma). Pero en el perfil en la sección de Agentes (agentes conectados a la nube) la puntuación es ~170 de media en todos los núcleos (máximo 183).

Por qué tanta diferencia no lo sé...

No, bueno los agentes son otro cantar, las valoraciones para cálculos normales (no OpenCL) se calculan ahí, es decir, se calculan en otras unidades relativas en general.

Entiendo lo de los controladores, yo aún tardo en reinstalar los míos, el año pasado tuve problemas al reinstalar los controladores, apenas lo conseguí sin reinstalar el sistema.

 

Intel® SDK para aplicaciones OpenCL* 2013 - no está instalado en mi PC:

Por favor, dígame dónde hacer clic :) - Win 7 x64

 
MigVRN:

Intel® SDK para aplicaciones OpenCL* 2013 - no está instalado en mi PC:

Por favor, dígame dónde hacer clic :) - Win 7 x64

En primer lugar descargar desde el sitio web de Intel y luego instalar este archivo: intel_sdk_for_ocl_applications_2013_r2_runtime_x64_setup.msi.
 
tol64:
Descargar primero desde el sitio web de Intel y luego instalar este archivo: intel_sdk_for_ocl_applications_2013_r2_runtime_x64_setup.msi.
Muchas gracias, ¡me ha servido de ayuda!
 
Me podeis decir como usar la GPU como agente para las pruebas, porque esta todo instalado (drivers OpenCL), el terminal encuentra la GPU, pero en la lista de agentes del tester no esta, solo 2 cores CPU?
 

Todavía no entiendo muy bien sobre MetaTrader y OpenCL feature.......
Por lo que yo sé, la función OpenCL es compartir el procesador del PC con el procesador GPU VGA. (sobre todo para juegos / edición de fotos).... el punto es hacer que el procesador de PC no trabajar demasiado duro.

He leído algunas referencias sobre OpenCL y MetaTrader 5,,, pero en su mayoría contienen secuencias de comandos,
por desgracia yo no sé nada acerca de la codificación,,,,, y cuanto más leo, más me mareo.


Mi pregunta:....
1. Yo no uso ningún EA y sólo el uso de BollingerBand & indicador estocástico.....
si mi MetaTrader 5 con su función OpenCL activada,, ¿es capaz de disminuir el uso del procesador del PC a alrededor del 50%?

2. Si se ejecuta 8 diferentes 'MetaTrader 5' (con OpenCL activo), ¿es realmente sentir más luz y no ralentizar el PC?

Si alguien sabe la respuesta, Por favor, explique con un inglés sencillo.

 
stivy007:
me podrias decir como usar la GPU como agente para pruebas, porque esta todo instalado (drivers OpenCL), la terminal encuentra la GPU, pero en la lista de agentes en el tester no esta presente, solo 2 cores CPU?
no hay manera. debe ser solo asesores especialmente escritos con soporte.
 

¿Alguien sabe por qué un código sencillo para OpenCL funciona en el procesador, pero el controlador de vídeo falla en la tarjeta de vídeo?

Si eliminas el bucle interno, funciona en la tarjeta de vídeo sin problemas.

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

input int _device = 0;        /// Número de dispositivo 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 );
}//+------------------------------------------------------------------+
 

¿Se puede pasar indicador o vela o cualquier propiedad que se encuentra en el gráfico en la GPU?

es decir, ¿obtener el RSI o estocástico o ichimoku o vela OHLC?