Dataflow est une architecture informatique développée par SambaNova Systems pour accélérer les charges de travail d'intelligence artificielle. Contrairement aux conceptions de processeurs conventionnelles qui exécutent les instructions de manière séquentielle, Dataflow organise le calcul sous forme de graphe dirigé où les données circulent en continu à travers un réseau d'éléments de traitement. Cette approche est adaptée aux opérations structurées et répétitives présentes dans les modèles de apprentissage profond, tels que les réseaux de neurones et les grands modèles de langage. L'architecture est implémentée dans le matériel personnalisé de SambaNova, notamment les systèmes DataScale et la série SN10 d'unités de flux de données reconfigurables (RDU).
L'architecture Dataflow est issue de recherches menées au Stanford AI Lab et a été commercialisée par SambaNova, fondée en 2017 par Kunle Olukotun, Christopher Ré et Rodrigo Liang. Le premier produit de l'entreprise, le DataScale SN10, a été annoncé en 2020 et a commencé à être expédié en 2021. L'architecture est conçue pour résoudre le goulot d'étranglement de la bande passante mémoire qui limite les systèmes traditionnels basés sur GPU, lesquels dépensent souvent une énergie considérable à déplacer les données entre les unités de calcul et la mémoire. En maintenant les données sur la puce et en les faisant circuler à travers un tissu configurable, Dataflow vise à atteindre une meilleure utilisation et une latence réduite pour l'inférence et l'entraînement en IA.
Principes de conception
Le principe fondamental de Dataflow est d'éliminer le goulot d'étranglement de von Neumann en découplant le calcul de la récupération et du décodage des instructions. Dans un CPU ou GPU conventionnel, chaque opération nécessite de récupérer une instruction, de la décoder, puis de l'exécuter sur des données chargées depuis la mémoire. Dataflow compile au lieu de cela le modèle entier en un graphe de flux de données statique, où chaque nœud représente une opération mathématique (comme une multiplication matricielle ou une activation) et chaque arête représente une dépendance de données. Le graphe est ensuite mappé sur une grille d'éléments de traitement (PE), chacun disposant de sa propre mémoire locale et de ses unités arithmétiques.
Chaque PE de l'architecture Dataflow peut effectuer une variété d'opérations, notamment des multiplications-accumulations, des fonctions d'activation et des opérations de pooling. Les PE sont interconnectés via un réseau à haute bande passante et à faible latence qui prend en charge à la fois les communications de proximité et les communications à plus longue distance. La configuration de ce réseau est déterminée au moment de la compilation, ce qui permet de spécialiser le matériel pour chaque modèle spécifique. Cette reconfigurabilité est un différenciateur clé par rapport aux accélérateurs à fonction fixe comme le AWS Trainium ou le processeur de flux de tenseurs de Groq, qui utilisent également des principes de flux de données mais avec des compromis différents.
Compilation et pile logicielle
SambaNova fournit une pile logicielle appelée SambaFlow, qui compile les modèles écrits dans des frameworks comme PyTorch et TensorFlow en graphes Dataflow. Le compilateur effectue plusieurs optimisations, notamment la fusion d'opérateurs, l'optimisation de la disposition mémoire et le pipeline. Il gère également le mappage du graphe sur la grille physique de PE, en équilibrant les ressources de calcul et de mémoire. SambaFlow prend en charge à la fois l'entraînement et l'inférence, et inclut un environnement d'exécution qui gère le mouvement des données et la synchronisation.
Le processus de compilation est statique, ce qui signifie que le graphe est entièrement déterminé avant l'exécution. Cela permet au compilateur de planifier les opérations avec précision et d'éviter les surcoûts d'exécution. Cependant, cela implique également que le flux de contrôle dynamique, comme les boucles à nombre d'itérations variable, doit être déroulé ou géré via des mécanismes spéciaux. SambaNova a étendu son compilateur pour prendre en charge les modèles de transformeurs, qui constituent la base de la plupart des systèmes de IA générative modernes, en optimisant les mécanismes d'attention et les couches feed-forward.
Implémentation matérielle
Le SN10 RDU, introduit en 2020, contient 40 milliards de transistors et est fabriqué selon un processus de gravure de 7 nanomètres chez TSMC. Il dispose de 48 Go de SRAM sur puce, répartie sur la grille de PE. La puce fonctionne à une fréquence d'horloge d'environ 1,2 GHz, mais ses performances sont mesurées en termes de débit de flux de données plutôt que de vitesse d'horloge brute. SambaNova affirme qu'un seul SN10 peut délivrer jusqu'à 638 téraflops de calcul pour les modèles creux et 125 téraflops pour les modèles denses, bien que ces chiffres dépendent de la charge de travail.
Le système DataScale intègre plusieurs puces SN10 dans un même châssis, avec jusqu'à 16 RDU par système. Ces systèmes sont connectés via une interconnexion à haute vitesse qui prend en charge la communication de pair à pair. Les générations ultérieures, comme les SN30 et SN40, ont augmenté la capacité de mémoire et de calcul, le SN40 introduit en 2023 offrant 1,5 To de mémoire sur puce et prenant en charge des modèles jusqu'à 5 000 milliards de paramètres. Le matériel comprend également des unités spécialisées pour l'élagage de modèles et la parcimonie, qui peuvent ignorer les valeurs nulles pour améliorer l'efficacité.
Caractéristiques de performance
Les systèmes Dataflow sont particulièrement efficaces pour les charges de travail d'inférence, où le même modèle est exécuté de manière répétée avec des entrées différentes. La planification statique permet une latence prévisible, et la mémoire sur puce réduit le besoin d'accéder à la DRAM externe. Dans les benchmarks publiés par SambaNova, le DataScale SN10 atteint un débit supérieur à celui des GPU NVIDIA A100 pour plusieurs modèles populaires, notamment BERT et GPT-3, tout en consommant moins d'énergie. Cependant, les benchmarks indépendants ont été limités, et les performances réelles peuvent varier en fonction du modèle et de la taille des lots.
Pour l'entraînement, Dataflow fait face à des défis en raison de la nécessité de mises à jour fréquentes des poids et de la nature dynamique du calcul des gradients. SambaNova a abordé ce problème en prenant en charge le parallélisme des données et le parallélisme des modèles, où plusieurs RDU travaillent sur différentes parties du modèle. Le compilateur peut mettre en pipeline les passes avant et arrière pour chevaucher le calcul et la communication. Malgré ces efforts, les performances en entraînement ont été moins compétitives qu'en inférence, et de nombreux clients utilisent Dataflow principalement pour le déploiement.
Comparaison avec d'autres architectures
Dataflow est souvent comparé à l'IPU de Graphcore, qui utilise également une conception multi-cœurs avec mémoire sur puce. La différence clé est que Graphcore utilise un modèle d'exécution plus traditionnel basé sur des instructions, tandis que Dataflow est purement piloté par les données. Le processeur de flux de tenseurs de Groq est une autre architecture de type flux de données, mais il utilise une conception plus simple et plus rigide, sans mémoire sur puce, s'appuyant plutôt sur le flux de données à travers un grand réseau d'unités de multiplication-accumulation. La reconfigurabilité de SambaNova offre plus de flexibilité pour différentes formes de modèles, mais ajoute également de la complexité au compilateur.
Comparé aux GPU de NVIDIA ou AMD, Dataflow offre une latence plus faible pour les petits lots et une meilleure efficacité énergétique pour l'inférence. Cependant, les GPU bénéficient d'un écosystème logiciel mature et d'un support plus large pour les frameworks et les bibliothèques. L'avantage de Dataflow est plus prononcé pour les grands modèles de transformeurs, où le mécanisme d'attention peut être mappé efficacement sur la grille de PE.
Applications et adoption
SambaNova a déployé des systèmes Dataflow dans divers secteurs, notamment gouvernementaux, de la santé et des services financiers. Parmi les clients notables figure le département de l'Énergie des États-Unis, qui utilise le système pour le calcul scientifique, ainsi que Oracle Cloud, qui propose le matériel SambaNova comme service géré. L'architecture a été utilisée pour des tâches telles que le traitement du langage naturel, la vision par ordinateur et la découverte de médicaments. En 2023, SambaNova a introduit Samba-1, un grand modèle de langage de 1 000 milliards de paramètres, entraîné sur ses systèmes Dataflow, démontrant la capacité de l'architecture pour l'entraînement à grande échelle.
L'entreprise s'est également concentrée sur l'accessibilité de Dataflow via des services cloud, permettant aux clients de louer du temps de calcul sur le matériel sans avoir à l'acheter directement. Ce modèle a été adopté par des entreprises qui ont besoin d'inférence IA haute performance mais ne disposent pas des ressources pour maintenir une infrastructure dédiée. En 2024, SambaNova a levé plus d'un milliard de dollars de financement et continue d'itérer sur son matériel et ses logiciels.
Défis et limites
L'un des principaux défis de Dataflow est la complexité du compilateur. Mapper des modèles arbitraires sur la grille de PE nécessite des algorithmes sophistiqués pour la partition, la planification et l'allocation mémoire. Cette complexité peut entraîner des temps de compilation plus longs, en particulier pour les grands modèles. De plus, la nature statique du graphe rend difficile le support de modèles avec des formes dynamiques ou un flux de contrôle variable, courants dans certaines applications comme l'apprentissage par renforcement.
Une autre limite est le manque de support écosystémique par rapport aux GPU. De nombreux chercheurs et développeurs en IA sont familiers avec CUDA et PyTorch, et ils peuvent hésiter à adopter une nouvelle architecture nécessitant un modèle de programmation différent. SambaNova a atténué ce problème en fournissant des couches de compatibilité, mais des lacunes subsistent. L'entreprise a également fait face à la concurrence d'acteurs plus établis comme Google Cloud et AWS, qui proposent leurs propres accélérateurs personnalisés.
Orientations futures
SambaNova continue de faire évoluer l'architecture Dataflow, en se concentrant sur l'amélioration de l'efficacité de l'entraînement et le support de modèles plus grands. La génération SN40 inclut des améliorations pour le calcul creux et l'arithmétique en précision mixte. L'entreprise explore également l'utilisation de Dataflow pour les appareils de périphérie, bien que le matériel actuel soit principalement conçu pour les centres de données. À mesure que les modèles de IA générative continuent de croître, la demande pour du matériel d'inférence efficace devrait augmenter, et l'approche de Dataflow pourrait devenir plus attractive.
La recherche sur les architectures de flux de données se poursuit également dans le monde académique, avec des groupes au MIT CSAIL et au Berkeley AI Research explorant des idées similaires. Les principes du calcul par flux de données ont une longue histoire, remontant aux années 1970, mais ce n'est que récemment que les progrès dans la fabrication de puces et la technologie des compilateurs les ont rendus pratiques pour les charges de travail IA commerciales. Dataflow de SambaNova représente l'une des implémentations commerciales les plus importantes de ce concept, et son succès dépendra de sa capacité à s'adapter au paysage IA en évolution rapide.
Conclusion
Dataflow est une approche distinctive de l'accélération IA qui privilégie l'efficacité du mouvement des données et la reconfigurabilité. En mappant les modèles sur une grille d'éléments de traitement avec mémoire sur puce, elle offre une alternative convaincante aux GPU traditionnels pour les tâches d'inférence. Bien qu'elle fasse face à des défis en termes de complexité du compilateur et d'adoption par l'écosystème, ses avantages en performance pour les grands modèles de langage ont attiré des investissements significatifs et l'intérêt des clients. À mesure que les modèles IA continuent de croître, les principes sous-jacents à Dataflow pourraient devenir de plus en plus pertinents pour l'industrie informatique dans son ensemble.