Section courante

A propos

Section administrative du site

Infinity Fabric

AMD
Architecture

Introduction

L'Infinity Fabric est une technologie d'interconnexion propriétaire développée par AMD afin de permettre aux différents composants de ses processeurs, accélérateurs et systèmes multipuces de communiquer avec une grande bande passante et une faible latence. Elle apparaît avec la génération Zen en 2017 et devient un élément fondamental de l'architecture des processeurs Ryzen, EPYC et de plusieurs générations de GPU et accélérateurs AMD. Son rôle dépasse celui d'un simple bus : Infinity Fabric constitue une infrastructure de communication permettant d'échanger des données, de maintenir la cohérence mémoire et de transporter des informations de contrôle entre les différentes parties d'un système.

Infinity Fabric joue notamment un rôle essentiel dans la stratégie chiplet d'AMD. Au lieu de fabriquer systématiquement un processeur sous la forme d'une seule grande puce monolithique, AMD peut répartir ses fonctions entre plusieurs dies spécialisés. Dans les processeurs EPYC modernes, par exemple, les dies contenant les coeurs de calcul sont reliés au Die d'entrées/sorties par Infinity Fabric. Celui-ci assure ensuite l'accès à la mémoire, aux interfaces PCI Express et aux autres ressources du processeur. AMD décrit ainsi Infinity Fabric comme l'interconnexion utilisée entre les CPU, entre les composants d'une architecture multipuce et entre les coeurs, la mémoire et les entrées/sorties.

La technologie peut également dépasser les limites physiques d'un seul boîtier. Sur les serveurs EPYC à deux sockets, des liens Infinity Fabric, également associés à la technologie xGMI, assurent les communications cohérentes entre les deux processeurs. Sur certaines générations d'accélérateurs AMD Instinct, Infinity Fabric sert également aux communications rapides entre GPU ou entre les différents dies constituant un accélérateur.

Infinity Fabric doit donc être considérée comme une famille d'interconnexions évolutives, et non comme un bus d'extension comparable à ISA, PCI ou AGP. Ses caractéristiques physiques, sa largeur, sa fréquence et son débit ne sont pas universels : ils dépendent fortement de la génération et du produit AMD concerné. C'est un point important pour éviter plusieurs erreurs fréquentes dans les descriptions techniques d'Infinity Fabric.

Spécifications générales

Spécification Description
Nom Infinity Fabric
Fabricant AMD
Introduction commerciale 2017, avec les premières architectures Zen
Type Architecture d'interconnexion interne et externe
Architecture initiale Scalable Data Fabric (SDF) et Scalable Control Fabric (SCF)
Fonction principale Interconnecter les différents composants d'un processeur ou d'un système AMD
Communication interne Coeurs, caches, contrôleurs mémoire, I/O, chiplets
Communication externe Selon les produits : CPU ↔ CPU, GPU ↔ GPU, etc.
Cohérence mémoire/cache Oui, dans les configurations et protocoles qui la prennent en charge
Architecture multipuce Oui
Architecture multiprocesseur Oui
Processeurs associés Ryzen, Threadripper, EPYC et autres familles Zen
Accélérateurs associés Plusieurs générations Radeon/Instinct et architectures CDNA
Technologies associées xGMI, Infinity Architecture
Fréquence Variable selon la génération et l'implémentation
Largeur Variable selon le type de lien
Débit Variable selon la génération et le produit
État Technologie toujours utilisée et continuellement développée par AMD

AMD continue effectivement d'utiliser Infinity Fabric dans ses architectures actuelles. Les processeurs EPYC 9005, par exemple, possèdent des connexions Infinity Fabric entre les dies CPU et le die d'entrées/sorties.

Pourquoi AMD a développé Infinity Fabric

Un processeur moderne n'est plus simplement constitué de :

CPU → mémoire

Il comporte de nombreux composants devant communiquer :

Coeurs CPU

Caches

Contrôleurs mémoire

Contrôleurs PCI Express

Sécurité

Entrées/sorties

La situation devient encore plus complexe avec les processeurs à plusieurs dies.

On peut alors obtenir :

