21/11/2016

AMD renforce l’approche open source dans ROCm

La firme AMD annonce la mise à jour de sa plateforme de calcul hétérogène ROCm. Elle permet la résolution de problèmes complexes en englobant de nombreuses configurations matérielles et ajoutant le support d’OpenCL.

Un monde open source de plus en plus matériel

Il y a encore peu de temps, il était plus courant d’entendre parler de la libération en open source de solutions logiciels que de design matériel. Avec la création du projet Open Compute et des initiatives lancées individuellement par des multinationales commeFacebook, Google, Microsoft, Brocade, Cisco Systems,la tendance semble bien changer. On peut trouver librement des plans de conceptions de nouvelles générations de serveurs, routeurs, switchs et d’équipements spécifiques aux télécommunications pour construire une infrastructure informatique se mêlant avec les matériels propriétaires. La plateforme ROCm d’AMD s’inscrit dans cette tendance de fond.

AMD veut jouer un rôle clé dans l’open computing

La semaine dernière, lors de la conférenceSuper Computing 2016 à Salt Lake City, AMD, membre de l’Open Compute Project a annoncé la livraison de la deuxième version de sa plateforme open source Radeon Open Compute Platform (ROCm). Cette plateforme inclut le support des nouveaux matériels Radeon GPU, de nouvelles librairies mathématiques, les fondements d’une nouvelle mise à jour des langages de programmation. La plateforme lancée en avril dernier a donc subi de nombreuses injections.

Le support d’OpenCL

AMD a aussi annoncé le supportprochaind’Open Computing Language (OpenCL) pour une grande partie des processeurs à venir sur la plateforme, incluant le support des futurs processeurs AMD Zen-based, Cavium ThunderX et IBM Power 8. Cette dernière annonce donne à la plateforme ROCm une polyvalence inégalée dans le domaine de calculs opérés sur processeurs graphiques.

Pour rappel, OpenCl est un framework dédié à l’écriture de programmes qui peuvent s’exécuter sur des plateformes hétérogènes composées de processeurs génériques, de processeurs graphiques, de processeurs de traitement de signaux (DSP), deréseaux de portes programmables(FPGAs) et d’autres solutions d’accélérations matérielles. 

Conteneurisation de ROCm

ROCm supportera aussi la conteneurisation avec Docker sur Linux : « une approche open source du calcul hétérogène peut aider à amener les bénéfices des hautes performances de calcul directement aux développeurs, fournissant une souplesse d’utilisation des ressources disponibles pour ces derniers et l’extraction des meilleures performances possibles du matériel disponible » commenteDenise Dumas, vice présidente Platform Engineering pour l’éditeur Red Hat.

Les nouveautés de ROCm

Parmi les nouveautés embarquées dans la nouvelle mouture de la plateforme, on notera :

  • le support étendu des GPUs : ROCm supporte dorénavant toutes les architectures fondées sur Polaris, incluant les cartes Radeon RX 460, 470, 480 ainsi que les processeurs Radeon Pro WX 7100, 5100 et 4100. L’architecture Polaris est spécifiquement conçue pour tirer bénéfice des programmations de bas niveau, permettant au développeur d’atteindre les meilleures performances du matériel.
  • La virtualisation du matériel GPU via des conteneursou KVM : ROCm supporte dorénavant la conteneurisation via Docker, permettant la simplification du développement des applications dans les environnements serveur Linux. La virtualisation du matériel est aussi de la partie via KVM. Cette dernière permet de bénéficier de l’accélération matérielle des GPUs dans des solutions virtualisées.
  • HCC, le compilateur de calcul hétérogène : HCC est un compilateur ISO C++ 11/14 pour les processeurs génériques et graphiques, il supporte les standards de parallélisation de C++ 17. Il est construit sur une infrastructure riche incluant la génération de code GCN ISA (fondée sur LLVM) avec le support de l’assemblage et du désassemblage.
  • HIP, l’interface portable de calcul hétérogène :HIP permet aux développeurs de porter les applications CUDA dans ROCm avec HIPIFY. Ce dernier procède à la conversion du langage vers le noyau HIP et les interfaces d’exécution. Il permet donc la création d’applications portables pouvant s’exécuter sur n’importe quel processeur graphique en utilisant soit le compilateur CUDA de NVIDIA soit HCC.
  • Les nouvelles librairies mathématiques : elles introduisent le support denouvelles accélérations avec le support de BLAS, FFT et des contractions tensorielles à n dimensions

La nouvelle version de Radeon Open Compute est disponible ici.

Source : radeonopencompute.github.io

Actualités