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

 
2012.03.08 11:01:12     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      OpenCL init OK!
2012.03.08 11:01:16     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      GPU time = 3962 ms
2012.03.08 11:01:16     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      Соunt inticators = 16; Count history bars = 144000; Count pass = 1024
2012.03.08 11:01:16     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      Result on Gpu МахResult==1.45763 at 821 pass
2012.03.08 11:07:01     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      CPU time = 345465 ms
2012.03.08 11:07:01     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      Соunt inticators = 16; Count history bars = 144000; Count pass = 1024
2012.03.08 11:07:01     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      Result on Cpu МахResult==1.45762 at 821 pass
2012.03.08 11:07:01     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      CpuTime/GpuTime = 87.19459868753155

Encore une fois, papaklass a une vidéo embarquée, j'ai une vidéo discrète, le CPU est le même, la différence est négligeable.

Raraklass quel est votre débit binaire et votre axe ?

 
papaklass:

W7 32bit.

Merci. Moi aussi, ok, je pense que d'ici à ce que j'arrive à OpenCL, tous les bugs seront corrigés et tout fonctionnera bien.
 
MetaDriver:

...

Je ne vais pas poster le code source par cupidité, mais pour ceux qui veulent l'essayer sur leur propre matériel, il y a un ex5 dans le trailer.

C'est bon, j'arrête. Je suis sorti, et l'entrée est fermée à la modification. ))

FE      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       14:55:06        OpenCL init OK!
ED      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       14:55:10        GPU time = 3946 ms
LS      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       14:55:10        Соunt inticators = 16; Count history bars = 144000; Count pass = 1024
KS      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       14:55:10        Result on Gpu МахResult==0.0 at 0 pass
GK      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       15:01:07        CPU time = 356587 ms
HI      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       15:01:07        Соunt inticators = 16; Count history bars = 144000; Count pass = 1024
HI      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       15:01:07        Result on Cpu МахResult==1.05885 at 866 pass
KM      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       15:01:07        CpuTime/GpuTime = 90.36670045615813

Si vous avez une minute à perdre, vous pouvez modifier ex5 pour mon canasson. )) Eh bien, faites des passes plus petites, par exemple, 512, ou des barres 100000. Si je ne le fais pas, je ne le fais pas. Je devrai tout étudier plus tard de toute façon. )) Vous m'avez déjà donné de nombreux exemples à étudier. Merci.

 
tol64:

Ça y est, j'ai dépassé les bornes. Je suis dehors et le bricolage de l'entrée est fermé. ))

Si vous avez un peu de temps libre, vous pouvez corriger ex5 pour mon canasson. )) Faites moins de passes, par exemple, 512, ou des barres 100000........................ Merci.

Nivapros.

2012.03.08 16:37:13    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    CpuTime/GpuTime = 191.7058823529412
2012.03.08 16:37:13    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    Result on Cpu МахResult==1.16557 at 228 pass
2012.03.08 16:37:13    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    Соunt inticators = 16; Count history bars = 100000; Count pass = 256
2012.03.08 16:37:13    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    CPU time = 35849 ms
2012.03.08 16:36:37    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    Result on Gpu МахResult==1.16557 at 228 pass
2012.03.08 16:36:37    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    Соunt inticators = 16; Count history bars = 100000; Count pass = 256
2012.03.08 16:36:37    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    GPU time = 187 ms
2012.03.08 16:36:37    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    OpenCL init OK!

--

Au fait, crapaud, le code CL est toujours disponible gratuitement.

Je peux même le commenter en détail si quelqu'un a des questions.

Il s'appelle cl_ParallelTester_00-02-(16x7x3).cl après avoir exécuté le script.

 
MetaDriver:

Nivapros.

Au fait, crapaud, le code CL est toujours disponible gratuitement.

Il s'appelle cl_ParallelTester_00-02-(16x7x3).cl après avoir exécuté le script.

Malheureusement, même cette variante fait exploser le cerveau de mon ordinateur portable. )))

Au début, j'ai lancé l'ancienne variante par erreur et j'ai cru que la vie était finie car tout l'écran était couvert de "neige". Et même la fermeture du terminal n'a pas aidé. Mais le redémarrage a aidé et la vie m'est revenue. Lorsque cela s'est produit, tel un véritable héros de l'Ouest, j'ai réussi à appuyer sur PrtSc et à capturer le spectacle de la lumière. Je ne pensais pas que ça marcherait, mais ça a marché. Voici à quoi ça ressemblait :

//---

C'est comme ça qu'ils sont, des gâteaux savoureux de Vladimir Gomonov. C'était intéressant. )))

 
tol64:

