Discussion de l'article "OpenCL : De la programmation naïve à une programmation plus perspicace"

 

Un nouvel article OpenCL : De la programmation naïve à une programmation plus perspicace a été publié :

Cet article se concentre sur certaines capacités d'optimisation qui s'ouvrent lorsqu'au moins une certaine considération est accordée au matériel sous-jacent sur lequel le noyau OpenCL est exécuté. Les chiffres obtenus sont loin d'être des valeurs plafonds mais même ils suggèrent qu'avoir les ressources existantes disponibles ici et maintenant (l'API OpenCL telle qu'implémentée par les développeurs du terminal ne permet pas de contrôler certains paramètres importants pour l'optimisation - notamment, la taille du groupe de travail ), le gain en performance par rapport à l'exécution du programme hôte est très important.

D'une manière générale, les systèmes de mémoire diffèrent largement les uns des autres selon les plates-formes informatiques. Par exemple, tous les CPU modernes prennent en charge la mise en cache automatique des données, contrairement aux GPU où ce n'est pas toujours le cas.

Pour assurer la portabilité du code, un modèle de mémoire abstrait est adopté dans OpenCL que les programmeurs ainsi que les fournisseurs qui doivent implémenter ce modèle sur du matériel réel peuvent utiliser. La mémoire telle que définie dans OpenCL peut être illustrée de manière théorique dans la figure ci-dessous :

Le Modèle de Mémoire OpenCL

Fig. 1. Le modèle de Mémoire OpenCL

Auteur : Sceptic Philozoff

 
Pouvez-vous annoncer la liste complète des articles et l'ordre approximatif dans lequel ils seront publiés ?
 
Interesting: Puis-je annoncer la liste complète des articles et l'ordre approximatif de leur parution ?

Non, vous ne pouvez pas - si vous voulez savoir ce que j'écrirai d'autre. Je ne sais pas grand-chose moi-même.

Et certaines fonctionnalités de l' API OpenCL de MQL5 sont encore manquantes. Mais elles le seront, il n'y a pas moyen de s'en passer.

 
Mathemat:

Non, vous ne pouvez pas - si vous voulez dire ce que je vais écrire d'autre. Je ne sais pas grand-chose moi-même.

Et certaines fonctionnalités de l'API OpenCL de MQL5 sont encore manquantes. Mais elles le seront, nous ne pouvons pas nous en passer.

Je vois, merci.
 

Merci beaucoup, Alexey.

L'article s'est avéré extrêmement instructif pour moi, ce à quoi, franchement, je ne m'attendais pas. J'ai intuitivement ressenti l'idée d'un accès cohérent à la mémoire, mais je n'ai jamais essayé de la formaliser. Mais ici, tout est décortiqué et exposé. Génial !

Heureusement, le réexamen de mon code du point de vue de la cohérence d'accès a montré qu'il est suffisamment optimal, ce qui a flatté mon ego, bien qu'il s'agisse en fait d'une simple conséquence d'une coïncidence (spécificités de mes tâches précédentes) ;-) Mais pour l'avenir, j'ai prévu de suivre attentivement la cohérence des accès à la mémoire à toutes les étapes de la conception du noyau.

--

Le style de l'article en général m'a conduit à l'admiration : il est rare que des articles sur mql-resources (et pas seulement !) allient détails et respect de l'intellect du lecteur. Pour réaliser un tel style, il faut un sens raffiné des proportions et un sens réaliste et précis des limites de la conscience du public (à la limite du contact télépathique). C'est vraiment super. Merci encore !

 

Les remerciements que je dois te faire, Vladimir, tu es le seul à les connaître. Tu m'as vraiment aidé non seulement lorsqu'il fallait faire fonctionner quelque chose sur ta carte, mais aussi pour le codage en général. L'expérience et les connaissances d'un professionnel valent beaucoup !

P.S. D'une certaine manière, cette image me rappelle la carte de la Russie...

 

Mathemat, merci à vous et à votre associé MetaDriver pour cet article. Cela faisait longtemps que je n'avais pas été aussi content après l'avoir lu :-))))

Bien sûr, beaucoup de choses ne sont pas encore claires... Je vais voir...

 
denkir: Bien sûr, beaucoup de choses ne sont pas encore claires... Je vais écrire...

Commencez par le premier, le lien se trouve dans la première phrase du deuxième article. Pour maîtriser ce type de matériel, il faut une certaine progressivité et du temps pour mettre tout ce fatras dans sa tête et le digérer.

Plus tard, ce sera encore plus difficile.

 
Mathemat:
Commencez par le premier, le lien se trouve dans la première phrase du deuxième article. Pour maîtriser ce genre de matériel, il faut y aller progressivement et prendre le temps de se mettre toute cette bouillie dans la tête et de la digérer.

Oui, c'est ce que j'ai fait...

Je pense qu'il faudrait davantage d'exemples simples... et liés d'une manière ou d'une autre à la négociation... c'est la première impression....

 
denkir: Je pense que vous avez besoin d'exemples plus simples... et liés d'une manière ou d'une autre au commerce... comme une première impression....

Vous pourriez commencer tout de suite avec la nervosité. Il est clairement lié au commerce. Cependant, je ne comprends rien aux nervosets moi-même, mais après quelques jours, je comprendrais les bases.

Pensez-vous que ce serait plus facile qu'un simple calcul de pi - même sans tampons d'entrée ?

J'en doute.

Oui, c'est ce que j'ai fait...

Chacun a sa propre façon d'assimiler de nouvelles informations. Pour ma part, je préfère ne pas me contenter de lire, mais commencer à coder tout de suite. Sans pratique, ces informations resteront définitivement non apprises.

 
Mathemat:

Vous pouvez commencer par la nervosité. Elle est manifestement liée à la négociation. Cependant, je ne comprends rien aux grilles de nerfs, mais après quelques jours, je comprendrais les bases.

Pensez-vous que ce serait plus facile qu'un simple calcul de pi - même sans tampons d'entrée ?

J'en doute...

Mathemat, je ne considère pas les réseaux neuronaux comme un exemple simple :-))))

L'exemple de PI est très bon, imho ...

Vous pourriez ajouter quelques calculs statistiques, par exemple. Par exemple. Prenez l'historique des cotations pour tous les instruments dans le terminal. Synchroniser les cotations. Ce sera un tableau à deux dimensions. Il y aura probablement plusieurs milliers de chaînes.... Calculer les mouvements des différentes périodes pour chaque instrument. Le tableau va déjà grossir plusieurs fois. Et voir à quelle vitesse OpenCL peut faire le calcul.... c'est ce que je pense pour l'instant...