L'encyclopédie Wikipédia introduit OpenCL ainsi:
OpenCL (Open Computing Language) est la combinaison d'une API et d'un langage de programmation dérivé du C, proposé comme un standard ouvert par le Khronos Group. OpenCL est conçu pour programmer des systèmes parallèles hétérogènes comprenant par exemple à la fois un CPU multi-cœur et un GPU. OpenCL propose donc un modèle de programmation se situant à l'intersection naissante entre le monde des CPU et des GPU, les premiers étant de plus en plus parallèles, les seconds étant de plus en plus programmables.
Il s'agit donc d'une API permettant d'améliorer les performances algorithmiques en parallélisant les calculs complexes sur les périphériques divers présents de nos jours sur les ordinateurs (CPU, GPU…).
Côté pilotes, le support de cette API sur Linux fut notamment détaillé il y a quelques jours dans un autre article. Si vous êtes plutôt intéressé par le côté "utilisation" d'OpenCL, pour l'intégrer par exemple dans vos propres programmes, la société StreamComputing lance l'initiative "OpenCL training" (en français: "formation OpenCL") proposant une formation gratuite (à distance, par Internet interposé), avec GEGL — le nouveau moteur de traitement d'image de GIMP — comme "support de cours".
La ruse est donc de vous faire contribuer à GEGL tout en vous enseignant la technologie OpenCL. Moi je dis que c'est "double victoire", mais certains pourraient prétendre que les libristes sont fourbes! :P
Offre limitée
Le but de l'initiative est d'enseigner OpenCL et d'y intéresser les développeurs. L'initiative accepte pour le moment un maximum de 20 participants (7 sont déjà inscrits).
"gratuit" n'existe pas
Le marché est le suivant: l'assurance qu'à la fin de la formation, vous saurez programmer OpenCL en échange de votre contribution à des projets libres utilisant OpenCL.
À ce jour, le "support de cours", c'est à dire le projet libre auquel vous contribuerez, est la plateforme de traitement d'image GEGL, utilisé notamment par GIMP, G'Mic, GNOME photos (voir cette très cool vidéo pour avoir un aperçu du futur de GNOME photos propulsé par GEGL), MyPaint…
Il est clairement indiqué sur la plateforme de développement (un projet sur Github) que GIMP/GEGL est le premier projet de portage officiel. D'autres projets similaires pourront donc voir le jour à l'avenir, dans le but d'enseigner OpenCL aux développeurs.
C'est donc un échange de service, plutôt que financier.
Organisation
Le projet est organisé par Vincent Hindriksen et Adel Johar qui souhaitent baser leur enseignement sur la gamification du développement en évaluant les vitesses d'exécution des kernels OpenCL (un kernel est une fonction OpenCL qui sera exécutée sur un périphérique) pour comparer des implémentations, et ainsi faire ressortir des "vainqueurs". Ils souhaitent également travailler l'optimisation des kernels pour pousser aux limites d'OpenCL.
On peut donc s'attendre à ce que les participants devraient bien connaître OpenCL à la suite de cette formation.
Victor Oliveira, le développeur GEGL qui a écrit la majeure partie du code OpenCL dans GEGL, participe au projet en tant que "conseiller".
À propos de StreamComputing
StreamComputing est une société néerlandaise de développement logiciel, apparemment spécialisé (en se référant au site web) à l'optimisation, aux algorithmes et à la connaissance matérielle.
Ils fournissent du service, de la consultation logicielle et des formations dans les domaines de la programmation GPU et du traitement parallélisé.
Note: l'auteur de cette dépêche n'a aucune relation avec cette société et ne la connaissait même pas avant cette annonce. Je ne fais que relayer l'information.
Aller plus loin
- Standard OpenCL (90 clics)
- L'annonce sur le site web de GIMP (102 clics)
- Site web de GEGL (58 clics)
- Site de l'initiative "OpenCL training" (146 clics)
- Les pilotes graphiques libres : rétrospective et vue sur l’avenir (58 clics)
- DLFP : GEGL 0.3.0 et babl 0.1.12 sont de sortie (21 clics)
# Niveau technique à considérer.
Posté par wolowizard . Évalué à 3.
Bonjour,
L'offre semble intéressante. Quelle est la barrière d'entrée? Je veux dire par là quel est le niveau minimum requis de la part du développeur.
Par exemple, personnellement, je sais coder (bien que je ne sois pas un dév. pro) mais j'aurais plutôt un certain temps d'adaptation avant que le retour sur "service" se fasse.
[^] # Re: Niveau technique à considérer.
Posté par Jehan (site web personnel, Mastodon) . Évalué à 4.
Salut,
Je suis un dév GIMP, mais comme je disais dans la dépêche, je n'ai pas de contact avec les personnes qui organisent ça. Je me suis contenté de traduire et/ou paraphraser au mieux l'info telle que je la lis et la comprends. Le mieux est donc de les contacter directement à l'email donné en lien sur la page de l'initiative et de leur poser la question.
Je pense ceci dit que le seul prérequis est de savoir coder convenablement, de comprendre les bases de l'algorithmique et de ne pas avoir besoin d'aide trop triviale trop souvent (bien que personne n'en voudra, même à un dév pro, d'avoir besoin d'aide de temps en temps sur des problématiques de programmation). Clairement ils ne s'attendent pas à ce que les participants aient déjà une existence dans le domaine précis de l'optimisation OpenCL puisque le but est d'enseigner la technologie.
Quant au "retour sur service", je pense qu'il arrivera dès le début puisque je pense que vous apprendrez directement avec le code de GEGL. Bon bien sûr, y aurait peut-être quelques exemples OpenCL basique type "tuto" aussi, mais je doute que le but est de rester sur ce genre d'activités très longtemps. J'ai l'impression que le but est de rapidement plonger dans l'écriture de vrais algorithmes bien plus sympas et réellement utiles pour le traitement d'image.
Ensuite, comme je disais, je fais pas partie de l'initiative, et je vous conseille de les contacter et de poser les questions si ça vous tracasse.
Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]
[^] # Re: Niveau technique à considérer.
Posté par wolowizard . Évalué à 3.
Resalut,
Email Done. Suivant la réponse, je ferai un retour sur les conditions minimales.
Merci d'avoir fait passer le message.
[^] # Re: Niveau technique à considérer.
Posté par xoddark . Évalué à 1.
Email envoyé également, c'est une super initiative, en plus il parrait que le projet Gimp manque de bras (et de cerveaux).
Vu que tu es dev Gimp tu pourra peu être me renseigner, quel sont les prérequis software/hardware pour travailler sur la parti OpenCL ?
Et surtout est ce que c'est possible avec les drivers opensource. Plutôt Radeonsi en ce qui me concerne, ou peut être beignet (en mode cpu only).
Merci
[^] # Re: Niveau technique à considérer.
Posté par Jehan (site web personnel, Mastodon) . Évalué à 2.
Clairement nous sommes heureux de récupérer de nouveaux contributeurs.
Ben si tu veux que ton développement soit plus que théorique, faut avoir accès à une carte graphique avec prise en charge OpenCL. Mais je pense que c'est la plupart des cartes du marché (même si elles l'annoncent pas forcément en fanfare car c'est pas encore très "marketing").
D'après ce lien, j'ai pas l'impression que c'est encore là pour radeonsi (c'est "WIP" = travail en cours, donc y a peut-être des trucs qui marchent partiellement?).
Pour "Beignet", je trouve cette page qui semble indiquer une prise en charge convenable de l'OpenCL (ce qui a priori est normal puisque ça dit que ce projet est spécifiquement destiné à implémenter la prise en charge OpenCL pour les GPUs Intel).
Je peux pas dire plus, je suis pas du tout versé dans les pilotes, et même ces infos, je les ai juste choppé à l'instant par une rapide recherche web.
Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]
[^] # Re: Niveau technique à considérer.
Posté par Thomas Debesse (site web personnel) . Évalué à 4.
Très clairement, j’ai ici un GPU AMD avec le pilote radeonsi (via le dépôt padoka qui compile tout ça depuis git) et OpenCL n’est pas prêt.
Par exemple Darktable se plaint d’un "missing image support", donc à mon avis c’est pareil pour GIMP…
Donc à mon avis c’est driver proprio obligé pour le moment, c’est vraiment dommage et j’espère que cette initiative ne va pas tomber à l’eau “parce que les pilotes ne suivent pas”. OpenCL est vraiment le parent pauvre des pilotes libres. Perso j’ai un truc qui m’empêche d’utiliser le pilote proprio sur ma bécane (ils marchent certainement mais il y a un problème bloquant ailleurs) donc je n’ai aucune possibilité d’utiliser OpenCL.
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Niveau technique à considérer.
Posté par EdB . Évalué à 2.
Étant contributeur sur Clover, j'ai envoyé un email pour connaître le pré requis au niveau drivers et savoir les éventuels problèmes que pouvais rencontrer des utilisateurs avec GEGL et Clover (je n'ai pas eu le temps de tester moi même).
Je n'ai pour l'instant pas de retour sur ce point.
[^] # Re: Niveau technique à considérer.
Posté par xoddark . Évalué à 1.
Thomas: merci, oui j'ai le même problème avec Darktable. A voir si je compile la dernière version de Mesa, et LLVM.
EdB: merci c'est bon a savoir.
Je doit participé, et de je devrais me servir d'un ordinateur avec une R9 290 avec Mesa(radeonSI), Clover, donc je devrais pouvoir te faire des retours.
[^] # Re: Niveau technique à considérer.
Posté par Thomas Debesse (site web personnel) . Évalué à 2.
Perso j’utilise le dépôt padoka et je crois que si ça marche pas avec, c’est que ça n’y est pas du tout, parce que c’est compilé depuis les dépôts git plusieurs fois par semaine.
Après, tout OpenCl ne tourne pas autour de ce “Image Support”, mais je sais que pour Darktable c’est éliminatoire. Il y a certainement plein de choses faisables tout de même… C’est juste que je crains un peut que ça soit aussi bloquant pour GIMP… Mais comme je n’y connais pas grand chose au sujet je ne m’avancerais pas beaucoup plus.
ce commentaire est sous licence cc by 4 et précédentes
# Modération: ajout d'un lien
Posté par Jehan (site web personnel, Mastodon) . Évalué à 4.
J'ai oublié de mettre le lien vers la précédente dépêche GEGL, qui permet aux gens de voir un peu mieux ce qu'est cette bibliothèque/plateforme: https://linuxfr.org/news/gegl-0-3-0-et-babl-0-1-12-sont-de-sortie
Ce serait possible de l'ajouter dans cette dépêche?
Merci aux gentils modérateurs.
Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]
[^] # Re: Modération: ajout d'un lien
Posté par Benoît Sibaud (site web personnel) . Évalué à 4.
Ajouté, merci.
# où est ce prodigué ?
Posté par bandix400 . Évalué à 2.
Il y a un détail que je n'arrive à cerner : cette formation sera-t-elle dispensée "in-line", ou dans leur locaux au pays-bas ?
Paske c'est quand même bigrement alléchant !
[^] # Re: où est ce prodigué ?
Posté par xoddark . Évalué à 1.
C'est dispensé en ligne.
La communication se fait via Slack, et pour l'instant la "formation" est diffusé sous forme de Tutorial.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.