CCD ↔ I/O Die ↔ CCD

et, dans un serveur multiprocesseur :

CPU 1 ↔ Infinity Fabric ↔ CPU 2

Une infrastructure de communication rapide et cohérente devient donc indispensable.

Infinity Fabric fournit cette infrastructure.

Scalable Data Fabric

Dans son architecture originelle, Infinity Fabric peut être comprise comme comportant deux grands plans fonctionnels.

Le premier est :

Le SDF est principalement responsable du transport des données entre les différents composants.

Il permet notamment les communications entre :

Dans les premières implémentations Zen, les complexes de cours sont reliés au SDF par des interfaces assurant notamment le transport cohérent des données.

Scalable Control Fabric

Le second plan est historiquement désigné :

Il transporte et coordonne davantage les informations relatives au contrôle du système.

Ses fonctions peuvent notamment concerner :

La séparation des communications de données et de contrôle permet à l'architecture d'être adaptée à des systèmes comportant un nombre important de composants.

On peut donc simplifier le principe ainsi :

Cette représentation est particulièrement appropriée pour expliquer les premières générations d'Infinity Fabric. Les implémentations plus récentes ont considérablement évolué et il ne faut pas supposer que tous leurs détails internes sont identiques à ceux de Zen première génération.

Infinity Fabric et Zen

Infinity Fabric devient particulièrement connue du grand public avec l'introduction des premiers processeurs :

basés sur :

en 2017.

Dans cette première génération, AMD organise notamment les coeurs en complexes de calcul et utilise Infinity Fabric pour assurer les communications entre les différentes parties du processeur.

Cela permet à AMD de développer une architecture pouvant être adaptée à différents marchés :

Le concept d'interconnexion évolutive est particulièrement important pour EPYC, où le nombre de cours, de contrôleurs mémoire et de ressources d'Entrée/Sortie est considérablement plus élevé.

Infinity Fabric et les chiplets

L'une des utilisations les plus importantes d'Infinity Fabric apparaît avec la généralisation des chiplets.

Au lieu de fabriquer :

AMD peut utiliser :

Dans les processeurs EPYC modernes, on retrouve notamment des :

et un :

Les CCD contiennent les cours CPU et leurs caches associés.

L'I/O Die contient ou dessert différentes fonctions telles que :

Les CCD communiquent avec l'I/O Die au moyen d'Infinity Fabric. Sur EPYC 8004, par exemple, AMD indique que chaque CCD possède une liaison GMI dédiée vers l'I/O Die.

Exemple simplifié d'un processeur à chiplets

Une représentation simplifiée peut être :

Le schéma est volontairement simplifié : la topologie réelle varie fortement entre les générations Ryzen, Threadripper et EPYC.

Infinity Fabric et la mémoire

Sur certaines générations de processeurs Ryzen, la fréquence d'Infinity Fabric est particulièrement importante pour les performances de la mémoire.

On rencontre alors plusieurs termes :

Le rapport entre ces fréquences peut avoir une influence sur la latence mémoire.

C'est notamment pour cette raison que les amateurs d'optimisation de Ryzen parlent souvent du :

lorsqu'ils règlent la mémoire dans le BIOS.

Le terme :

désigne une horloge associée à Infinity Fabric sur plusieurs générations Ryzen.

Avec certaines générations DDR4 de Ryzen, un fonctionnement synchronisé entre la mémoire et le Fabric permet de réduire la latence.

Par exemple, pour de la :

la fréquence réelle de l'horloge mémoire est :

et une configuration synchronisée peut utiliser :

Il faut ici distinguer le débit DDR annoncé de l'horloge physique :

mais :

Cette distinction évite l'erreur fréquente consistant à dire qu'une DDR4-3200 possède une horloge physique de 3200 MHz.

Mode couplé et mode découplé

Infinity Fabric et la mémoire ne sont pas obligatoirement synchronisées de la même manière dans toutes les configurations.

Certaines plateformes permettent un fonctionnement :

ou :

Dans un fonctionnement couplé, synchroniser certaines horloges peut permettre de diminuer la latence.

