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 :
- SDF - Scalable Data Fabric
Le SDF est principalement responsable du transport des données entre les différents composants.
Il permet notamment les communications entre :
- coeurs ;
- complexes de coeurs ;
- caches ;
- contrôleurs mémoire ;
- contrôleurs d'entrées/sorties ;
- différents dies ;
- selon la plateforme, différents processeurs.
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é :
- SCF - Scalable Control Fabric
Il transporte et coordonne davantage les informations relatives au contrôle du système.
Ses fonctions peuvent notamment concerner :
- gestion de l'alimentation ;
- gestion thermique ;
- surveillance ;
- sécurité ;
- initialisation et réinitialisation ;
- gestion de différents états du système.
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 :
- Infinity Fabric
- → SDF : données
- → SCF : contrôle
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 :
- AMD Ryzen
basés sur :
- Zen
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 :
- Ryzen → ordinateurs personnels
- Threadripper → stations de travail
- EPYC → serveurs
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 :
- une seule très grande puce
AMD peut utiliser :
- plusieurs petits dies spécialisés
Dans les processeurs EPYC modernes, on retrouve notamment des :
- CCD - Core Complex Dies
et un :
- IOD - I/O Die
Les CCD contiennent les cours CPU et leurs caches associés.
L'I/O Die contient ou dessert différentes fonctions telles que :
- contrôleurs mémoire ;
- PCI Express ;
- interfaces Infinity Fabric ;
- fonctions d'Entrée/sortie ;
- fonctions de sécurité.
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 :
- MCLK - horloge mémoire
- FCLK - horloge Infinity Fabric
- UCLK - horloge du contrôleur mémoire
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 :
- FCLK
lorsqu'ils règlent la mémoire dans le BIOS.
- FCLK
Le terme :
- FCLK - Fabric Clock
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 :
- DDR4-3200
la fréquence réelle de l'horloge mémoire est :
- 1600 MHz
et une configuration synchronisée peut utiliser :
- MCLK = 1600 MHz
- FCLK = 1600 MHz
Il faut ici distinguer le débit DDR annoncé de l'horloge physique :
- DDR4-3200 = 3200 MT/s
mais :
- MCLK = 1600 MHz
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 :
- couplé
ou :
- découplé
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 :
- AMD EPYC
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 :
- couche physique
et :
- protocole utilisé
Infinity Fabric n'est pas simplement « du PCI Express », même lorsque certaines ressources physiques sont partagées.
- GMI et xGMI
Deux termes apparaissent régulièrement dans la documentation AMD :
- GMI - Global Memory Interconnect
et :
- xGMI - External Global Memory Interconnect
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 :
- NUMA - Non-Uniform Memory Access
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 :
- processus ;
- threads ;
- pages mémoire.
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 :
- AMD Instinct
destinés notamment :
- au calcul scientifique ;
- au HPC ;
- à l'intelligence artificielle ;
- à l'apprentissage automatique.
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 :
- forte bande passante ;
- faible latence ;
- communication GPU-GPU ;
- partage efficace des données ;
- meilleure évolutivité pour HPC et IA.
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 :
- Infinity Fabric
et :
- Infinity Architecture
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 :
- fréquence ;
- largeur ;
- protocole ;
- nombre de liens ;
- topologie ;
- débit ;
- couche physique ;
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 :
- 3 ou 4 liens Infinity Fabric
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 :
- davantage de bande passante CPU ↔ CPU
ou :
- davantage de lignes PCI Express
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 :
- 512 Go/s entre processeurs
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 :
- Zen 5
et :
- Zen 5c
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 :
- Infinity Fabric à l'intérieur de l'architecture AMD
et :
- PCI Express pour les périphériques externes
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 :
- processeur Intel ↔ chipset/PCH
Infinity Fabric remplit un ensemble beaucoup plus large de fonctions dans les architectures AMD :
- cour ↔ cache
- CCD ↔ I/O Die
- CPU ↔ CPU
- GPU ↔ GPU, selon plateforme
- contrôleurs mémoire ↔ composants de calcul
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 :
- architecture évolutive ;
- forte bande passante ;
- faible latence ;
- communication cohérente selon l'usage ;
- prise en charge des architectures multipuces ;
- interconnexion des chiplets ;
- communication CPU ↔ CPU ;
- communication entre différents dies ;
- intégration avec les contrôleurs mémoire et les entrées/sorties ;
- prise en charge des architectures serveur NUMA ;
- utilisation dans les CPU et accélérateurs ;
- adaptation à de nombreuses générations de produits ;
- rôle essentiel dans la stratégie chiplet d'AMD.
- Inconvénients et contraintes
Infinity Fabric présente également certaines contraintes :
- technologie propriétaire AMD ;
- caractéristiques variables selon les générations ;
- topologie pouvant influencer la latence ;
- performances dépendantes de la localisation des données ;
- importance du placement NUMA dans les grands serveurs ;
- fréquence du Fabric pouvant influencer la latence mémoire sur certaines générations Ryzen ;
- optimisation plus complexe dans les systèmes comportant de nombreux dies ou sockets.
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 :
- coeur → cache local
est généralement plus rapide que :
- coeur → autre domaine → mémoire
et, dans un serveur multiprocesseur :
- CPU → mémoire locale
est généralement plus rapide que :
- CPU → Infinity Fabric/xGMI → autre CPU → mémoire distante
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.