Diskussion zum Artikel "Wie Sie OpenCl öffnen und für Kalkulationen verwenden." - Seite 5

 

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Diskussion über den Artikel "Wie man OpenCL in Berechnungen installiert und verwendet"

MetaDriver, 2013.11.27 23:23

...

Einige Bewertungen sind bei dir verrückt. oder schief gezählt. Hier sind meine heutigen Bewertungen:

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)

Ich glaube nicht, dass es so einen Unterschied in den Bewertungen gibt, hier stimmt etwas nicht.

Ich habe die Treiber neu installiert und jetzt ist der Unterschied noch größer. Im Terminalprotokoll ist die CPU-Bewertung auf 130 gestiegen (die Grafikkarte ist auch ungefähr gleich). Aber im Profil im Abschnitt Agenten (mit der Cloud verbundene Agenten) ist die Leistung im Durchschnitt ~170 auf allen Kernen (maximal 183).

Warum ein solcher Unterschied, den ich nicht weiß...

 
tol64:

Habe die Treiber neu installiert und jetzt ist der Unterschied noch größer. Im Terminalprotokoll ist die CPU-Bewertung bis zu 130 (auf der Grafikkarte ist es auch etwa das gleiche). Aber im Profil im Abschnitt Agenten (Agenten mit der Cloud verbunden) ist die Bewertung ~170 im Durchschnitt auf allen Kernen (maximal 183).

Warum ein solcher Unterschied weiß ich nicht...

Nein, Agenten sind ein anderes Lied, dort werden die Ratings für normale (nicht OpenCL) Berechnungen berechnet, d.h. sie werden in anderen relativen Einheiten berechnet.

Das mit den Treibern verstehe ich. Ich bin immer noch langsam dabei, meine neu zu installieren - ich hatte letztes Jahr Probleme mit der Neuinstallation von Treibern. Ich habe es gerade so geschafft, ohne das System neu zu installieren.

 

Intel® SDK für OpenCL*-Anwendungen 2013 - nicht auf meinem PC installiert:

Bitte sagen Sie mir, wo ich klicken muss :) - Win 7 x64

 
MigVRN:

Intel® SDK für OpenCL*-Anwendungen 2013 - nicht auf meinem PC installiert:

Bitte sagen Sie mir, wo ich klicken muss :) - Win 7 x64

Laden Sie zuerst von der Intel-Website herunter und installieren Sie dann diese Datei: intel_sdk_for_ocl_applications_2013_r2_runtime_x64_setup.msi.
 
tol64:
Laden Sie zuerst von der Intel-Website herunter und installieren Sie dann diese Datei: intel_sdk_for_ocl_applications_2013_r2_runtime_x64_setup.msi.
Vielen Dank - es hat geholfen!
 
Können Sie mir sagen, wie man GPU als Agent für die Prüfung zu verwenden, weil alles installiert ist (OpenCL-Treiber), das Terminal findet GPU, aber in der Liste der Agenten in der Tester ist es nicht, nur 2 CPU-Kerne?
 

Ich habe immer noch nicht wirklich über MetaTrader & OpenCL Funktion verstanden.......
Soweit ich weiß, dient OpenCL dazu, den PC-Prozessor mit dem VGA-GPU-Prozessor zu teilen. (vor allem für Spiele/Fotobearbeitung).... der Punkt ist, um PC-Prozessor nicht zu hart arbeiten.

Ich habe einige Referenzen über OpenCL und MetaTrader 5 gelesen,,, aber die meisten enthalten Skripting,
leider weiß ich nichts über Coding,,,,, und je mehr ich lese, desto mehr wird mir schwindelig.


Meine Frage:....
1. Ich benutze keinen EA und nur BollingerBand & Stochastic Indikator.....
wenn mein MetaTrader 5 mit seiner OpenCL Funktion aktiviert ist, ist er in der Lage, die PC Prozessorauslastung auf etwa 50% zu reduzieren?

2. Wenn ich 8 verschiedene 'MetaTrader 5' (mit aktivem OpenCL) laufen lasse, fühlt es sich dann wirklich leichter an und verlangsamt den PC nicht?

Wenn jemand die Antwort kennt, bitte mit einfachem Englisch erklären.

 
stivy007:
Könnten Sie mir sagen, wie man GPU als Agent für die Prüfung zu verwenden, weil alles installiert ist (OpenCL-Treiber), findet das Terminal GPU, aber in der Liste der Agenten in der Tester ist es nicht vorhanden, nur 2 CPU-Kerne?
keine Möglichkeit. Es sollte nur speziell geschriebene Berater mit Unterstützung sein.
 

Weiß jemand, warum ein einfacher Code für OpenCL auf dem Prozessor funktioniert, aber der Grafiktreiber auf der Grafikkarte abstürzt?

Wenn man die innere Schleife entfernt, funktioniert es auf der Grafikkarte ohne Probleme.

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

input int _device = 0;        /// OpenCL-Gerätenummer 

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

Können Sie Indikator oder Kerze oder alle Eigenschaften im Diagramm in der GPU gefunden übergeben?

D.h. erhalten Sie den RSI oder Stochastik oder Ichimoku oder Kerze OHLC?