Le consortium HSA veut favoriser le développement ouvert et multiplateforme

Rendre simple et portable l’exécution de programmes sur des appareils de configurations et d’architectures diverses avec une spécification d’interface matérielle ouverte…

La fondation HSA (Heterogeneous System Architecture Foundation) a pour ambition de fournir une spécification d’interface matérielle ouverte pour permettre à un programme développé sur une plateforme – PC, serveur ou mobile – de pouvoir être facilement chargé sur une autre plateforme.

La fondation HSA, qui se veut agnostique quant au matériel, compte parmi ses membres deux acteurs prestigieux du design des processeurs, AMD et ARM, ainsi que Texas Instruments pour les composants sur smartphone, Imagination Technologies pour les solutions graphiques sur tablettes et MediaTek pour des puces mobiles. Nous noterons l’absence d’Intel.

Faciliter la portabilité des applications

De plus en plus d’ordinateurs et de smartphones sont équipés de plusieurs composants CPU, graphiques et coprocesseurs qui participent à l’exécution de tâches toujours plus complexes et gourmandes en ressources. L’objectif d’HSA est de rendre les applications portables d’une architecture à une autre, sans qu’un processus soit brisé en passant d’un processeur (CPU) ou d’une carte graphique (GPU) à un(e) autre.

La mission est délicate, les processeurs n’ont pas tous le même jeu d’instructions, même lorsqu’il s’agit de passer d’une version à une autre. L’objectif est donc de faire du matériel une couche d’abstraction afin de permettre à une application de s’exécuter sur toutes les architectures et toutes leurs versions. On imagine les avantages que les développeurs pourront en tirer, en coût comme en temps.

Implémenter OpenCL

Le principe de HSA est finalement relativement simple : simplifier le code et la compatibilité du silicium au niveau IP. Une fois les blocs IP finalisés, il deviendra plus simple de mixer des cœurs x86, ARM, des GPU Imagination ou les accélérateurs de blocs MediaTek et TI. Finalement, heureusement qu’Intel n’est pas dans la boucle, on imagine le volume des IP à intégrer !

Les spécifications HSA seront en grande partie basées sur OpenCL, un standard de programmation pour l’exécution parallèle de tâches au travers des processeurs multicœurs, avec un langage proche du C et des API dédiées. Ces dernières permettent l’exécution des tâches parallèles au travers des CPU et GPU. OpenCL a été créé par AMD, Apple, IBM, Intel et Nvidia.

Toute la difficulté du projet est que les architectures des ordinateurs et des appareils mobiles font généralement l’objet de propriétés intellectuelles qu’il s’agit ici de partager pour permettre de jouer le “cross platform”. C’est probablement le principal motif qui fait qu’Intel ne participe pas au projet…