Discussion de l'article "Comment installer et utiliser OpenCL pour les calculs"

 

Un nouvel article Comment installer et utiliser OpenCL pour les calculs a été publié :

Cela fait plus d'un an que MQL5 a commencé à fournir un support natif pour OpenCL. Cependant, peu d'utilisateurs ont vu la vraie valeur de l'utilisation du calcul parallèle dans leurs Expert Advisors, indicateurs ou scripts. Cet article sert à vous aider à installer et à configurer OpenCL sur votre ordinateur afin que vous puissiez essayer d'utiliser cette technologie dans le terminal de trading MetaTrader 5.

Cela fait plus d'un an qu'il est devenu possible d'écrire des programmes pour OpenCL en MQL5. Les entrées de tous les dispositifs OpenCL trouvés peuvent désormais être consultées dans le Journal au lancement du terminal MetaTrader 5, comme indiqué ci-dessous.

Entrées de journal dans le terminal MetaTrader 5 concernant les dispositifs OpenCL trouvés

Dans ce cas, le terminal MetaTrader 5 a détecté 4 méthodes disponibles pour lancer OpenCL directement depuis un programme MQL5 : une carte graphique de NVIDIA (OpenCL 1.1) et une d'AMD (OpenCL 1.2), ainsi que deux processeurs Intel Core-i7 d'utilisation options, selon le pilote installé. Si votre ordinateur dispose déjà d'un dispositif OpenCL approprié version 1.1 ou supérieure, vous pouvez ignorer en toute sécurité la partie description et passer directement à la comparaison des performances pour pouvoir constater par vous-même le gain de performances pour les tâches permettant le calcul parallèle.


Auteur : MetaQuotes

 
Afin de démontrer les avantages de l'utilisation d'OpenCL dans MQL5, le script OpenCL_Sample.mq5 a été écrit, qui calcule les valeurs d'une fonction à partir de deux variables sur un ensemble et affiche le résultat dans la fenêtre graphique<br/ translate="no">.

TC est également une fonction dont le résultat est un indicateur personnalisé. En d'autres termes, l'optimiseur est un calcul des valeurs d'une fonction sur un ensemble donné, comme dans la citation donnée.

Pouvons-nous alors parler de l'opportunité d'un optimiseur OpenCL standard ? Ou y a-t-il des pièges qui ne permettront pas d'obtenir des accélérations aussi importantes (> 2 fois) ?

Je suis encore plus intéressé par le travail de l'optimiseur en mode mat.

 
OpenCL est bien adapté aux cas où il est nécessaire d'effectuer des opérations de calcul uniformes sur un grand ensemble de données. Nous prenons alors un ensemble de valeurs, nous le découpons en morceaux et nous confions chaque morceau à un processeur distinct pour qu'il soit calculé. C'est le gain de temps. Deux articles mentionnés dans cet article décrivent plus en détail la technologie OpenCL.
 

Pouvez-vous expliquer le décodage dans le journal des périphériques trouvés avec le support OpenCL.

Il y a d'abord le numéro du périphérique dans votre cas c'est device#0 puis le nom du périphérique nvidia GTX 580 , la version OpenCL du périphérique, mais ce qui est écrit entre parenthèses n'est pas tout à fait clair. Le nombre d'ALU (pour les cœurs nvidia CODA) ne devrait-il pas être indiqué ? ??? et puis il y a une fréquence incompréhensible, on ne sait pas trop à quoi elle fait référence, généralement la fréquence du cœur vidéo ne dépasse pas 1000 MHz.... Merci de bien vouloir le décrypter.

OpenCL: Мост в параллельные миры
OpenCL: Мост в параллельные миры
  • 2012.05.16
  • Sceptic Philozoff
  • www.mql5.com
В конце января 2012 года компания-разработчик терминала MetaTrader 5 анонсировала нативную поддержку OpenCL в MQL5. В статье на конкретном примере изложены основы программирования на OpenCL в среде MQL5 и приведены несколько примеров "наивной" оптимизации программы по быстродействию.
 

