Developpez.com - Rubrique Hardware

Le Club des Développeurs et IT Pro

La norme PCIe 4.0 pourra gérer jusqu'à soixante-quatre gigaoctets par seconde

Pour gérer d'énormes jeux de données

Le 2017-06-15 00:28:47, par dourouc05, Responsable Qt & Livres
PCI Express (peripheral component interconnect) est le bus de référence dans les ordinateurs actuels. Il sert notamment à connecter toutes les cartes d’extension, y compris (voire surtout) les cartes graphiques, ainsi que certains SSD. Les cartes PCIe ont une forme bien spécifique pour les enchâsser dans la carte mère, une longue série de points de contact (comme pour PCI, AGP et ISA) ; plusieurs longueurs ont été normalisées, avec un nombre de contacts variables, afin de correspondre aux différents besoins en performance (entre x1 et x16, avec une bande passante qui augmente d’un facteur seize). PCIe, ce n’est pas que ces ports : on peut connecter des SSD à travers des ports M.2, qui peuvent utiliser le protocole PCIe, tout comme les ports externes Thunderbolt (compatibles USB C).

La version 3.0 est sortie en 2010 et permettait un total de huit millions de transferts par seconde (8 GT/s), un transfert étant un échange d’informations (équivalent d’un paquet dans les réseaux informatiques traditionnels). La quatrième version de la norme est maintenant prête (il ne manque que quelques vérifications légales, qui devraient être faites pour fin de l’année) et double la bande passante à seize gigatransferts par seconde. Ainsi, pour un port x16, PCIe 4.0 peut fournir un débit de soixante-quatre gigaoctets par seconde.

Cette augmentation de débit maximum est importante pour bon nombre d’applications, comme les cartes graphiques : pour le traitement de jeux de données de plus en plus grands ou l’utilisation de textures plus détaillées dans les jeux vidéo, les quantités de données à transférer augmentent régulièrement (il est actuellement difficile de remplir entièrement un bus de seize gigaoctets par seconde pour ces applications, mais cela le sera probablement dans les années à venir).



La conversion entre le nombre de transferts par seconde et le débit s’effectue selon la manière d’encoder un paquet. Depuis PCIe 3.0, un encodage 128b/130b est utilisé : cent vingt-huit bits sont codés sur cent trente bits, les deux bits supplémentaires étant utilisés pour détecter et corriger les erreurs de transmission (principalement des horloges non synchronisées). Chaque ligne PCIe est utilisée pour la transmission (en duplex : en envoi ou réception, selon les besoins) : un port x1 définit une seule ligne, un x16 seize lignes.

Puisque l’encodage ne change pas, les gains en débit sont obtenus uniquement par une montée en fréquence de l’émission : PCIe 3.0 fonctionne à huit gigahertz, on peut attendre que la version 4.0 fonctionne à une douzaine de gigahertz, mais aucun chiffre n’est avancé officiellement. Le problème de ces hautes fréquences est que la synchronisation sur une longue distance devient plus difficile : une différence de quelques millimètres sur une piste peut induire un décalage important des paquets dans le temps.

Un avantage de cette augmentation de fréquence est que, pour un débit donné, une carte PCIe aura besoin de moins de lignes : les besoins en énergie pour une même transmission diminuent donc (ce qui est important notamment dans le calcul de haute performance, actuellement limité par ce facteur).

Une version 5.0 est d’ores et déjà en cours de préparation, toujours en utilisant des pistes de cuivre (la 4.0 devait être la dernière sur ce support). La rédaction devrait être achevée pour 2019, avec les premiers produits pour 2020 ou 2021. Le débit annoncé est de cent vingt-huit gigaoctets par seconde (le double de PCIe 4.0), notamment pour suivre dans des applications comme des cartes Ethernet 400 Go/s ou InfiniBand 200 Go/s.

Sources et image : PCIe 4.0 specification finally out with 16 GT/s on tap, PCI-SIG® Fast Tracks Evolution to 32GT/s with PCI Express 5.0 Architecture.
  Discussion forum
