Discussion de l'article "Comment installer et utiliser OpenCL pour les calculs" - page 5

 

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading

Discussion autour de l'article "Comment installer et utiliser OpenCL dans les calculs"

MetaDriver, 2013.11.27 23:23

...

Certains ratings sont fous chez vous. ou comptés de travers. voici mes ratings d'aujourd'hui :

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)

Je ne crois pas à une telle différence d'évaluation, il y a un problème.

J'ai réinstallé les pilotes et la différence est encore plus grande. Dans le journal du terminal, l'évaluation du CPU est de 130 (la carte vidéo est à peu près la même). Mais dans le profil, dans la section Agents (agents connectés au cloud), l'évaluation est de ~170 en moyenne sur tous les cœurs (maximum 183).

Je ne sais pas pourquoi une telle différence...

 
tol64:

J'ai réinstallé les pilotes et la différence est encore plus grande. Dans le journal du terminal, l'évaluation du CPU est de 130 (sur la carte vidéo, c'est à peu près la même chose). Mais dans le profil, dans la section Agents (agents connectés au nuage), l'évaluation est de ~170 en moyenne sur tous les cœurs (maximum 183).

Pourquoi une telle différence, je ne sais pas...

Non, les agents sont une autre histoire, les notes y sont calculées pour des calculs ordinaires (pas OpenCL), c'est à dire qu'elles sont calculées dans d'autres unités relatives.

Je comprends pour les pilotes. Je tarde encore à réinstaller les miens - j'ai eu des problèmes pour réinstaller les pilotes l'année dernière. J'ai réussi de justesse à ne pas réinstaller le système.

 

Intel® SDK for OpenCL* Applications 2013 - non installé sur mon PC :

Veuillez m'indiquer où cliquer :) - Win 7 x64

 
MigVRN:

Intel® SDK for OpenCL* Applications 2013 - non installé sur mon PC :

Veuillez m'indiquer où cliquer :) - Win 7 x64

Téléchargez d'abord depuis le site d'Intel puis installez ce fichier : intel_sdk_for_ocl_applications_2013_r2_runtime_x64_setup.msi.
 
tol64:
Téléchargez d'abord sur le site d'Intel et installez ensuite ce fichier : intel_sdk_for_ocl_applications_2013_r2_runtime_x64_setup.msi.
Merci beaucoup - ça m'a aidé !
 
Pouvez-vous me dire comment utiliser le GPU comme agent pour les tests, car tout est installé (pilotes OpenCL), le terminal trouve le GPU, mais dans la liste des agents dans le testeur il n'y en a pas, seulement 2 cœurs de CPU ?
 

Je n'ai toujours pas compris la fonctionnalité MetaTrader & OpenCL.......
Pour autant que je sache, la fonction OpenCL consiste à partager le processeur du PC avec le processeur du GPU VGA. (principalement pour les jeux et l'édition de photos) .... Le but est de faire en sorte que le processeur du PC ne travaille pas trop.

J'ai lu quelques références sur OpenCL et MetaTrader 5,,, mais elles contiennent surtout des scripts,
malheureusement je ne connais rien au codage,,,,, et plus je lis, plus j'ai le vertige.


Ma question : ....
1. Je n'utilise pas d'EA et j'utilise seulement les indicateurs BollingerBand et Stochastic.....
si mon MetaTrader 5 avec sa fonction OpenCL active, est-il capable de réduire l'utilisation du processeur du PC à environ 50% ?

2. si je fais tourner 8 'MetaTrader 5' différents (avec OpenCL actif), est-ce qu'ils sont vraiment plus légers et ne ralentissent pas le PC ?

Si quelqu'un connaît la réponse, veuillez l'expliquer avec un anglais simple.

 
stivy007:
Pourriez-vous me dire comment utiliser le GPU comme agent pour les tests, car tout est installé (pilotes OpenCL), le terminal trouve le GPU, mais dans la liste des agents dans le testeur il n'est pas présent, seulement 2 cœurs de CPU ?
Pas question. Il faudrait juste des conseillers spécialement écrits avec un support.
 

Quelqu'un sait-il pourquoi un code simple pour OpenCL fonctionne sur le processeur, mais que le pilote vidéo plante sur la carte vidéo ?

Si vous supprimez la boucle interne, le code fonctionne sans problème sur la carte vidéo.

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

input int _device = 0;        /// Numéro de périphérique 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 );
}//+------------------------------------------------------------------+
 

Pouvez-vous transférer un indicateur, une bougie ou toute autre propriété trouvée dans le graphique vers le GPU ?

Par exemple, obtenir le RSI ou le stochastique ou l'ichimoku ou la bougie OHLC ?