OpenCL : tests de l'implémentation interne dans MQL5 - page 52
![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
Je suppose que si nous voulons transmettre un tableau bidimensionnel/multidimensionnel avec des données au GPU, nous pouvons utiliser la représentation des données comme une structure et transmettre la structure ?
J'ai essayé à travers une structure - ça a marché ! Je n'aurais jamais imaginé passer des tableaux multidimensionnels de cette façon moi-même :) Merci !
J'ai joint un petit exemple, utilisant des tableaux à deux dimensions - cela fonctionne très bien. L'exemple est un peu tordu - mais en général, il démontre assez bien la possibilité d'une telle perversion :)
PS : Ton UGA + OpenCL - c'est juste pas d'émotions :) Comment on vivait avant - c'est flippant de se souvenir...
PS : Votre UGA + OpenCL n'est pas du tout une émotion. :) La façon dont nous vivions autrefois est étrange à se rappeler...
CL_DEVICE_ANY et CL_DEVICE_GPU sont-ils obsolètes ?
CL_USE_ANY et CL_USE_GPU_ONLY sont-ils maintenant pertinents ?
CL_DEVICE_ANY et CL_DEVICE_GPU sont-ils obsolètes ?
CL_USE_ANY et CL_USE_GPU_ONLY sont-ils maintenant pertinents ?
Oui.
J'ai découvert par la méthode du Prof. Tychkov un mystérieux dispositif 1 dans mon ordinateur, qui est plus rapide que CL_USE_ANY et même plus rapide que CL_USE_GPU_ONLY.
Qu'est-ce que c'est ? :O
J'ai trouvé un mystérieux dispositif 1 dans mon ordinateur, en utilisant la méthode du professeur Tychkov, qui fonctionne plus vite que CL_USE_ANY et même plus vite que CL_USE_GPU_ONLY.
Qu'est-ce que c'est ? :O
Des statistiques sur le tableau. Pour tous les appareils. :)
CL_USE_ANY
2012.04.12 23:27:29 Struct_OpenCL (GBPUSD,H1) Différence de calcul entre GPY et CPY : 0.0
2012.04.12 23:27:28 Struct_OpenCL (GBPUSD,H1) CPY/GPU= 1.326
2012.04.12 23:27:28 Struct_OpenCL (GBPUSD,H1) Temps GPU = 141 ms
2012.04.12 23:27:28 Struct_OpenCL (GBPUSD,H1) Temps SPU = 187 ms
CL_USE_GPU_ONLY
2012.04.12 23:29:11 Struct_OpenCL (GBPUSD,H1) Différence de calcul entre GPY et CPY : 0.0
2012.04.12 23:29:11 Struct_OpenCL (GBPUSD,H1) CPY/GPU= 1.376
2012.04.12 23:29:11 Struct_OpenCL (GBPUSD,H1) Temps GPU = 125 ms
2012.04.12 23:29:11 Struct_OpenCL (GBPUSD,H1) Temps SPU = 172 ms
1
2012.04.12 23:30:12 Struct_OpenCL (GBPUSD,H1) Différence de calcul entre GPY et CPY : 0.0
2012.04.12 23:30:12 Struct_OpenCL (GBPUSD,H1) CPY/GPU= 2.397
2012.04.12 23:30:12 Struct_OpenCL (GBPUSD,H1) Temps GPU = 78 ms
2012.04.12 23:30:12 Struct_OpenCL (GBPUSD,H1) Temps SPU = 187 ms
Je recommande à tout le monde d'essayer de la même manière que je l'ai fait, il est tout à fait possible que vous trouviez un appareil plus rapide que les graphiques discrets impuissants. :D
PS. Je soupçonne que CL_USE_ANY et CL_USE_GPU_ONLY sont les mêmes - calcul sur le CPU, mais le dispositif 1 est mon GPU. C'est une confusion élémentaire dans les constantes standard.
Je recommande à tout le monde de s'amuser avec comme je l'ai fait, vous trouverez probablement un appareil plus rapide que les graphiques discrets inutiles. :D
PS. Je soupçonne que CL_USE_ANY et CL_USE_GPU_ONLY sont une seule et même chose - calcul du CPU, mais le dispositif 1 est mon GPU. C'est une confusion élémentaire dans les constantes standard.
Voilà ce que j'ai lu ! Ce n'était pas dans l'aide du terminal ! J'ai modifié le code pour refléter ces changements. Voyez ce que vous obtenez. Je vois ça comme ça :
23:17:00 Temps SPU = 1155 ms
23:17:01 Nombre total de périphériques OpenCL activés : 2
23:17:02 Temps GPU #0 = 249 ms
23:17:02 CPY/GPU #0 = 4.639
23:17:03 Temps GPU #1 = 265 ms
23:17:03 CPY/GPU #1= 4.358
CPU : véritable CPU Intel(R) Core(TM) i3-2310M @ 2.10GHz avec OpenCL 1.1 (4 unités, 2095 MHz, 5990 Mb, version 2.0)
Essayez d'utiliser cette structure, cela n'a pas fonctionné pour moi (je soupçonne que la deuxième dimension doit avoir une taille fixe, c'est pourquoi cela n'a pas fonctionné pour moi) :
Et, pour plus de commodité, une fonction comme celle-ci pour redimensionner les deux dimensions :