OpenCL: test di implementazione interna in MQL5 - pagina 43

 
Mathemat:
E riavviato. Stessa cosa: OpenCL-Z non vede la CPU come un dispositivo. Non vede assolutamente nulla.
Non è convincente. Esegui uno script OpenCL o qualcosa del genere. OpenCL-Z non è un criterio di verità.
 
MetaDriver: Non è convincente. Esegui uno script OpenCL di qualche tipo. OpenCL-Z non è un criterio di verità.

Sì, ho provato, MT5 non ha nemmeno una linea su OpenCL all'avvio. Una volta c'era, ed era una garanzia di esecuzione del codice OpenCL.

fyords : uso Your Uninstaller! PRO per pulire anche il registro.

E se provate a cancellare il processore del kernel in gestione dispositivi, poi riavviate, Windows metterà dei nuovi driver per la CPU, forse OpenCL si riprenderà.

Lo proverò come ultima risorsa. Non mi piace nessun software che passa attraverso il registro.

Oh, una nuova idea! Come si rimuovono i kernel dal dispatcher?

joo: Vai in modalità provvisoria e prova a rimuovere manualmente i rami nel registro con qualsiasi menzione di OpenCL. Poi tornate alla modalità normale e installate di nuovo il driver.

Hehe, sono già andati...

P.S. È finalmente su.

 
Mathemat:
...

Oh, una nuova idea! E come faccio a disinstallare i core dal manager?

...

Come al solito clic destro->disinstalla sul kernel, poi ti chiederà di riavviare - no, tutti i kernel devono essere disinstallati e poi riavviati

Urrà compagni!!! :)

 
fyords: Come al solito clic destro su kernel->uninstall, poi chiederà di riavviare - no, tutti i kernel dovrebbero essere disinstallati e poi riavviati

Dov'è questo kernel nel manager - quale processo?

Sì, ho capito. Ma non si è arrivati a questo. Come ho fatto a cancellare tutto completamente non l'ho ancora capito. Probabilmente perché ho disinstallato AMD APP SDK non da Windows, ma con l'installatore AMD stesso...

 
Mathemat:
E dov'è questo kernel in Gestione dispositivi - quale processo?
In Gestione dispositivi (in Risorse del computer con il tasto destro del mouse->Gestione->Gestione dispositivi)
 

Esecuzione di _Tast_Mand. Beh, ho un tempo record (con un buffer di 480):

2012.03.22 01:31:21    Tast_Mand_ (EURUSD,H1)    54741 msec

L'aumento del buffer non causa alcun calo. La pietra si scalda un po' e mangia ancora i suoi 20 watt, anche se entrambi i core sono al 100%.

 

Mathemat:

... Mangia ancora 20 watt...

Se non mi sbaglio, hai un Pentium G840 @ 2,8 GHz. Da quando mangia 20 watt? Non sono 65 watt?
 
fyords: Se non mi sbaglio, hai un Pentium G840 @ 2,8 GHz. E da quando consuma 20 watt? Non sono 65 watt?

Sì, proprio così. Il massimo che ho spremuto è stato di circa 40 watt - su CPUBurn o LinPack.

Intel assegna il TDP come la potenza che si dissipa nel caso peggiore. Non l'ho ancora visto trangugiare più di 25 watt in applicazioni normali. E ora il terminale ha preso quasi il 100% e la pietra si sta lentamente riscaldando (le temperature massime del nucleo sono 54 e 57) e fa il compito con un buffer di 48000.

2 joo: Andrei, pensi che questo codice sia equivalente al tuo o no?

"__kernel void MFractal(                                    \r\n"
"                       __global int *out                   \r\n"
"                      )                                    \r\n"
"  {                                                        \r\n"
"   int i = get_global_id(0);                               \r\n"
"   for(int u=0;u<100000000;u++)                            \r\n"
"   {                                                       \r\n"
"    out[i]+=u;                                             \r\n"
"    bool b=(out[i]<=10000);                                \r\n"
"    out[i]*=(int)b;                                        \r\n"
"   }                                                       \r\n"
"   out[i]+= i;                                             \r\n"
"  }                                                        \r\n";
 
Mathemat:

2 joo: Andrei, pensi che questo codice sia equivalente al tuo o no?

Sembra di sì.

Non sono sicuro, perché cerco di non usare costruzioni complicate (difficili da percepire a occhio), ma probabilmente per niente, perché potrebbe velocizzare il codice.

Il tuo codice dovrebbe probabilmente essere più lento perché la variabile b viene ridichiarata ad ogni iterazione del ciclo.

 
joo: Il vostro codice dovrebbe probabilmente essere più lento, perché la variabile b viene ridichiarata ad ogni iterazione del ciclo.

Sì, è più lento - del 20%.

Ho provato a mettere la dichiarazione all'esterno del ciclo. Ci è voluto un po' meno tempo, ma è riuscito comunque ad andare più lento di prima. È strano, ci siamo liberati di se...