Dans un fonctionnement découplé, il devient possible d'utiliser une fréquence mémoire supérieure sans imposer nécessairement la même fréquence au Fabric.

Ce compromis entre bande passante et latence est également documenté sur certaines plateformes EPYC. La NASA indique par exemple que ses systèmes EPYC Rome peuvent fonctionner avec fréquence mémoire et Infinity Fabric couplées ou découplées selon les besoins de la charge de travail.

Infinity Fabric et EPYC

Infinity Fabric prend une importance encore plus grande avec les processeurs :

destinés aux serveurs.

Un processeur EPYC peut contenir de nombreux dies et un très grand nombre de coeurs.

Infinity Fabric permet alors d'interconnecter :

CCD ↔ I/O Die

mais également, dans les plateformes compatibles :

CPU ↔ CPU

AMD explique ainsi que le cour de son Infinity Architecture repose sur une interconnexion utilisée entre les CPU, les composants de l'architecture multipuce, les cours, la mémoire, les interfaces PCI Express et les mécanismes de sécurité.

Infinity Fabric entre deux processeurs

Dans un serveur EPYC à deux sockets, il faut permettre aux deux processeurs de communiquer.

Schématiquement :

Sur EPYC 7003, AMD indique que les deux SoC sont reliés par leurs liens Infinity Fabric, également appelés External Global Memory Interconnect (xGMI). Ces connexions fournissent une interconnexion à haute bande passante et faible latence entre les processeurs.

Relation entre Infinity Fabric et PCI Express

Une caractéristique particulièrement intéressante de certaines générations EPYC est que des interfaces physiques peuvent être configurées pour différentes fonctions.

Sur EPYC 7003, par exemple, AMD indique que les liens Infinity Fabric interprocesseurs utilisent les mêmes connexions physiques que certaines lignes PCI Express. Un lien peut utiliser jusqu'à 16 lignes physiques.

Sur EPYC 9004, AMD explique également que les mêmes interfaces physiques peuvent servir à PCIe Gen 5 ou aux connexions Infinity Fabric, avec des protocoles différents au-dessus de la couche physique.

Il faut donc distinguer :

et :

Infinity Fabric n'est pas simplement « du PCI Express », même lorsque certaines ressources physiques sont partagées.

Deux termes apparaissent régulièrement dans la documentation AMD :

et :

GMI est notamment utilisé pour certaines communications internes entre dies.

xGMI est employé pour des connexions externes cohérentes, notamment entre processeurs ou accélérateurs selon les générations.

Sur EPYC 8004, AMD précise que chaque CCD communique avec l'I/O Die à travers une liaison GMI dédiée.

Cohérence

L'un des rôles importants d'Infinity Fabric est de participer au maintien d'une vue cohérente des données dans les architectures qui l'exigent.

Prenons un système dans lequel plusieurs unités de calcul utilisent différentes portions de cache et de mémoire.

Si une unité modifie une donnée, les mécanismes de cohérence doivent empêcher une autre unité d'utiliser indéfiniment une ancienne copie devenue invalide.

Dans EPYC 8004, AMD précise explicitement que l'I/O Die et son Infinity Fabric central participent au maintien de la cohérence des caches.

Architecture NUMA

Dans les systèmes comportant plusieurs processeurs ou plusieurs domaines mémoire, toutes les zones de mémoire ne présentent pas nécessairement la même latence.

On parle alors de :

Infinity Fabric permet aux différents éléments du système de communiquer, mais accéder à une mémoire physiquement proche reste généralement moins coûteux qu'accéder à une mémoire située derrière une autre partie de la topologie.

Le système d'exploitation doit donc connaître cette organisation afin de placer intelligemment :

Sur les systèmes EPYC multiprocesseurs, cette organisation NUMA peut avoir une influence importante sur les performances.

Infinity Fabric dans les GPU et accélérateurs

Infinity Fabric n'est pas exclusivement une technologie CPU.

AMD l'utilise également dans plusieurs générations de GPU et surtout dans ses accélérateurs :

destinés notamment :

