Infrastructures

Performances x100 avec l’accélération matérielle sur POWER

Share this post:

Est-il possible d’accélérer une application d’un facteur 10, voire 50 ou même 100 ? Voilà une question que vous vous posez sûrement.

POWER est une formidable architecture processeur alternative au x86. Mais au-delà de ses performances, le processeur POWER est unique en son genre par ses capacités. il possède en effet une interface très spéciale, baptisée CAPI qui est présente depuis le POWER8. Cette interface permet des gains de performances très importants pour un grand nombre d’applications, et je vous propose de découvrir comment.

Pourquoi IBM a-t-il créé une telle interface ?

Pour répondre, parlons quelques instants de la loi de moore, qui annoncait dès 1965 qu’à prix constant, la puissance fournie par un ordinateur allait doubler tous les 1 an et demi. Cette loi empirique est restée valide pendant de nombreuses années, mais elle n’est maintenant plus vraie. Nous sommes arrivés aux limites physiques de la technologie silicium, le processeur n’est plus la clef des problèmes de performance, il faut l’aider à fournir la puissance de calcul attendue par des applications toujours plus gourmandes. Un des moyens de le faire est de confier les calculs à un accélérateur matériel.

 

Parlons maintenant de cet accélérateur. Il s’agit d’un FPGA, un Field Programmable Gate Array. Un FPGA est un circuit intégré reprogrammable qui est ajouté au serveur, sous la forme d’une carte branchée dans un slot PCI Express.

Il est programmable, mais pas au sens de la programmation informatique, en C ou en Java. Il n’y a pas de jeu d’instruction figé comme dans un CPU, pas de compilateur qui transforme le code du programmeur pour le mapper sur ce jeu d’instruction. Sur un FPGA, la programmation se joue ici à un niveau bien plus proche du matériel, car c’est directement l’arrangement des portes logiques qui est programmable. On peut donc programmer l’exécution d’un algorithme en connectant les portes logiques, comme des AND, des OR qui sont des briques de base de l’électronique, et en créant du parallélisme physique adapté à ces calculs.

On obtient alors un maximum d’efficacité pour cet algorithme. Le gain de performances est énorme, le code peut s’exécuter plusieurs dizaines de fois plus rapidement sur le FPGA que sur le processeur. Si l’algorithme change, si des paramètres doivent être modifiés, pas de problème ! Le FPGA peut être reprogrammé à l’envie, en quelques minutes.

 

CAPI accélère encore plus

Sur POWER, c’est maintenant que CAPI entre en jeu. CAPI permet d’améliorer considérablement les performances du FPGA. Grâce à cette interface entre le CPU POWER et le FPGA, une application peut appeler directement les fonctions qui sont accélérées par le FPGA, sans passer par un device-driver comme pour un FPGA standard, et sans faire une copie des données. En effet, CAPI permet au FPGA branché sur le serveur d’accéder à la mémoire du serveur de manière cohérente avec le processeur, dans un seul même espace d’adressage virtuel.

Les cas d’usage sont très nombreux. Par exemple, un FPGA avec CAPI peut réaliser de la reconnaissance d’objets sur un flux vidéo en temps réel à 30 images par seconde, ce qu’un logiciel seul a du mal à de réaliser. Un algorithme de Monte Carlo, pour une simulation de risques, est accéléré d’un facteur x40. La plupart des algorithmes sont éligibles à une exécution sur FPGA.

 

Exploitez plus de données, statiques ou en flux

Mais ce n’est pas tout ! En effet, les cartes FPGA possèdent 2 atouts supplémentaires : 2 To de mémoire Flash et des ports d’entrée / sortie en connectique par fibre optique. Avec ces ports externes, vous avez donc accès aux réseau IP, SAN ou Infiniband. Vous pouvez traiter des flux entrant ou sortant, comme par exemple de la détection de paquets sur des flux réseau. Une autre application ? faire de la compression / décompression de données à la volée qui sont lues ou écrites sur un stockage externe.