Bonjour à tous.

Pouvez-vous me conseiller sur ce sujet très intéressant :

1. Existe-t-il déjà des Expert Advisors pour le trading qui utilisent OpenCL pour les calculs ?

2. Si plusieurs cartes vidéo sont installées dans le système, seront-elles toutes utilisées pour les calculs ou seulement l'une d'entre elles ?

 

2. Chaque expert ne peut utiliser qu'une seule carte.

Plusieurs experts peuvent utiliser plusieurs dispositifs OpenCL en même temps.

 
Si plusieurs appareils d'un ordinateur peuvent être impliqués dans des calculs OpenCL, seront-ils tous utilisés ou seulement l'un d'entre eux ?
 
paladin800:
Si plusieurs périphériques sur un ordinateur peuvent être impliqués dans des calculs OpenCL, seront-ils tous utilisés ou seulement l'un d'entre eux ?

Il y a déjà eu une réponse ci-dessus

Renat:

2. Chaque Expert Advisor ne peut utiliser qu'une seule carte.

Vous pouvez explicitement spécifier quel périphérique doit être utilisé par un programme MQL5 particulier. Regardez la fonction CLContextCreate
 
sigma7i:

Pouvez-vous expliquer le décodage dans le journal des périphériques trouvés avec le support OpenCL.

Il y a d'abord le numéro du périphérique dans votre cas c'est device#0 puis le nom du périphérique nvidia GTX 580 , la version OpenCL du périphérique, mais ce qui est écrit entre parenthèses n'est pas tout à fait clair. Le nombre d'ALU (pour les cœurs nvidia CODA) ne devrait-il pas être indiqué ? ??? et puis il y a une fréquence incompréhensible, on ne sait pas trop à quoi elle fait référence, généralement la fréquence du cœur vidéo ne dépasse pas 1000 MHz.... Merci de bien vouloir la déchiffrer.

J'ai mal posé les questions, je m'en excuse....

les questions sont basées sur l'image de l'article :

1. que signifie "16 unités" ? Et pourquoi le nombre de cœurs de la carte vidéo n'est-il pas précisé ?

2. Que signifie 1630 MHz ? la fréquence totale de la carte vidéo ou des composants individuels ?

image

 

Tout d'abord, OpenCL est sa propre spécification des méthodes de parallélisme, indépendante de l'implémentation câblée. C'est pourquoi il ne faut pas s'attendre à une coïncidence totale avec les spécifications des GPU.

Les unités ne sont pas des cœurs séparés mais des groupes de cœurs. Les architectures ont des méthodes différentes pour regrouper plusieurs cœurs en unités. Par exemple, NVIDIA peut avoir 8, 32, 48 cœurs (ou plus) dans une unité. En mode CPU, les unités sont comptées comme des cœurs logiques de CPU.

La fréquence est indiquée par le périphérique (carte vidéo, par exemple).

 
L'utilisation d'OpenCL présente un autre avantage : l'exécution du code OpenCL en parallèle avec le code MQL5.

L'appel de la fonction CLExecute n'est qu'un ordre au pilote OpenCL de commencer l'exécution.
L'attente de l'achèvement de la tâche OpenCL se produit lors de l'accès à la file d'attente d'exécution OpenCL, par exemple, lors de l'appel de la fonction CLBufferRead, comme c'est le cas dans cet exemple.


Entre les appels CLExecute et CLBufferRead, vous pouvez effectuer tous les calculs MQL5 qui n'accèdent pas à la file d'attente OpenCL.
OpenCL: Мост в параллельные миры
OpenCL: Мост в параллельные миры
  • 2012.05.16
  • Sceptic Philozoff
  • www.mql5.com
В конце января 2012 года компания-разработчик терминала MetaTrader 5 анонсировала нативную поддержку OpenCL в MQL5. В статье на конкретном примере изложены основы программирования на OpenCL в среде MQL5 и приведены несколько примеров "наивной" оптимизации программы по быстродействию.