OpenCL : tests de l'implémentation interne dans MQL5 - page 44
![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
On dirait que oui.
Je ne suis pas sûr, car j'essaie de ne pas utiliser de constructions compliquées (difficiles à percevoir à l'œil nu), mais je ne devrais probablement pas, car cela peut accélérer le code.
Votre code devrait probablement être plus lent, car la variable b est redéclarée à chaque itération de la boucle.
Non, ce n'est pas juste. Tu manipules le code d'Andrei et tu l'accélères.
Qu'est-ce que j'ai fait ?
Qu'attend-on de l'optimiseur ? Réduire les frais généraux tout en gardant des résultats équivalents ! Alors, regardez, ça fait un peu de sous.
:)
// Au fait ! !! Ce code ne fait pas tomber mon pilote même avec #define BUF_SIZE 1024*1024*4 ! !!
// C'est une percée !
;))))
Qu'est-ce que j'ai fait ?
Qu'attend-on de l'optimiseur ? Réduire les frais généraux tout en gardant des résultats équivalents ! Alors, regardez, ça fait un peu de sous.
:)
Est-ce qu'il convient ? Comment avez-vous vérifié ? :O
Comment, comment ! Sur la calculatrice ! J'en ai mis huit en parallèle et j'ai vérifié.
Votre calculatrice ment. :)
Le cycle ajoute 0+1+2+3+...+99999999. Et après chaque 10000 pas, la valeur est 0.
Qu'avez-vous fait ? - Vous avez attribué un numéro de vol et c'est tout. Comment mes résultats peuvent-ils être les mêmes que les vôtres ?
J'ai fait quelques recherches et j'ai soupçonné que ce...
Le problème est que get_global_id() n'est probablement pas une fonction, mais une opération de registre super rapide.
Si quelqu'un en a vraiment besoin et le souhaite, veuillez rapporter les résultats au studio. Cela sera utile.Qu'attend-on de l'optimiseur ? Réduire les frais généraux tout en gardant des résultats équivalents ! Alors, regardez, ça fait un peu de sous.
// Au fait ! !! Ce code ne fait pas tomber mon pilote même avec #define BUF_SIZE 1024*1024*4 ! !!
J'ai fumé un peu plus longtemps et je me suis énervé. D'un autre côté - si le conducteur ne le lâche pas, l'équivalence dans le résultat est déjà incomplète.
Merde... Quelle poisse. :(
Non, vous n'avez pas bien fumé.
1^3 + 2^3 + 3^3 + ... + 1000000000^3 = 1000000000^2 * (1000000000 + 1)^2 / 4
La gauche et la droite sont la même chose, équivalence totale.
Seulement avec l'expression de gauche, vous chaufferez la pierre pendant un temps assez long, tandis qu'avec celle de droite, ce sera presque instantané, le processeur ne s'en rendra pas compte et restera froid.
P.S. J'ai mis à niveau vers OpenCL 1.2 (c'est une version bêta). Veuillez noter le petit ajout après le numéro de version - sse2.
Je ne veux pas dire qu'il s'est amélioré de façon spectaculaire, mais il s'est accéléré lors de certains tests. Disons, sur Tast_Mand_ (bien, tu es un pervers, Andrewha) - 5% à 10%. Juste un peu, mais bien.
Votre calculatrice ment. :)
La boucle ajoute 0+1+2+3+...+99999999. Et après chaque 10000 pas, la valeur est 0.
Qu'avez-vous fait ? - Vous avez attribué un numéro de vol et c'est tout. Alors comment mes résultats peuvent-ils être les mêmes que les vôtres ?
Je vous ai donné presque 24 heures pour reprendre vos esprits. Vous insistez toujours ? :)
Voyons voir :