Récemment, j’ai mis à jour mon installation eGPU : mon montage à base d’ExpressCard passe à la trappe pour un boîtier Thunderbolt 2 (en mode Thunderbolt 1).
La bande passante en eGPU
On voit souvent des gens qui parlent des eGPU en expliquant que la bande passante est un énorme problème, mais il s’agit dans 90 % des cas de personne qui se basent sur les chiffres théoriques, sans jamais avoir testé. Une carte graphique moderne, donc, s’interface généralement en PCI-Express 3.0 avec 16 lignes, soit ~128 Gb/s. Avec le codage 128b/130b (130 bits utilisés pour 128 bits utiles), ça donne environ 16 Go/s. En PCI-Express 1.1, un emplacement 16x atteint 40 Gb/s (~4 Go/s en codage 8b/10b) et il monte à 80 Gb/s en PCI-Express 2.0 (8 Go/s).
En ExpressCard classique, on dispose d’une ligne PCI-Express 1.1 (~250 Mo/s), en ExpressCard 2.0 (et avec mon montage), on passe à une ligne PCI-Express 2.0 (~500 Mo/s). Le Thunderbolt 1 monte à 10 Gb/s dans le meilleur des cas, soit ~1 Go/s à cause du codage 8b/10b. Le Thunderbolt 2 atteint 16 Gb/s (~2 Go/s) et le Thunderbolt 3 à 32 Gb/s (~4 Go/s). Les différences viennent du fonctionnement des normes. Techniquement, la première version du Thunderbolt dispose de 10 Gb/s pour les données et 10 Gb/s pour la vidéo, mais synchronise le bus PCI-Express en version 2.0 sur quatre lignes (16 Gb/s). Le contrôleur ne fournit ensuite que 10 Gb/s. En Thunderbolt 2, la norme monte à 20 Gb/s au total, avec un partage entre la vidéo et les données, mais sur un bus synchronisé en PCI-Express 2.0 / 4x (16 Gb/s). Le débit maximal est donc de 16 Gb/s. Même chose en Thunderbolt 3 : 40 Gb/s en théorie, 32 Gb/s en pratique (PCI-Express 3.0 en 4x).
Mes deux montages
Mon premier kit eGPU comprend un adaptateur Thunderbolt vers ExpressCard 2.0, puis ExpressCard 2.0 vers PCI-Express 16x. Il donne une bande passante maximale de 500 Mo/s. Le second est un Thunder2 de chez AKiTio. vendu ~250 €, ce boîtier fonctionne en Thunderbolt 2 mais je l’utilise en Thunderbolt 1 (~1 Go/s). Le boîtier nécessite quelques modifications pour alimenter correctement une GPU – ici une GeForce GTX 1060 (Pascal) – : j’ai utilisé l’alimentation de 120 W de mon ancien boîtier ViDock pour alimenter le bus lui-même (AKiTio ne fournit qu’une alimentation de 60 W) et une alimentation ATX externe pour la carte. Globalement, le boîtier ne permet pas d’alimenter correctement un GPU de base, en ne fournissant officiellement que 25 W sur le bus (au lieu de 75 W) et en limitant la taille des cartes. Pour accepter un gros GPU, il faut donc bidouiller un peu et sortir le PCB du boîtier.
Les performances
Avec F1 2016, un jeu récent, les performances évoluent assez peu. En 1080p sur un écran externe, avec les options réglées sur Supérieurs et en activant l’AA 2x, on passe de 37 fps de moyenne à 42 fps de moyenne (+13%). Dans ce jeu, le CPU de mon MacBook Air limite un peu (un simple dual core à 3,2 GHz dans le meilleur des cas). Avec Unigine Heaven, un benchmark, le réglage « Extreme » passe de 51 à 59 fps, soit un gain d’un peu plus de 15 % en fps. La différence n’est pas énorme en considérant que la bande passante réelle est doublée. Les gains avec du Thunderbolt 2 et 3 sont encore plus réduits, vu que la bande passante n’évolue pas autant qu’entre l’ExpressCard et le Thunderbolt. Très clairement, de toute façon, le facteur limitant dans mon cas reste le CPU.
Conclusion
Très clairement, le gain reste assez faible. C’est un peu plus compact (surtout avec une carte graphique courte) et réutilisable avec des performances plus élevées en Thunderbolt 2 ou même Thunderbolt 3 (l’adaptateur Thunderbolt 2 vers 3 d’Apple le permet), mais ça ne vaut pas vraiment le coût de changer si vous disposez déjà d’un adaptateur ExpressCard (ou équivalent).
Bonjour,
Merci pour ce suivi eGPU.
J’ai un systeme similaire avec un boitier akitio en TB1
Est-ce que la version de Mac OS a une influence les performances ?
Je suis avec El Capiten, une GTX960 sur un MBP non retina de 2012.
Le test Heaven avec les mêmes paramètres me donne un score de 32 avec un max ne dépassant pas 67…
Merci
J’ai aussi joué avec mon NUC4 et les eGPU :
PNY GTX750ti : PCIe v3.0 x16
EXP GDC adapter to Mini-PCIe : PCIe x16 with DMI 5GT (PCIe v2.0 ?) to Mini-PCIe x1
Intel NUC D54250 : Intel Core i5-4250 (DMI 5GT, PCIe v2.0, 12 lanes: 4 x1 + 2 x4)
Du coup je me retrouvais avec une ligne PCIe v2.0 qui tournait à 390 MiB/s (410 Mo/s) pas super intéressant … j’ai revendu la 750 Ti du coup !
screenshot :http://forum.netkas.org/index.php?action=dlattach;topic=8400.0;attach=3508)
@Patrick : j’ai une GTX 1060, c’est nettement plus performant à la base.
J’ai la même alim FSP ^^