La Grosse Conf 2024 - Peut-on faire de l’IA sans la loi de Moore ?
La Grosse Conf 2024 - Peut-on faire de l’IA sans la loi de Moore ?
La loi de Moore, édictée dès 1965, a structuré toute l’industrie du matériel informatique depuis plus de 50 ans ; et avec elle, toute l’industrie du logiciel. Voyons comment ces deux industries interagissent, pourquoi cela est sur le point de changer et le rôle de l’IA dans tout cela.
Il était une fois la loi de Moore …
Le matériel double de puissance tous les 24 mois
Tout commence en novembre 1971 avec le premier microprocesseur commercial, l’Intel 4004. Ce premier microprocesseur a lancé la révolution numérique malgré des performances très faibles par rapport à aujourd’hui.
Gordon Moore, cofondateur d’Intel, avait prédit l’évolution des microprocesseurs et exprimé une “formule” désormais célèbre :
“Le nombre de transistors dans un microprocesseur double tous les deux ans.”
L’industrie a transformé cette formule choc en une prophétie auto-réalisatrice (autrement dit, c’est une planification industrielle) qui s’est avérée exacte : le processeur 4004 possédait 2300 transistors alors que les processeurs actuels en contiennent plus de 50 milliards.
Et en effet, depuis 50 ans, “le matériel double de puissance tous les 24 mois” et les microprocesseurs actuels sont 22 millions de fois plus puissants que le 4004. C’est ce qui a permis toute la révolution du numérique que nous connaissons.
NB : La loi de Moore s’appuie sur des sous-jacents qui ne sont pas diffusés mais qui sont pourtant essentiels à son application :
- le prix de chaque transistor baisse de 30% tous les deux ans
- la consommation électrique d’un semi conducteur baisse à chaque génération
- La fréquence d’horloge des processeurs et le nombre de cœurs augmentent régulièrement.
Le logiciel ralentit aussi vite que le matériel accélère.
Vingt ans après, Niklaus Wirth, créateur du langage Pascal et prix Turing, exprime une autre loi, dite loi de Wirth :
“Le logiciel ralentit aussi vite que le matériel accélère.”
On a des machines de plus en plus puissantes sur lesquelles on installe des logiciels de moins en moins optimisés qui consomment toute la ressource additionnelle. En effet, La taille moyenne d’une page web a été multipliée par 150 en 25 ans, le temps pour afficher un caractère sur l’écran a été multiplié par 5 en 30 ans et les besoins minimum en mémoire vive du couple Office + Windows ont été multipliés par 171 en 20 ans.
À l'époque où Intel était le plus grand fournisseur de processeurs et Microsoft, avec Windows et Office, le plus important fournisseur de logiciels, la loi de Wirth était parfois énoncée de la façon suivante :
”Ce qu’Intel vous donne, Microsoft vous le retire.”
Finalement, la loi de Moore a un effet pervers : elle pousse à ajouter des fonctionnalités plutôt qu’à optimiser le code du logiciel. Les développements sont focalisés sur l’ajout de fonctionnalités pour rendre le logiciel plus désirable mais il nécessite toujours plus de ressources pour fonctionner. En effet, le développeur a le choix quant à l’usage de son temps : soit il retravaille son code pour l’optimiser, soit il rajoute des fonctionnalités. Mais s’il investit son temps à optimiser, ce gain en performance sera en quelque sorte “dilué” par le fait que les nouvelles générations de matériel sont deux fois plus puissantes. Donc il préfère écrire de nouvelles fonctionnalités. Les conséquences sont doubles : d’une part son logiciel est plus lent car il n’est pas optimisé et d’autre part le logiciel est plus lourd et plus consommateur de ressources du fait de l’ajout de fonctionnalités.
Au fur et à mesure des mises à jour, chacun de nous a l’impression que son ordinateur, son smartphone, son serveur est devenu trop lent mais “le silicium ne s’use pas, il ne ralentit pas” : nos machines ne ralentissent pas, elles tournent toujours à la même vitesse, c’est juste qu’elles doivent faire tourner des logiciels de plus en plus gros et de moins en moins optimisés.
Sur un matériel à capacités fixes, on implante des logiciels de plus en plus gourmands alors quand cela devient trop lent, on le jette et on le remplace … alors qu’il fonctionne encore.
Et si la loi de Moore s’arrêtait ?
Un ordinateur pour la vie
L’autrice de fiction Becky Chambers nous offre une piste de réflexion intéressante dans son roman “Un psaume pour les recyclés sauvages” :
>”C'était un bon ordinateur. Comme le voulait la coutume, on le lui avait offert pour ses seize ans {...} Une machine fiable, faite pour lui servir toute sa vie, comme tous les ordinateurs.”
Dans ce monde imaginaire, quelqu’un reçoit un ordinateur à 16 ans et le garde toute sa vie. Si la loi de Moore s’arrêtait, nous pourrions inventer un monde comme celui-ci dans lequel on arrêterait de jeter du matériel qui fonctionne encore.
Le problème, ce n’est pas l’utilisation mais la fabrication du matériel
Et c’est important car l’impact négatif du numérique en France vient principalement de la fabrication et non de l’utilisation des matériels : 83% d’émission de gaz à effet de serre, 88% de consommation d’eau et 100% d’utilisation des métaux. La consommation d’énergie est effectivement plus grande dans la phase d’utilisation, mais cette dernière se fait avec de l’électricité décarbonée.
Autrement dit, si nous arrivions à ne plus fabriquer autant de matériel, nous diviserions par 5 l’impact écologique du numérique.
Pourquoi et comment changer de trajectoire ?
Un changement de comportement est devenu impératif car :
- le changement climatique est venu percuter nos certitudes
- l’évolution du CO2 dans l’atmosphère et l’augmentation de la température moyenne montrent l’impact des gaz à effet de serre
- les scénarios de réchauffement climatique indiquent la nécessité de changer drastiquement
- l’effondrement de la biodiversité est déjà très visible
Par ailleurs, la fabrication de composants électroniques nécessite des métaux tels que le cuivre ou le cobalt dont l’extraction impacte fortement nos écosystèmes.
L’incroyable potentiel de l’optimisation
De nombreux exemples dans divers domaines du développement logiciel suggèrent un incroyable potentiel d’optimisation :
- L’analyse en 30 minutes d’un code développé en Python en 150 heures a permis de réduire son temps d’exécution de 6 heures à 6 minutes, soit une vitesse 60 plus rapide
- L’audit d’un algorithme de Machine Learning de prédiction de valeur d’objets a permis de passer la durée de l’entraînement journalier de 15 heures à 10 secondes soit un facteur de 5400 et ce, grâce à deux améliorations “simples” :
- downcast de variables de 64 à 8 bits
- réduction du nombre de combinaisons du grid search par élimination des combinaisons qui n’ont pas de sens scientifique
- L’intelligence collective a permis que la résolution d’un problème logique par un algorithme en python passe de 32 jours à 6 secondes puis 1 seconde et enfin 6,7 millisecondes soit un 408 millions de fois plus rapidement.
La loi d’erooM
Au-delà d’un sens déterminé a posteriori à E.R.O.O.M. comme un “Effort Radicalement Organisé d’Optimisation en Masse, la loi d’erooM se définit comme la loi de Moore “à l’envers”, c’est-à-dre optimiser le logiciel d’un facteur deux tous les deux ans.
De cette façon, on pourrait libérer de la puissance informatique avec laquelle ajouter de nouveaux usages et innover sans pour autant avoir à changer de matériel.
Gordon Moore avait décidé la loi de Moore. De la même façon, nous pouvons et devons décider d’optimiser les logiciels d’un facteur deux tous les deux ans.
Cela nous apporte un triple bénéfice :
- diviser par 5 l’empreinte du numérique en faisant durer le matériel
- faire du travail de qualité en optimisant le logiciel
- continuer d’innover en utilisant la ressource informatique libérée par l’optimisation.
On n’innove que sous la contrainte
L’expérience montre que l’on n’optimise que sous la contrainte :
- limite matérielle : console vidéo (la configuration n’évolue pas) ou équipement spatial (dont on ne peut pas changer le matériel), …
- limite temporelle : batches journaliers qui approchent une durée de 24h, …
- contrainte morale : protection de l’avenir de l’humain, respecter les limites planétaires, …
Nous avons besoin d’une contrainte qui nous aiderait à nous engager dans la loi d’erooM et malheureusement, la contrainte morale n’est pas suffisante à nous faire changer.
La loi de Moore est (presque) morte
Si on observe attentivement l'industrie du matériel informatique, on s’aperçoit que les principaux sous-jacents qui soutiennent la loi de Moore se délitent depuis des années :
- l’augmentation de puissance des CPU a fortement ralenti à partir de 2003 et n’augmente presque plus depuis 2015.
- l’augmentation des fréquences d’horloge stagne également depuis 2003
- le prix du transistor ne baisse plus depuis 2011
En fait, même si on arrive encore à densifier les semi-conducteurs et donc rajouter des transistors dans les processeurs, cela ne les fait plus accélérer. On peut considérer que les processeurs CPU sur le modèle x86 d’Intel et concurrents sont des produits mûrs, dont l’évolution est marginale.
Et pourtant, les GPU continuent de suivre la loi de Moore, non ?
Les GPU (Graphical Processor Unit) sont composés de cœurs plus simples que les CPU dont l’intérêt est qu’ils sont architecturés pour faire de nombreux calculs simples en parallèle, contrairement aux CPU, qui reposent sur l’exécution en séquence d’instruction. Aussi, on peut utiliser les transistors supplémentaires apportés par la loi de Moore pour multiplier le nombre de cœurs du GPU et ainsi continuer à augmenter la puissance des GPU, sans toutefois arriver à respecter la loi de Moore.
Mais il y a un hic : la consommation électrique de chaque transistor ne baisse pas aussi vite qu’avant. Donc avec l’augmentation continue de la densité, la consommation électrique s’envole.
Par ailleurs, le prix unitaire des transistors baisse moins vite et le nombre de transistors par GPU augmentant,les tarifs des GPU augmentent. En résumé, les GPU continuent de progresser en puissance de calcul mais les prix augmentent.
Faire de l’IA dans ces conditions va donc devenir comparativement de plus en plus cher à la fois à l’achat (on le voit avec les cartes Nvidia dont les prix dépassent les dizaines de milliers de dollars) et en termes de consommation électrique.
Alors, maintenant, que fait-on ?
Nous sommes dans une situation où il est impératif de réduire l’impact de l’activité humaine dans tous les domaines (mobilité, industrie, logement, nourriture, etc.), y compris dans le numérique. Il faut donc faire plus avec moins. Mais le numérique a une chance inouïe, c’est le fait que son optimisation logicielle a été délaissée depuis presque toujours. Une approche méthodologique E.RO.O.M. permettrait de concilier ce qui semble impossible :
- réduire massivement l’empreinte écologique du numérique
- en faisant du travail de meilleur qualité
- tout en continuant à développer de nouveaux usages.
La solution tient en trois points :
- Accélérer le développement des compétences des développeurs junior Comme les développeurs juniors produisent un code peu performant et difficile à lire et à maintenir, il est plus nécessaire que jamais de faire monter les développeurs en compétence. Leur code sera plus facilement maintenable mais aussi plus performant et donc moins consommateur de ressources.
- Sur le code existant, identifier les éléments critiques qui sont les plus consommateurs de ressource ;
- Optimiser la performance de ces éléments critiques tout en conservant un niveau de lisibilité et de maintenabilité suffisant. Mais attention : à vouloir trop optimiser, on peut finir par produire du code qui sera plus difficile à maintenir).
Takeaways
Avec l’approche EROOM, le numérique tient une opportunité formidable de réduire son empreinte environnementale.
Le choix de faire du travail de qualité d’optimisation est motivant pour les développeurs et positif pour la marque employeur.
Il faut faire attention à ce que l’IA ne fasse pas augmenter massivement l’empreinte écologique du numérique : sa consommation électrique augmente dans des proportions préoccupantes et le matériel devient obsolète très rapidement, comme au pires moments de la loi de Moore. Peut-être pourra-t-on développer l’IA qui tournera sur des CPU et ainsi suivre la loi d’erooM ?
Liens et références
Hommage à Niklaus Wirth, sur le blog Binaire