8 commentaires
  • Cyäegha
    Membre régulier
    Envoyé par Jipété
    Et pour rester dans le sujet, c'est quoi cette unité "GT" qu'on voit sur l'image ? Par exemple, 2,5 GT/s ? 2,5 Giga-quoi par seconde ?
    Ce sont des "giga-transfers per second".
  • LittleWhite
    Responsable 2D/3D/Jeux
    Pour le grand publique inutile d'attendre puisque nos GPU exploite même pas complètement le pci3.
    Comment l'avez vous déterminé/su ? Moi, j'ai toujours entendu dire que le principal bottleneck des jeux vidéo (et donc des GPU) sont les transferts CPU <-> GPU. D'ailleurs, je pense qu'une solution à cela a été de faire de la mémoire unifiée (partagées entre le CPU et le GPU) sur les consoles.
  • RyzenOC
    Inactif
    Du coup pourquoi sortir du pci4 cette année alors que pci5 sortira dans 1-2ans ?

    Pour le grand publique inutile d'attendre puisque nos GPU exploite même pas complètement le pci3.

    Quand est il de la latence ? qui me semble quand même aussi voir plus important que les débits .
  • foetus
    Expert éminent sénior
    En fait le plus important c'est le nombre de watts délivrés pour les cartes graphiques. Il a eu une fausse promesse en 2010/ PCI 3.0 il me semble, avec une augmentation à 200W.

    Et l'autre truc, comme Intel/ AMD sont radins sur les lignes PCI Express , cela peut être cool de prendre 8 lignes et des performances en 16x
  • RyzenOC
    Inactif
    Envoyé par LittleWhite
    Comment l'avez vous déterminé/su ? Moi, j'ai toujours entendu dire que le principal bottleneck des jeux vidéo (et donc des GPU) sont les transferts CPU <-> GPU. D'ailleurs, je pense qu'une solution à cela a été de faire de la mémoire unifiée (partagées entre le CPU et le GPU) sur les consoles.
    Vous confondez débit et latence !
    d'ou ma remarque à la fin :
    Quand est il de la latence ? qui me semble quand même aussi voir plus important que les débits .
    a la limite les débits peuvent vous intéresser si vous avez sur crossfire avec des cartes amd (qui passe par le pci).
    Pour Nvidia ils ont déja leurs propre techo, leurs cordon sli et pour les pro il y'a le NvLink

    amd ne fait plus leurs propre réseau haute vitesse ou de cordon crossfire il me semble dans leurs dernnier gpu

    Comment l'avez vous déterminé/su ? Moi, j'ai toujours entendu dire que le principal bottleneck des jeux vidéo (et donc des GPU) sont les transferts CPU <-> GPU. D'ailleurs, je pense qu'une solution à cela a été de faire de la mémoire unifiée (partagées entre le CPU et le GPU) sur les consoles.
    Pour prouver l'absurdité de votre remarque comparer les bench avec des gpu sur du pci2 et 3.
    http://www.tomshardware.co.uk/answer...4698/pcie.html
    J'insiste bien que je parle d'une utilisation grand publique !!!
  • Jipété
    Expert éminent sénior
    Envoyé par RyzenOC
    Quand est il de la latence ? qui me semble quand même aussi voir plus important que les débits .
    Vous confondez débit et latence !
    d'ouù ma remarque à la fin :
    Oui mais comme c'est totalement incompréhensible (quel charabia ! Oser exposer ça à la face du monde, faut pas avoir honte, hein !), on peut facilement se gourrer à l'interprétation...

    Reprenons, pour nos lecteurs étrangers :
    Qu'en est-il de la latence, qui me semble quand même aussi, voire plus, importante que les débits ?

    Et pour rester dans le sujet, c'est quoi cette unité "GT" qu'on voit sur l'image ? Par exemple, 2,5 GT/s ? 2,5 Giga-quoi par seconde ?
  • LittleWhite
    Responsable 2D/3D/Jeux
    Envoyé par RyzenOC
    Pour prouver l'absurdité de votre remarque comparer les bench avec des gpu sur du pci2 et 3.
    http://www.tomshardware.co.uk/answer...4698/pcie.html
    J'insiste bien que je parle d'une utilisation grand publique !!!
    Je ne suis pas certain que cela prouve quoi que ce soit, sachant que les développeurs de jeux vidéo vont évidemment éviter ce bottleneck (et donc (re)charger au minimum les données CPU -> GPU). Il faudrait donc un bench spécifique (chargement d'une texture, de modèles et upload sur le GPU) pour vraiment constater le problème (ou pour vraiment dire que mes propos sont absurdes). Ou encore, prendre un jeu ayant des modèles dont la géométrie varie (les animations peuvent aussi être effectuées par le GPU pour diminuer les transferts).