L’apprentissage automatique OpenGL fonctionne sur du matériel bas de gamme

Si vous avez étudié des projets de machine learning accélérés par GPU, vous connaissez certainement l’architecture CUDA de NVIDIA. Il s’ensuit également que vous avez vérifié les prix en ligne et que vous savez combien il peut être coûteux d’obtenir une carte vidéo haute performance prenant en charge cette marque particulière de programmation parallèle.

Mais et si vous pouviez exécuter des tâches d’apprentissage automatique sur un GPU en n’utilisant rien de plus exotique qu’OpenGL ? C’est ce que [lnstadrum] travaille depuis un certain temps maintenant, car cela permettrait à des appareils aussi maigres que le Raspberry Pi Zero d’origine d’exécuter des tâches telles que la classification d’images beaucoup plus rapidement qu’ils ne le pourraient en utilisant leur seul processeur. L’astuce consiste à décomposer votre tâche de calcul en quelque chose qui peut être effectué à l’aide de shaders OpenGL, qui sont généralement destinés à pousser les graphiques de jeux vidéo.

Un exemple de mise à l’échelle du réseau neuronal de X2.

[lnstadrum] explique que les versions OpenGL de la dernière décennie incluent en fait ce qu’on appelle nuanceurs de calcul spécifiquement pour exécuter du code arbitraire. Mais malheureusement, ce n’est pas une option sur des cartes comme la Pi Zero, qui ne répond qu’à la norme OpenGL for Embedded Systems (GLES) 2.0 de 2007.

Construire le réseau neuronal de manière à ce qu’il soit compatible avec ces plates-formes plus restreintes était beaucoup plus difficile, mais le résultat final a des applications bien plus intéressantes à montrer. Au cours des tests, le Raspberry Pi Zero et plusieurs anciens smartphones Android ont pu exécuter un modèle de classification d’images pré-entraîné à un rythme respectable.

Ce n’est pas juste une expérience de pensée, [lnstadrum] a publié un cadre de traitement d’image appelé Beatmup en utilisant ces concepts avec lesquels vous pouvez jouer dès maintenant. La bibliothèque C++ a des liaisons Java et Python et, selon la documentation, devrait s’exécuter sur à peu près n’importe quoi. Inclus dans le cadre est un outil simple appelé X2 qui peut effectuer une mise à l’échelle d’image AI sur tout, de la carte vidéo intégrée de votre ordinateur portable au Raspberry Pi ; ce qui en fait un excellent moyen de découvrir cette application fascinante de l’apprentissage automatique.

À vrai dire, nous sommes un peu en retard sur ce coup-là, car Beatmup a fait sa première sortie publique en avril de cette année. Il est peut-être passé inaperçu jusqu’à présent, mais nous pensons qu’il y a beaucoup de potentiel pour ce projet, et nous espérons en voir plus une fois que la nouvelle sera connue des résultats impressionnants qu’il peut tirer du matériel le plus modeste.

[Thanks to Ishan for the tip.]