Sur l'architecture CDNA 2 des Instinct MI250, les dies GPU disposent d'interfaces Infinity Fabric permettant de les connecter à d'autres composants du système.

Infinity Fabric dans les systèmes multi-GPU

Dans les plateformes de calcul intensif, plusieurs accélérateurs peuvent être reliés par Infinity Fabric.

On peut obtenir conceptuellement :

L'objectif est de fournir :

AMD utilise encore cette approche avec les accélérateurs Instinct modernes. Pour les systèmes MI300, AMD décrit une génération avancée d'Infinity Architecture destinée à fournir une interconnexion à haut débit et à faible latence.

Infinity Fabric et Infinity Architecture

Il faut distinguer deux expressions AMD :

et :

Elles sont liées, mais elles ne sont pas parfaitement synonymes.

Infinity Fabric désigne principalement la technologie d'interconnexion permettant aux composants de communiquer.

Infinity Architecture représente un concept architectural AMD plus large dans lequel les différentes technologies d'interconnexion et de cohérence sont intégrées à l'échelle des processeurs, accélérateurs et plateformes.

AMD décrit aujourd'hui Infinity Fabric comme une technologie utilisée au sein de son Infinity Architecture.

Évolution

Infinity Fabric n'est pas resté figé depuis 2017.

La technologie a évolué parallèlement aux générations :

Zen → Zen 2 → Zen 3 → Zen 4 → Zen 5

ainsi qu'aux générations d'accélérateurs AMD.

Les caractéristiques de :

peuvent donc changer considérablement.

Il serait ainsi incorrect d'attribuer une fréquence ou un débit unique à «Infinity Fabric» dans son ensemble.

Exemple : EPYC 7003

Avec les processeurs EPYC 7003, deux processeurs d'un serveur bi-socket peuvent être reliés par :

selon la configuration choisie par le constructeur.

AMD précise qu'un lien utilise jusqu'à 16 lignes physiques, certaines ressources pouvant alternativement servir aux interfaces PCI Express.

Cette flexibilité permet au constructeur du serveur de privilégier :

ou :

selon la fonction du serveur.

Exemple : EPYC 9004

La génération EPYC 9004 améliore encore les communications interprocesseurs.

AMD indique que quatre liens Infinity Fabric peuvent fournir une bande passante théorique maximale cumulée de :

dans la configuration correspondante.

Cette valeur est propre à cette implémentation et ne doit donc pas être utilisée comme « débit d'Infinity Fabric » en général.

Exemple : EPYC 9005

Les processeurs EPYC 9005 utilisant les architectures :

et :

continuent d'utiliser Infinity Fabric.

AMD indique que leur I/O Die dispose de connexions Infinity Fabric vers les dies CPU et assure également la communication avec la mémoire, les entrées/sorties PCIe Gen 5 et différentes fonctions de sécurité.

Infinity Fabric reste donc une technologie centrale dans les architectures AMD actuelles.

Infinity Fabric contre HyperTransport

Infinity Fabric succède conceptuellement à plusieurs fonctions autrefois associées à :

chez AMD.

Caractéristique HyperTransport Infinity Fabric
Développeur principal Consortium HyperTransport / AMD fortement impliqué AMD
Période AMD Principalement années 2000-2010 Depuis 2017
Interconnexion CPU Oui Oui
Communication entre composants Oui Oui
Chiplets modernes Non conçu initialement pour cela Oui
Contrôle système intégré Plus limité Architecture plus complète
CPU Zen Non Oui
EPYC Non Oui
GPU/accélérateurs AMD modernes Non Oui

Infinity Fabric peut donc être vue comme une évolution majeure de la stratégie d'interconnexion d'AMD, mais elle ne doit pas être décrite comme une simple nouvelle version d'HyperTransport. La NASA la décrit d'ailleurs comme une technologie ayant évolué à partir de l'interconnexion HyperTransport tout en constituant une architecture cohérente et évolutive plus générale.

Infinity Fabric contre PCI Express

Infinity Fabric et PCI Express ne remplissent pas exactement la même fonction.

