Si les transistors ne peuvent pas être plus petits, alors les codeurs doivent être plus intelligents

En 1965, le co-fondateur d’Intel, Gordon Moore, a prédit que le nombre de transistors pouvant tenir sur une puce d’ordinateur augmenterait de façon exponentielle – et c’est ce qu’ils ont fait, doublant environ tous les deux ans. Pendant un demi-siècle, la loi de Moore a perduré : Les ordinateurs sont devenus plus petits, plus rapides, moins chers et plus efficaces, permettant l’adoption rapide, à l’échelle mondiale, de PC, de smartphones, d’Internet à haut débit, etc.
Cette tendance à la miniaturisation a conduit à l’apparition de puces de silicium qui possèdent aujourd’hui des circuits d’une taille presque inimaginable. Les transistors, ces minuscules interrupteurs qui mettent en œuvre les microprocesseurs des ordinateurs, sont si petits que 1 000 d’entre eux posés bout à bout ne sont pas plus larges qu’un cheveu humain. Et pendant longtemps, plus les transistors étaient petits, plus ils pouvaient commuter rapidement. Mais aujourd’hui, nous approchons de la limite de ce que peuvent faire les petits transistors. C’est pourquoi, au cours de la dernière décennie, les chercheurs se sont grattés la tête pour trouver d’autres moyens d’améliorer les performances afin que l’industrie informatique puisse continuer à innover.
En attendant la maturation des nouvelles technologies informatiques comme les quanta, les nanotubes de carbone ou la photonique (qui peut prendre un certain temps), d’autres approches seront nécessaires pour obtenir des performances alors que la loi de Moore touche à sa fin. Dans un récent article de journal publié dans Scienceune équipe du MIT Laboratoire d’informatique et d’intelligence artificielle (CSAIL) identifie trois domaines clés à établir des priorités pour continuer à fournir des accélérations de calcul : de meilleurs logiciels, de nouveaux algorithmes et un matériel plus rationnel.
Selon l’auteur principal Charles E. Leiserson, les avantages de la miniaturisation en termes de performances ont été si importants que, pendant des décennies, les programmeurs ont pu donner la priorité à la simplification de l’écriture du code plutôt qu’à l’accélération du code lui-même. L’inefficacité que cette tendance introduit a été acceptable, car les puces informatiques plus rapides ont toujours été capables de prendre le relais.
« Mais aujourd’hui, être capable de faire de nouvelles avancées dans des domaines tels que l’apprentissage machine, la robotique et la réalité virtuelle va nécessiter d’énormes quantités de puissance de calcul que la miniaturisation ne peut plus fournir », déclare Leiserson, le professeur Edwin Sibley Webster du département de génie électrique et d’informatique du MIT. « Si nous voulons exploiter tout le potentiel de ces technologies, nous devons changer notre approche de l’informatique ».
Leiserson a co-écrit le papier, publié cette semaine, avec le chercheur Neil Thompson, le professeur Daniel Sanchez, le professeur adjoint Butler Lampson et les chercheurs Joel Emer, Bradley Kuszmaul et Tao Schardl.
Plus de Moore
Les auteurs font des recommandations sur trois domaines de l’informatique : les logiciels, les algorithmes et l’architecture matérielle.
En ce qui concerne les logiciels, ils affirment que la priorité accordée jusqu’ici par les programmeurs à la productivité plutôt qu’à la performance a conduit à des stratégies problématiques comme la « réduction » : prendre du code qui fonctionnait sur le problème A et l’utiliser pour résoudre le problème B. Par exemple, si quelqu’un doit créer un système pour reconnaître des commandes vocales oui ou non, mais ne veut pas coder un tout nouveau programme personnalisé, il pourrait prendre un programme existant qui reconnaît un large éventail de mots et le modifier pour ne répondre qu’à des réponses par oui ou non.
Bien que cette approche réduise le temps de codage, les inefficacités qu’elle crée s’aggravent rapidement : si une seule réduction est 80 % aussi efficace qu’une solution personnalisée, et que vous ajoutez ensuite 20 couches de réduction, le code sera en fin de compte 100 fois moins efficace qu’il ne pourrait l’être.
« C’est le genre de stratégies que les programmeurs doivent repenser à mesure que les améliorations du matériel ralentissent », explique M. Thompson. « Nous ne pouvons pas continuer à faire comme si de rien n’était si nous voulons continuer à obtenir les accélérations auxquelles nous nous sommes habitués ».
Les chercheurs recommandent plutôt des techniques comme la parallélisation du code. La plupart des logiciels existants ont été conçus en se basant sur l’hypothèse ancienne selon laquelle les processeurs ne peuvent effectuer qu’une seule opération à la fois. Mais ces dernières années, la technologie multicœur a permis de réaliser des tâches complexes des milliers de fois plus rapidement et de manière beaucoup plus efficace sur le plan énergétique.
« Comme la loi de Moore ne nous offrira pas de meilleures performances sur un plateau d’argent, nous devrons fournir des performances à la dure », déclare Moshe Vardi, professeur d’ingénierie informatique à l’université de Rice. « C’est une grande opportunité pour la recherche en informatique, et le rapport (MIT CSAIL) fournit une feuille de route pour ce type de recherche ».
En ce qui concerne les algorithmes, l’équipe propose une approche en trois volets qui comprend l’exploration de nouveaux domaines de problèmes, la prise en compte des préoccupations sur la façon dont les algorithmes s’échelonnent et leur adaptation pour mieux tirer parti du matériel moderne.
Enfin, en termes d’architecture matérielle, l’équipe préconise de rationaliser le matériel afin que les problèmes puissent être résolus avec moins de transistors et moins de silicium. La rationalisation comprend l’utilisation de processeurs plus simples et la création de matériel adapté à des applications spécifiques, comme l’unité de traitement graphique est adaptée à l’infographie.
« Le matériel adapté à des domaines particuliers peut être beaucoup plus efficace et utiliser beaucoup moins de transistors, ce qui permet aux applications de fonctionner des dizaines, voire des centaines de fois plus vite », explique M. Schardl. « Plus généralement, la rationalisation du matériel encouragerait davantage la programmation parallèle, en créant une zone de puce supplémentaire à utiliser pour plus de circuits pouvant fonctionner en parallèle ».
Si ces approches sont peut-être la meilleure voie à suivre, les chercheurs affirment que ce ne sera pas toujours facile. Les organisations qui utilisent de telles techniques peuvent ne connaître les bénéfices de leurs efforts qu’après avoir investi beaucoup de temps d’ingénierie. De plus, les accélérations ne seront pas aussi cohérentes qu’elles l’étaient avec la loi de Moore : elles peuvent être spectaculaires au début, puis nécessiter de gros efforts pour des améliorations plus modestes.
Certaines entreprises ont déjà reçu le mémo.
« Pour les géants de la technologie comme Google et Amazon, l’échelle gigantesque de leurs centres de données signifie que même de petites améliorations des performances des logiciels peuvent se traduire par des retours financiers importants », explique M. Thompson. « Mais si ces entreprises peuvent mener la charge, beaucoup d’autres devront prendre ces questions au sérieux si elles veulent rester compétitives ».
Pour obtenir des améliorations dans les domaines identifiés par l’équipe, il faudra également renforcer les infrastructures et la main-d’œuvre qui les rendent possibles.
« La croissance des performances nécessitera de nouveaux outils, langages de programmation et matériels pour faciliter une ingénierie des performances plus importante et de meilleure qualité », explique M. Leiserson. « Cela signifie également que les informaticiens doivent être mieux formés sur la façon dont nous pouvons faire fonctionner ensemble les logiciels, les algorithmes et le matériel, au lieu de les mettre dans des silos différents ».
Ce travail a été soutenu, en partie, par la National Science Foundation.