Programmation fonctionnelle · 2 min read · Oct 20, 2025

Ce nouveau langage de programmation fonctionnelle peut générer du code C, Python pour des applications

Utiliser Futhark facilite la programmation pour les GPU qui accélèrent l’apprentissage automatique et d’autres applications mathématiques intensives

Des chercheurs du Département d’informatique de l’Université de Copenhague ont récemment dévoilé Futhark, un langage de programmation fonctionnelle open source conçu pour créer du code qui s’exécute sur des GPU, pour une utilisation dans l’apprentissage automatique et d’autres applications haute performance.

Les chercheurs ont déclaré que Futhark est censé être plus pratique à utiliser que les frameworks C/C++ standard pour la programmation des GPU. La principale caractéristique de Futhark est qu’il peut générer automatiquement du code C et Python à intégrer dans des applications existantes. Futhark est écrit en Haskell.

À ce jour, la plupart de la programmation GPU implique l’utilisation de frameworks comme OpenCL ou CUDA, qui utilisent tous deux des variations de C ou C++ pour générer du code qui s’exécute sur le GPU. Au lieu d’utiliser un framework, Futhark peut générer du code C, mais c’est son propre langage, plus similaire à Haskell ou Standard ML qu’à C.

Les créateurs de Futhark affirment que l’expressivité du langage facilite la description d’opérations complexes utilisant le parallélisme. Cela inclut la capacité de prendre en charge des parallélisations imbriquées (opérations parallèles à l’intérieur d’autres opérations parallèles). Futhark peut le faire “malgré les complexités de la cartographie efficace au parallélisme plat supporté par le matériel, car un grand nombre de programmes dépendent de cette fonctionnalité.”

Les affirmations des chercheurs ne sont pas infondées. Des benchmarks préliminaires opposant des programmes GPU Futhark à d’autres bibliothèques GPU ont montré des résultats prometteurs. Pour un test de somme de segments maximum, Futhark était presque deux fois plus rapide qu’un projet open source concurrent. Dans d’autres cas, il était à égalité ou légèrement plus lent que la concurrence. Les développeurs de Futhark ont attribué cela à la nouveauté du langage et à son approche non raffinée de l’allocation et de la réutilisation de la mémoire.

La chaîne d’outils Futhark actuelle peut générer du code capable de s’exécuter soit sur le CPU, soit sur le GPU, avec une variété de cibles. Pour le premier, il génère du code C compilé par le GCC ; pour le second, il génère du code C qui utilise la plateforme OpenCL. Ainsi, le même code peut s’exécuter sur n’importe quel matériel disponible pour le supporter, de la même manière que les applications accélérées par GPU comme la base de données MapD peuvent revenir à l’utilisation du CPU si nécessaire.

Les utilisateurs de Python qui souhaitent un gain de vitesse peuvent générer du code avec Futhark automatiquement enveloppé dans un module Python. Le code GPU s’exécute via PyOpenCL, qui est une bibliothèque pour interfacer avec les GPU. Il existe des exemples de cela, comme une implémentation GPU de Conway’s Game of Life pilotée par Futhark.

Futhark est encore un travail en cours et les développeurs ont mis le code sur GitHub pour d’autres chercheurs et développeurs.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.