OpenCL : tests de l'implémentation interne dans MQL5 - page 39

 
casinonsk: Le second est toujours à 0 charge.

Et le troisième ? Ou bien n'y en a-t-il pas ?

QE 0 ParallelTester_00-01x__1 (EURUSD,H1) 13:23:02 Count inticators = 16 ; Count history bars = 144000 ; Count pass = 480000

EF 0 ParallelTester_00-01x__1 (EURUSD,H1) 13:23:02 Résultat sur Gpu MachResult==0.0 à 0 passage

J'ai l'impression que le test s'est mal passé. Oh, et réglez Count pass à une valeur plus basse, 1280 est suffisant.

Et où sont les résultats comparatifs CPU vs GPU ?

 
joo:


Au passage 262144, le pilote de la carte vidéo se plante inconsciemment. Cependant, elle se relève immédiatement.

J'ai découvert par la méthode du professeur Tychkov que CountPass ne peut être supérieur à 6628025 avec CountBars 10, sinon le compilateur MQL refuse de compiler et génère une erreur :

inds' - la section des variables globales est trop grande ParallelTester_00-01x.mq5 86 7

Lorsque CountBars est plus petit, le compilateur saute des valeurs encore plus affreuses de CountPas.

2012.03.17 20:40:36     ParallelTester_00-01 x (EURUSD,H1)       Соunt inticators = 16; Count history bars = 10; Count pass = 6628025
2012.03.17 20:40:36     ParallelTester_00-01 x (EURUSD,H1)       GPU time = 717 ms

Oh, mon Dieu !

Comment le compilateur MQL sait-il qu'il n'y a tout simplement pas assez de mémoire sur le GPU (ou pas sur le GPU ???)? - Il semble que le pilote de la carte vidéo se bloque à cause du manque de mémoire.


à Vladimir:

Et pourquoi devrais-je donner à chaque mouche le même tableau (la mémoire est consommée en proportion directe du nombre de CountPass) ? - Laissez-les prendre les données d'un tableau commun.

 
joo:

à Vladimir:

Pourquoi devrais-je donner à chaque mouche le même tableau (la mémoire est consommée en proportion directe du nombre de CountPass) ? - Laissez-les prendre les données d'un tableau commun.

Ils disposent déjà d'un ensemble commun de prix et d'indicateurs.

Et dans le tableau dont la longueur est CountPass, il y a des non-grilles (un paramètre optimisé). Elle est individuelle pour chaque grille.

--

... Mais j'aime ta façon de penser. :)

 
joo:

J'ai découvert par la méthode du professeur Tychkov que CountPass ne peut être supérieur à 6628025 avec CountBars de 10, sinon le compilateur MQL refuse de compiler et génère une erreur :

inds' - la section des variables globales est trop grande ParallelTester_00-01x.mq5 86 7

Lorsque CountBars est plus petit, le compilateur saute des valeurs encore plus affreuses de CountPas.

Oh, mon Dieu !

Comment le compilateur MQL sait-il qu'il n'y a tout simplement pas assez de mémoire sur le GPU (ou pas sur le GPU ???)? - Il semble que le pilote de la carte vidéo va se planter à cause du manque de mémoire.

А ! Il y a donc un plus élémentaire dans mon code (ligne 82).

////////////float nets[sizeof(NETs)];   // Вот так было. В корне неправильно.
////////////float inds[sizeof(Inds)];  

////////////float nets[sizeof(NETs)/sizeof(float)];  // Вот так будет видно в чём была ошибка.
////////////float inds[sizeof(Inds)/sizeof(float)];  // И в принципе будет работать, хотя лучше...
// ...Вот так - правильно и понятно откуда ноги.
float nets[CountPass*CountInd];
float inds[CountInd*CountBars];  

Corrigez-le et obtenez un "boost de mémoire" presque quadruplé .....nasharoo... ! !! :)))))))))))))

// J'ai l'impression d'être le Père Noël dans des moments comme celui-ci... ;)

 
MetaDriver:

// Dans des moments comme celui-ci, je me sens comme le Père Noël... ;)

// Si vous êtes le Père Noël, qui suis-je ?... ;)
 
J'ai regardé le forum anglophone des cinq. Il existe un fil de discussion similaire, mais l'activité et l'intérêt manifestés sont incomparables à ceux du forum russophone.
 
Mathemat:

Et le troisième ? Ou bien n'y en a-t-il pas ?

Il semble que le test ait mal tourné. Et réglez Count pass sur une valeur plus petite, 1280 est suffisant.

Et où sont les résultats comparatifs entre le CPU et le GPU ?

CL 0 ParallelTester_00-01x__1 (EURUSD,H1) 00:02:09 OpenCL init OK !
IH 0 ParallelTester_00-01x__1 (EURUSD,H1) 00:02:09 Temps GPU = 187 ms
FN 0 ParallelTester_00-01x__1 (EURUSD,H1) 00:02:09 Count inticators = 16 ; Count history bars = 144000 ; Count pass = 1280
CL 0 ParallelTester_00-01x__1 (EURUSD,H1) 00:02:09 Résultat sur Gpu MachResult==0.92493 at 1190 pass
 

Vousdevez avoir une fonction MQL qui renvoie la température de la carte vidéo. Sinon, c'est un bon moyen de s'épuiser. Pas sur le vôtre, mais sur celui du client.

// S'il n'y a pas de fonction MQL, vous devrez utiliser une DLL, ce qui n'est pas bon - le marché est coupé et d'autres inconvénients.

 
MetaDriver:

Vous devez avoir une fonction MQL qui renvoie la température de la carte vidéo. Sinon, c'est un bon moyen de s'épuiser. Pas de votre côté, mais de celui du client.
Il devrait également renvoyer la température limite et ralentir les calculs eux-mêmes lorsqu'ils approchent de la température limite. Il existe différentes cartes graphiques et différentes dissipations de chaleur.
 
MetaDriver:

Vousdevez avoir une fonction MQL qui renvoie la température de la carte vidéo. Sinon, c'est un bon moyen de s'épuiser. Pas sur le vôtre, mais sur celui du client.

// S'il n'y a pas de fonction MQL, nous devrons utiliser une DLL, ce qui n'est pas bon - le marché est coupé et d'autres inconvénients.

Les jeux vidéo ne se soucient pas de la température du GPU et le chargent à fond, et rien ne se passe - la carte graphique fonctionne. Et aucun joueur ne songerait à demander à l'éditeur du jeu de ralentir lui-même les FPS pour ne pas gâcher le GPU. L'analogie avec les joueurs est directe - nous avons besoin de vitesse, et la température doit être prise en charge en plus si nécessaire (système de refroidissement supplémentaire).

Ensuite, vous avez également besoin de la fonction MQL qui renvoie la température du CPU. Sinon, le processeur sera brûlé.


FPS si c'est faisable - pourquoi pas ? - Ça ne ferait pas de mal, bien sûr.