La mémoire Flash permet quant à elle d’étendre l’espace mémoire disponible pour une base de données montée en mémoire, comme une base Redis. Il n’est plus nécessaire d’utiliser un cluster de 8 ou 16 serveurs x86 pour disposer d’une base de données en mémoire de 2 ou même 4 To. 1 seul serveur POWER8 suffit, avec une carte FPGA et CAPI. encore plus fort, il est possible d’interfacer une baie de stockage flash, à travers une carte FPGA CAPI, pour que la base de données en mémoire voie jusqu’à 40 To d’espace disponible.

CAPI SNAP rend la programmation du FPGA facile

la principale difficulté du FPGA classique réside dans sa programmation : c’est la tâche d’un développeur hardware, en conception électronique, ce n’est pas de la programmation informatique. Elle s’effectue dans un langage bien particulier, le Verilog ou le VHDL, et les compétences sont rares, et les temps de développement s’étalent sur plusieurs mois. Programmer un FPGA classique est une tâche longue et réservée à des spécialistes en électronique.

Pour éviter ces difficultés, IBM a développé un environnement qui s’appelle CAPI SNAP. il permet à un développeur logiciel de programmer un FPGA directement à partir de son code C/C++ ou en langage Go, et de l’implémenter en quelques heures dans un FPGA. Toutes les difficultés de programmation d’un FPGA sont levées !

Le framework de développement vous propose une API très simple, qui vous permet de désigner la source des données, l’action à réaliser sur ces données, et le lieu où envoyer le résultat du traitement. On comprend ici toute l’intérêt des connections d’entrée sortie, et du stockage local sur le FPGA. Le framework prend en charge tous les mouvement de données, et vous pouvez vous concentrer sur votre code C. Ce code est ensuite transformé automatiquement pour programmer le FPGA.

Vous accélérez ainsi très facilement le cœur de votre application, ce qui permet des gains de performances très significatifs, voire même des résultats impossibles à obtenir autrement, comme dans l’exemple de la reconnaissance d’image en temps réel.

CAPI est bien sûr présent sur la gamme POWER9, dans une version encore plus puissante en CAPI 2.0, appuyé sur le bus PCI Express 4.0, et une version encore plus ouverte, grâce à OpenCAPI.

 

Comment tester ?

Nous vous invitons à tester CAPI SNAP pour accélérer votre code, que vous soyez éditeur de logiciel ou utilisateur final.

Pour la partie logicielle, le framework est disponible sur Github, et pour vous donner facilement accès au matériel, IBM met à votre disposition un environnement CAPI en cloud sur SuperVessel. Pour vous accompagner, nos meilleurs spécialistes de la technologie CAPI sont français et là pour vous aider, alors contactez-nous !

 

Technical Sales Specialist - Linux Servers

More Infrastructures stories
1 juillet 2021

IBM, partenaire officiel de « The Amundi Evian Championship » en 2021

« The Evian Championship », rebaptisé « The Amundi Evian Championship » en 2021, célèbrera ses 27 ans cette année. Tournoi Majeur sur le circuit du golf féminin, il réunira plus de 120 joueuses internationales de premier plan du 22 au 25 juillet prochain à l’Evian Resort. IBM est partenaire officiel du tournoi depuis l’an […]

Continue reading

12 janvier 2021

La compréhension du langage et IBM

Nous avons publié une série de nouveautés sur nos services d’Intelligence Artificielle IBM Watson autour du traitement du langage naturel. Le communiqué de presse est disponible ici. Mais, je voulais revenir sur deux de ces annonces plus en détail. Watson Assistant Enhanced-Model Watson Discovery Reading Comprehension Un nouveau modèle amélioré de classification d’intention pour Watson […]

Continue reading

12 janvier 2021

Intelligence artificielle et Hybrid Multi-Cloud

L’hybrid Multi-cloud est devenu une réalité pour les entreprises et représente la futur génération des architectures IT. Ce rapport d’IDC montre bien que la phase 2 du « Move to Cloud » dans laquelle les entreprises sont entrées est Multi Public ou Multi Public-Private Cloud. The Road to Hybrid Multicloud L’intelligence artificielle de son coté a, ces […]

Continue reading