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