mer, 27/01/2021 - 11:19
Ces dernières années sont marquées par un net regain d’intérêt pour les processeurs spécialisés dans les domaines de l’intelligence artificielle (IA) et du machine learning (ML). Si cette tendance est certes compréhensible, compte tenu du potentiel en la matière et des calculs intensifs qu’exigent ces applications, encore faut-il analyser l’actuel tourbillon de l’innovation pour savoir où il nous emporte.
À la question de savoir ce à quoi les processeurs IA les plus performants pourraient bien ressembler à l’avenir, je suis convaincu, en toute sincérité, que le premier des paramètres contribuant à leur efficacité et à leur succès aura trait à leur pile logicielle. Des logiciels de qualité ne rendent pas simplement les processeurs IA nettement plus conviviaux pour les développeurs, mais permettent également de tirer pleinement parti du matériel sous-jacent. L’intelligence machine exige bien davantage de ses logiciels pour faire preuve d’efficacité. En matière d’intelligence artificielle et de machine learning, les calculs informatiques eux-mêmes sont fondamentalement différents.
En quoi les calculs sont-ils différents avec l’intelligence machine ?
Si quantité de propriétés inhérentes aux algorithmes d’IA sont uniques en leur genre, ces quelques aspects méritent d’être soulignés :
--- L’intelligence artificielle et le machine learning traitent essentiellement des informations aléatoires. Les variables intégrées à un modèle représentent l’incertitude – une distribution de probabilités. L’effet induit sur le type d’opérations accomplies par le processeur est considérable. Pour prendre en compte le large éventail d’éventualités, il vous faut allier l’extrême précision des nombres fractionnaires à une vaste plage dynamique de possibilités. Du point de vue logiciel, cela nous oblige à utiliser diverses techniques de représentation de nombres à virgule flottante et à faire appel à des algorithmes pour les manipuler selon un modèle probabiliste.
--- En plus d’être probabilistes, les données que nous manipulons sont issues d’un espace à très grand nombre de dimensions incluant des contenus tels que des images, du texte, des vidéos ou même de simples concepts abstraits. Elles n’ont rien à voir avec les vecteurs classiques utilisés dans le traitement de l’image, par exemple. Avec la multiplication du nombre de dimensions, l’accès aux données devient plus irrégulier et plus rare. Autant dire que nombre des techniques le plus souvent employées pour le matériel et les logiciels comme la mise en mémoire tampon, la mise en cache et la vectorisation ne s’appliquent pas ici.
--- Ajoutez-y le fait que les calculs réalisés avec l’intelligence machine conjuguent à la fois des mégadonnées (gigantesques ensembles de données pour l’entraînement) et des calculs massifs (grand nombre d’opérations de calcul par élément de donnée traitée) et le degré de difficulté du traitement devient évident.
Quid des implications en termes de logiciels ?
Du fait de la disparité des calculs avec l’intelligence machine, le travail fourni par les logiciels doit être plus assidu en IA et ML que dans de nombreux autres domaines. La pile logicielle IA se doit d’allier productivité, convivialité et souplesse côté développeurs avec une nécessaire efficacité à grande échelle.
Pour gagner en efficacité, la communication entre les logiciels d’IA et le matériel doit s’opérer à un niveau inférieur. Elle contribue ainsi à empêcher des prises de décisions tardives durant l’exécution matérielle et à améliorer l’efficacité. Les structures de données probabilistes et avancées des algorithmes d’IA compliquent les prévisions concernant les événements susceptibles de se produire durant l’exécution. Les logiciels sont obligés de fournir davantage d’informations sur la structure de l’algorithme et celle du modèle de machine learning en cours d’exécution.
En intelligence machine, les logiciels doivent être programmés pour piloter certains aspects comme la représentation des nombres et les mouvements de la mémoire explicite, propres à certains algorithmes d’IA, en vue d’optimiser l’efficacité. Le matériel doit aussi être réceptif à ces optimisations.
Les atouts d’une co-création logicielle/matérielle
À l’avenir, l’accent sera davantage mis sur la co-création logicielle/matérielle, avec des algorithmes logiciels et du matériel d’IA conçus en parallèle. Cela intensifiera la coopération entre matériel et logiciels, en aidant les développeurs à organiser efficacement, par exemple, les emplacements en mémoire ou l’ordonnancement des threads.
Chez Graphcore, nous développons notre pile logicielle Poplar conjointement avec notre processeur IPU depuis les tout premiers jours. Pour optimiser l’efficacité du processeur, nous dotons Poplar de moyens d’action plus évolués que ceux qui existent dans d’autres systèmes.
Notre gestion de la mémoire en est un parfait exemple. L’IPU-Machine M2000 embarque une mémoire DDR hors puce. Pour autant, aucun cache ni autre dispositif sur le matériel ne permet de contrôler automatiquement, durant l’exécution, le transfert ou la mise en tampon des données entre la mémoire de streaming externe et la mémoire embarquée sur le processeur. Tout est piloté par des logiciels à partir d’un graphe de calcul. La gestion de la mémoire n’est que l’une des composantes de la pile logicielle donnant lieu à une optimisation matérielle sur la base d’une analyse évoluée. Voilà qui est fondamental dans notre approche.
Dès lors que logiciels et matériel interopèrent sans heurt d’entrée de jeu, il est nettement plus facile de gagner en performances et en efficacité. Et en renforçant la mainmise logicielle, nous pouvons clarifier les modalités de traitement par le matériel des différents modèles d’intelligence machine. Peut-être pouvons-nous même apprendre à créer de nouveaux modèles d’IA qui, intrinsèquement, offriront des performances supérieures, en mettant à profit des techniques évoluées, d’analyse parcimonieuse par exemple.
À l’avenir, les meilleurs processeurs IA seront ceux associés aux meilleurs logiciels : nous sommes convaincus que Graphcore en sera l’auteur. Nous sommes autant un éditeur de logiciels qu’un fabricant de matériel, et il est évident qu’il s’agit là de la voie à suivre.
A propos de l'auteur