Une start-up affirme pouvoir fabriquer un processeur 100 fois plus rapide
infohightech ·
À l'ère des accélérateurs d'IA en constante évolution , les processeurs à usage général ne sont pas très appréciés. « Si vous examinez les processeurs génération par génération, vous constatez des améliorations progressives », déclare Timo Valtonen , PDG et cofondateur de Flow Computing, une société basée en Finlande .
L'objectif de Timo Valtonen est de redonner aux processeurs leur rôle légitime, « central ». Pour y parvenir, lui et son équipe proposent un nouveau paradigme. Au lieu d'essayer d'accélérer les calculs en mettant 16 cœurs de processeur identiques dans, par exemple, un ordinateur portable, un fabricant pourrait mettre 4 cœurs de processeur standard et 64 cœurs d'unité de traitement parallèle (PPU : Parallel Processing Unit) de Flow Computing dans le même espace, et obtenir des performances jusqu'à 100 fois supérieures. Valtonen et ses collaborateurs ont exposé leur point de vue lors de la conférence IEEE Hot Chips en août.
Le PPU permet d'accélérer les cas où la tâche de calcul est parallélisable, mais un processeur traditionnel n'est pas bien équipé pour tirer parti de ce parallélisme, mais le déchargement sur quelque chose comme un GPU serait trop coûteux.
« En général, nous disons que la parallélisation n’est utile que si nous avons une charge de travail importante, car sinon, la surcharge anéantit une grande partie de nos gains », explique Jörg Keller , professeur et titulaire de la chaire de parallélisme et de VLSI à la FernUniversität de Hagen, en Allemagne, qui n’est pas affilié à Flow Computing. « Et cela évolue maintenant vers des charges de travail plus petites, ce qui signifie qu’il y a plus d’endroits dans le code où vous pouvez appliquer cette parallélisation. »
Les tâches informatiques peuvent être divisées en deux catégories : les tâches séquentielles, où chaque étape dépend du résultat d'une étape précédente, et les tâches parallèles, qui peuvent être effectuées indépendamment. Martti Forsell , CTO et cofondateur de Flow Computing, explique qu'une architecture unique ne peut pas être optimisée pour les deux types de tâches. L'idée est donc de disposer d'unités distinctes optimisées pour chaque type de tâche.
« Lorsque nous avons une charge de travail séquentielle dans le cadre du code, la partie CPU l'exécute. Et lorsqu'il s'agit de parties parallèles, le CPU attribue cette partie au PPU. Nous avons alors le meilleur des deux mondes », explique Martti Forsell.
Selon ce dernier, une architecture informatique optimisée pour le parallélisme doit répondre à quatre exigences principales : la tolérance à la latence de la mémoire, ce qui signifie trouver des moyens de ne pas rester inactif pendant que la donnée suivante est chargée à partir de la mémoire ; une bande passante suffisante pour la communication entre les threads, des chaînes d'instructions de processeur qui s'exécutent en parallèle ; une synchronisation efficace, ce qui signifie s'assurer que les parties parallèles du code s'exécutent dans le bon ordre ; et un parallélisme de bas niveau, ou la capacité d'utiliser les multiples unités fonctionnelles qui effectuent réellement des opérations mathématiques et logiques simultanément. Pour la nouvelle approche de Flow Computing, « nous avons repensé, ou commencé à concevoir une architecture à partir de zéro, depuis le début, pour le calcul parallèle », souligne Martti Forsell.
Tout processeur peut potentiellement être mis à niveau
Pour masquer la latence d'accès à la mémoire, le PPU implémente le multithreading : lorsque chaque thread appelle la mémoire, un autre thread peut commencer à s'exécuter pendant que le premier thread attend une réponse. Pour optimiser la bande passante, le PPU est équipé d'un réseau de communication flexible, de sorte que n'importe quelle unité fonctionnelle peut communiquer avec n'importe quelle autre selon les besoins, ce qui permet également un parallélisme de bas niveau. Pour gérer les délais de synchronisation, il utilise un algorithme propriétaire appelé synchronisation par ondes qui serait jusqu'à 10 000 fois plus efficace que les protocoles de synchronisation traditionnels.
Pour démontrer la puissance du PPU, Marttin Forsell et ses collaborateurs ont construit une implémentation FPGA de preuve de concept de leur conception. L'équipe affirme que le FPGA a fonctionné de manière identique à leur simulateur, démontrant que le PPU fonctionne comme prévu. L'équipe a réalisé plusieurs études de comparaison entre leur conception PPU et les processeurs existants. « Jusqu'à 100 fois [d'amélioration] a été atteinte dans nos comparaisons de performances préliminaires en supposant qu'il y aurait une implémentation en silicium d'un Flow PPU fonctionnant à la même vitesse que l'un des processeurs commerciaux comparés et utilisant notre microarchitecture », explique Marttin Forsell.
L'équipe travaille actuellement sur un compilateur pour son PPU et recherche des partenaires dans le domaine de la production de CPU. Elle espère qu'un grand fabricant de CPU sera intéressé par son produit, afin qu'elle puisse travailler sur une co-conception. Son PPU peut être implémenté avec n'importe quelle architecture de jeu d'instructions, de sorte que n'importe quel CPU peut potentiellement être mis à niveau.
« Il est désormais temps de commercialiser cette technologie », déclare Jörg Keller. « Nous avons désormais besoin de solutions informatiques économes en énergie pour les appareils mobiles, mais aussi de hautes performances informatiques. »