Accueil » Actualité » Un compilateur pour GPU

Un compilateur pour GPU

Image 1 : Un compilateur pour GPU

Des chercheurs de l’Université de la Caroline du Nord ont développé un compilateur permettant à n’importe quel programme tournant sur un CPU de tirer parti de la puissance de calcul des GPU.

Un processeur mal exploité

Le projet a le mérite d’être intéressant. Il part du principe que le nombre théorique de calculs en virgule flottante des GPU est largement supérieur à celui des CPU, ce qui est vrai. Par exemple, la Radeon HD 5870 à une puissance de 2,77 TFLOPS, contre 130 GFLOPS pour un Core i7-980X.

Le problème est que l’utilisation d’un GPU pour des applications non scientifiques ou n’utilisant pas les API classiques tels que Direct3D ou OpenGL est beaucoup plus compliqué. C’est ce problème que le compilateur américain, qui a été financé par la National Science Fondation, tente de pallier. Il va ainsi analyser le code du programme originel et identifier les accès mémoires pour générer un noyau optimisé et les paramètres d’invocation du noyau.

Un compilateur miracle ?

Le principe est simple : prendre un logiciel dit naïf tournant sur un CPU classique et le passer au compilateur pour qu’il fasse exactement la même chose, mais en tirant parti de la puissance d’un processeur graphique afin d’optimiser les performances.

Les résultats de ces recherches ont montré qu’un programme recompilé avec l’outil en question était environ 30 % plus rapide qu’une version optimisée manuellement avec la librairie NVIDIA CUBLAS 2.2 et 128 fois plus performante que la version originelle. Les chercheurs ne disent pas si leur solution est limitée à une architecture GPU en particulier. L’article détaillant les recherches sera présenté à la conférence Programming Language Design and Implementation qui se tiendra à Toronto début juin. Il faudra attendre cette date pour avoir plus de détail sur un produit qui semble trop beau pour être vrai.