GTC China 2011 : deux outils pour démocratiser la programmation multi-coeurs
Pour garantir le succès des GPU dans le calcul haute performance, il ne suffit pas de jouer sur les économies d’énergie et le gain de performance brute générée. Nvidia l’a bien compris et propose de nouveaux outils pour accélérer l’adoption de la programmation multi-coeurs.
“Les développeurs vont devoir recoder leurs applications quoiqu’il arrive.” Si pour Jen-Hsun Huang, le president-fondateur-CEO de Nvidia, présent lors GPU Technology Conférence (qui se tient actuellement à Pékin), cette affirmation est une évidence en matière de programmation multi-coeurs, elle reste un frein important à l’adoption d’architectures hétérogènes, c’est à dire mêlant CPU et GPU, dans le calcul haute-performance. Les clients européens et américains ayant investi largement dans ce domaine depuis des dizaines d’années ne veulent pas forcément réécrire entièrement certaines applications métiers, anciennes mais toujours vitales pour leurs activités. Pour eux, Nvidia avait annoncé discrètement à l’issue du dernier Supercomputing 2011, son ralliement à l’OpenACC, qui vise a promouvoir les compilateurs dédiées à la programmation massivement parallèle.
Réécriture semi-automatique
Dans le cadre de cette organisation, Nvidia a publié GPU Directives. Ce compilateur permet de reprendre un programme écrit en C/C++/Fortran avec des boucles de programmations déjà prévues et de l’adapter rapidement à une architecture basée sur les cartes Tesla de Nvidia. Ce compilateur ne mouline pas le code tout seul, il s’appuie sur des indices que lui donne le développeur humain (regarde à partir de telle ligne, cherche telle référence) pour éviter un maximum d’erreur. Sans être toujours aussi efficace qu’un programme réécrit sous Cuda, ce compilateur permet d’adapter ses anciennes applications en quelques jours (voire heures) et non plus en semaine avec des performances multipliées en moyenne par 2 ou 3 selon Nvidia. Les développeurs intéressés peuvent tester GPU Directives gratuitement pendant 30 jours en s’incrivant sur le site de Nvidia.
Pour autant, la société n’en oublie pas son cher Cuda. Nvidia vient d’en publier le code source du compilateur, en suivant le modèle de licence du projet LLVM. Celui-ci permettra à tout à chacun de développer des compilateurs Cuda pour leurs produits, y compris pour des processeurs différents comme les Radeon d’AMD ou les processeurs x86 d’Intel. Jusqu'à présent, Cuda était réservé aux cartes d'architecture Nvidia (GeForce, Quadro ou Telsa). Ou aux éditeurs spécialisés proposant leurs propres compilateurs CUDA pour optimiser leurs anciens logiciels.