1. Malheureusement, même cette option fait perdre la tête à mon ordinateur portable. )))

2) Et au début, par erreur, j'ai lancé l'ancienne variante et j'ai cru que la vie était finie, car tout l'écran était couvert de "neige".

1. solvable. Voici une autre variante. 50000 bars x 128 passages.

// Encore mieux qu'avant - j'ai ajouté une fonction d'activation échelonnée au réseau neuronal.

// (la version précédente était linéaire, ce qui sur les maillages réels est plutôt inutile)

2... Ça arrive quand on surcharge le GPU. J'en ai eu plus que ça. ;-)

 
MetaDriver:

Il peut être résolu. Voici une autre option. 50 000 barres x 128 passages

// Encore mieux qu'avant - ajout d'une fonction d'activation échelonnée au réseau neuronal.

// (la version précédente était linéaire, ce qui sur les maillages réels est plutôt inutile)

Merci. Voici le résultat :

OR      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:08        OpenCL init OK!
DD      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:11        GPU time = 2216 ms
PR      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:11        Соunt inticators = 16; Count history bars = 50000; Count pass = 128
EQ      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:11        Result on Gpu МахResult==3.56957 at 14 pass
QI      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:29        CPU time = 17894 ms
GH      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:29        Соunt inticators = 16; Count history bars = 50000; Count pass = 128
FJ      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:29        Result on Cpu МахResult==3.56957 at 14 pass
OL      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:29        CpuTime/GpuTime = 8.074909747292418

//---

Voici une question (aux développeurs probablement plus). Pourquoi les variantes précédentes ont-elles un tel effet tueur sur la carte ? Au fait, la fougère de Barnsley finit aussi par s'écraser sur moi lorsque je zoome en profondeur. Ce problème est-il résolu d'une manière ou d'une autre dans la programmation ou le mécanisme du terminal sera-t-il éventuellement capable de le contrôler ? Je veux dire, il ne devrait pas y avoir de crash, il devrait juste y avoir un temps de calcul plus long.

 
tol64:

Merci. Voici le résultat :

//---

Voici une question (probablement plus destinée aux développeurs). Pourquoi les options précédentes sont-elles si meurtrières sur la carte ? Au fait, la fougère de Barnsley finit aussi par s'écraser sur moi lorsque je zoome en profondeur. Ce problème est-il résolu d'une manière ou d'une autre dans la programmation ou le mécanisme du terminal sera-t-il éventuellement capable de le contrôler ? Je veux dire qu'il ne devrait pas y avoir de crash, il devrait juste y avoir un temps de calcul plus long.

S'il vous plaît.

--

Cela peut sembler inattendu, mais je suis fortement opposé au contrôle par le terminal - cela ralentira les contrôles.

Et ce malgré le fait que ma fougère avait déchiré le conducteur de la bande vidéo du tout au tout avec un fort upscaling.

// Vrai, le système ne s'est pas planté - le pilote a redémarré de lui-même avec un message d'erreur critique.

// Mais le terminal s'est bloqué - j'ai dû le tuer à partir du gestionnaire de tâches.

Il faudrait plutôt créer la fonction GPU_Info(int GPU_PARAM_xxx) qui récupère les informations système sur la carte vidéo, y compris la quantité totale maximale de tampons autorisée pour une tâche, afin que le programmeur puisse lui-même veiller à ne pas dépasser les limites.

Документация по MQL5: Программы MQL5 / Ошибки выполнения
Документация по MQL5: Программы MQL5 / Ошибки выполнения
  • www.mql5.com
Программы MQL5 / Ошибки выполнения - Документация по MQL5
 
MetaDriver:

Il faudrait plutôt créer la fonction GPU_Info(int GPU_PARAM_xxx) qui récupère les informations système sur la carte vidéo, y compris la quantité maximale de tampons pour une tâche, afin que le programmeur puisse lui-même veiller à ne pas dépasser les limites.

Votre suggestion est meilleure, mais en principe dans la même veine - Contrôle. Certains utilisateurs peuvent avoir des cheveux gris avant d'avoir dansé de la sorte ou avoir des crises de colère. Sur qui tout cela sera déversé alors. C'est vrai, les programmeurs. Il y aura plus de travail pour l'arbitrage. Et personne n'en a besoin. )))
 

Lien depuis le post d'AlexEro sur "quaternaire" : Tableau de toutes les cartes vidéo AMD plus ou moins modernes.

Si vous êtes intéressé par la prise en charge de la double précision dans les calculs, consultez la rubrique FP64 (Double Précision) - calculs en virgule flottante de double précision. Elle est avant-dernière du tableau. S'il y a un "-", cela signifie qu'il n'est pas pris en charge.