Caractéristique Infinity Fabric PCI Express
Développeur AMD PCI-SIG
Type Interconnexion système AMD Interconnexion standardisée
CPU ↔ chiplet Oui Généralement non
CPU ↔ CPU AMD Oui Pas directement comme protocole CPU cohérent classique
GPU ↔ GPU AMD Selon produit Oui, mais fonctionnement différent
Périphériques PC Non comme bus générique standard Oui
Cartes graphiques Interconnexion interne/système Interface standard de la carte
SSD NVMe Non directement comme interface standard Oui
Standard industriel ouvert Non Oui

Un ordinateur Ryzen peut donc utiliser simultanément :

et :

Les deux technologies sont complémentaires.

Infinity Fabric contre DMI

Le DMI (Direct Media Interface) d'Intel et Infinity Fabric sont parfois rapprochés parce qu'ils constituent tous deux des interconnexions.

La comparaison doit néanmoins être faite avec prudence.

DMI sert principalement à relier :

Infinity Fabric remplit un ensemble beaucoup plus large de fonctions dans les architectures AMD :

Infinity Fabric est donc davantage une infrastructure d'interconnexion globale qu'un simple lien CPU-chipset.

Comparaison avec d'autres architectures

Technologie Fabricant/organisme Introduction Fonction principale
ISA IBM 1981 Cartes d'extension
Multibus Intel Années 1970 Systèmes modulaires
HyperTransport HyperTransport Consortium 2001 Interconnexion haute vitesse
PCI Express PCI-SIG 2003/2004 Périphériques haute vitesse
DMI Intel 2004 CPU ↔ chipset
Infinity Fabric AMD 2017 Interconnexion interne et système

Cette comparaison montre pourquoi Infinity Fabric ne doit pas être classée exactement dans la même catégorie que ISA, PCI ou AGP.

Avantages

Infinity Fabric présente plusieurs avantages importants :

Infinity Fabric présente également certaines contraintes :

Certaines de ces caractéristiques ne constituent pas des « défauts » au sens strict, mais plutôt des conséquences normales d'une architecture distribuée comportant plusieurs unités de calcul et plusieurs domaines mémoire.

Importance de la latence

Infinity Fabric fournit une interconnexion rapide, mais cela ne signifie pas que toutes les communications présentent exactement la même latence.

Par exemple :

est généralement plus rapide que :

et, dans un serveur multiprocesseur :

est généralement plus rapide que :

C'est pourquoi l'architecture NUMA et la localisation des données demeurent importantes même avec une interconnexion très performante.

Importance historique

L'Infinity Fabric constitue l'une des technologies fondamentales ayant permis à AMD de développer des processeurs modernes utilisant massivement les chiplets. Au lieu de dépendre exclusivement de grandes puces monolithiques, AMD peut assembler plusieurs dies de calcul et d'entrées/sorties spécialisés et les faire fonctionner comme les composants d'un processeur cohérent.

Cette technologie joue également un rôle essentiel dans la montée en puissance des processeurs EPYC. L'interconnexion doit être capable de relier un nombre considérable de cours aux contrôleurs mémoire, aux entrées/sorties et, dans les serveurs bi-socket, à un second processeur. Les générations EPYC récentes continuent d'utiliser Infinity Fabric comme élément central de cette architecture.

Infinity Fabric s'est en outre étendue au domaine des accélérateurs. Les produits AMD Instinct utilisent cette technologie pour assurer des communications rapides entre différentes unités de calcul et différents composants, ce qui est particulièrement important dans les systèmes HPC et d'intelligence artificielle.

Infinity Fabric doit finalement être comprise non comme un simple « bus AMD », mais comme une architecture d'interconnexion évolutive couvrant plusieurs niveaux d'un système informatique. Elle peut relier des blocs à l'intérieur d'un die, plusieurs dies à l'intérieur d'un processeur, plusieurs processeurs ou plusieurs accélérateurs selon le produit. Cette flexibilité explique pourquoi, depuis son introduction avec Zen en 2017, Infinity Fabric est devenue l'un des éléments structurants de l'architecture matérielle d'AMD.



Dernière mise à jour: Vendredi, le 31 janvier 2020