J’ai pu tester le Razer Core X, un boîtier eGPU qui est officiellement compatible macOS.
Je teste des boîtiers eGPU depuis des années et le Core X a l’avantage d’aller à l’essentiel pour un prix correct (300 €). Ce boîtier est assez gros – on pourrait monter un PC complet dedans – mais a quelques avantages. Premièrement, l’espace interne est large : on peut mettre n’importe quel GPU, même long, même haut. Mon Akitio Thunder 2, par exemple, est trop court pour la majorité des cartes. Ensuite, il intègre une alimentation de 650 W, suffisante pour n’importe quel GPU, qui peut fournir 100 W à un ordinateur pour l’alimenter. Enfin, il est discret à l’usage : l’alimentation s’entend peu, tout comme le gros ventilateur interne. Et avec les GPU modernes, les ventilateurs s’arrêtent en cas de charge faible. Sans écran connecté, pour des calculs par exemple, le GPU ne tourne qu’en charge par exemple (donc pas nécessairement souvent).
Il n’est pas sans défaut, le premier est – pour moi – le fait qu’il n’a qu’un seul connecteur Thunderbolt 3. Impossible de chaîner, donc. Ensuite, le câble est plutôt court (50 cm) mais c’est une limite technique en Thunderbolt 3. Razer vend un câble actif de 2 mètres pour 60 $ (je n’ai pas le prix ici) et Apple aussi (80 €) mais ils limitent la charge à 60 W. Globalement, en Thunderbolt 3, il faut des câbles courts pour ne pas exploser les prix et transférer plus de 60 W. Enfin, il n’a ni port USB, ni rien d’autre, mais ça permet de diminuer le prix. Razer vend le Core v2 pour 500 €, qui est plus compact (mais moins puissant) et qui possède de l’USB 3 (4 prises), des LEDs et de l’Ethernet, mais pas de second Thunderbolt 3. D’ailleurs, sur le Core v2, les périphériques USB et Ethernet sont sur un second contrôleur Thunderbolt, chaîné en interne, pour ne pas réduire la bande passante.
Le support natif de macOS
J’ai testé dans des conditions idéales : une carte graphique AMD supportée nativement (Radeon RX 580) et un Mac supporté nativement (MacBook Pro 2017). Avec ça, sous High Sierra à jour, il suffit de brancher le eGPU à chaud et ça fonctionne. Apple a implémenté le branchement à chaud, et le débranchement (presque) à chaud : il faut éjecter le GPU manuellement. cette opération va fermer les applications qui l’utilisent, éventuellement en vous prévenant, et les relancer directement. Actuellement (début juin 2018), le support eGPU fonctionne sans écran externe pour l’OpenCL (les calculs) mais nécessite dans la majorité des cas un écran externe pour la 3D. Plus exactement, Apple explique que c’est techniquement possible d’effectuer un rendu sur l’eGPU et d’afficher sur un écran qui ne lui est pas relié (un écran Thunderbolt, l’écran d’un iMac ou d’un MacBook Pro, etc.) mais aucune application ne le propose. Le seul exemple que j’ai, c’est un code de démo d’Apple qui permet de forcer le GPU de son choix.
En calcul, passer de la Radeon 560 Pro du Mac à la Radeon RX 580 externe se voit : elle est pratiquement quatre fois plus rapide. La carte externe a plus de deux fois plus d’unités (36 vs. 16) et une fréquence très nettement plus élevée (1 411 vs. 907 MHz), sans même prendre en compte la gestion de la consommation. Dans les jeux, forcément, la RX 580 sur un écran externe est vraiment plus rapide, c’est flagrant avec F1 2016. Bon, je n’ai pas des masses de jeux sur Mac, mais ça reste nettement meilleur.
Question charge, le boîtier fournit 100 W au Mac, contre 85 W avec le chargeur de base.
Bidouille (ou pas)
Pour aller plus loin que le support natif, il y a quelques bidouilles. Attention, elles demandent de désactiver le SIP et doivent être appliquées à chaque MAJ de l’OS.
La première permet la prise en charge des cartes AMD plus anciennes : Radeon R9 en général, RX 460/560, etc. C’est une extension à ajouter, rien de compliqué. La seconde, c’est si vous voulez utiliser un eGPU avec une carte nVidia. Il faut patcher l’OS pour qu’il accepte, et installer les pilotes nVidia. C’est aussi le même patch qui active le support sur les Mac en Thunderbolt 1 ou 2.
Plusieurs eGPU
Dernier point, on peut parfaitement mettre plusieurs eGPU. Pas avec le Core X directement, qui n’a pas de prise pour chaîner, mais avec un second boîtier sur une des autres prises du Mac. Attention aux performances : sur les MacBook Pro 13 pouces avec Touch Bar, les ports de droites sont plus lents (20 Gb/s au lieu de 40 Gb/s). Ici, j’ai testé avec une Radeon RX 570 dans un boîtier Akitio Thunderbolt 2 en bout de chaîne (sixième position, avec des périphériques Thunderbolt 1) et la bande passante devient franchement faible.
Un bon rapport qualité/prix
Le Core X a l’avantage de ne pas être trop cher (300 €) et les prix ne descendrons probablement jamais beaucoup plus bas. En comptant le prix du boîtier (de bonne qualité), d’une alimentation interne correcte (ici 650 W), du contrôleur Thunderbolt et du câble, le prix réel des composants doit être entre 150 et 200 €. Avec la TVA et les marges, 300 € me semble correct. Et il ne faut pas oublier qu’en plus de gérer le eGPU, le boîtier fait office de chargeur (100 W).
Les jeux
Entre le moment de l’écriture de l’article et la publication, Feral a proposé son premier jeux optimisé : Rise of the Tomb Raider. Il prend en charge le eGPU officiellement et je suppose que Feral a suivi les indications d’Apple pour éviter les pertes de performances. Par contre, le jeu ne propose le eGPU que sur écran externe. Sur un MacBook Pro 2017 (15 pouces, 2,8 GHz), la carte interne (Radeon Pro 560 4 Go) atteint 19,4 fps de moyenne en 1080p/élevé, une Radeon RX 580 dans le boîtier externe atteint plus du double (54,4). C’est plutôt encourageant, donc.
Super article Pierre merci !
Pourrais-tu en prime nous mettre quelques captures d’écran ou extraits vidéos de Rise of the Tomb Raider ? Ca permettrait en plus de se rendre compte de l’évolution avec Tomb Raider II dont tu as fait l’article cette semaine.
Bonne journée
Je sais pas si tu as entendu parler de ce script pour basculer sur une accélération de l’écran interne.
https://github.com/mayankk2308/set-egpu
Ca a l’air de pas mal marcher (mais je n’ai pas testé).
Je n’ai plus le eGPU il faut que je vérifie si ça fonctionne avec mon « vieux » eGPU en Thunderbolt 2 (et que je trouve une carte à mettre dedans aussi)
Bonjour
Article très interessant comme toujours ;-)
Je ne comprends pas l’intérêt d’avoir des ports USB, ethernet ou Thunderbolt sur un boitier eGPU si le but est de mettre un GPU dedans.
Ces ports supplémentaires ou autre périphérique chainés ne vont-ils pas de facto diminué la bande passante pour le GPU du boitier ?
Que reste-t-il des 4 lignes PCI-express 3.0 pour le GPU dans ce cas là ?
Merci par avance de tes lumières.
Bonne journée
Alors, l’intérêt, c’est surtout de tout laisser en place. Genre on branche clavier, souris, câble réseau sur le boîtier à la maison et comme ça, on branche le câble Thunderbolt et hop, on a tout.
Sur les perfs, en théorie, on peut perdre un peu. En pratique, ça change pas grand chose, sauf si on joue en transférant des données d’un SSD externe vers un réseau (on risque de saturer un peu). Après, le Thunderbolt 3 permet ~3,2 Go/s en pratique et même en forçant, Ethernet 1000 + USB 3.1 avec un SSD rapide, on va difficilement demander plus de ~1 Go/s au total.
Et sinon y a la solution de Razer avec son modèle plus haut de gamme : deux puces Thunderbolt chaînée en interne. Dans ce cas là, on a les quatre lignes pour le GPU et on utilise le second lien pour la seconde puce, qui va gérer les périphériques externes. Mais ça augmente le prix et la complexité du boîtier.
merci pour ta réponse
Oui je comprends l’intérêt pratique de tout laissé branché au boitier.
Sur ce que j’ai lu sur les puces thunderbolts, j’avais l’impression que le « partage » de la bande passante n’est pas aussi fluide qui tu as l’air de l’expérimenter (tant mieux finalement). Mais bien plus crantée par l’affectation des lignes PCI express. Je pensais donc qui si il ya de l’USB, une des 4 lignes est prise par le contrôleur .
Par contre l’avantage du thunderbolt est peut-être l’allouer dynamiquement ces lignes PCI express (bande passante) en fonction de ce qui est utilisé à un moment donné.
Du coup pour moi le mystère s’épaissit ;-)
Bonne journée
C’est… compliqué.
Y a pas une ligne qui va vers l’USB, une vers l’Ethernet et deux vers le GPU, parce qu’en fait, en Thunderbolt, c’est multiplexé. On a donc toute la bande passante partagée dynamiquement, mais par contre on perd en bande passante totale à cause du codage (ce qui explique que le max est plutôt vers 3,2/3,5 que 4 Go/s).
En Thunderbolt 3, on a 40 Gb/s au total, mais seulement 32 Gb/s pour les données aussi.
Et la majorité des contrôleurs gère deux liens en pratique, donc quand on chaîne, donc on peut avoir 40 Gb/s vers le premier périphérique et 40 Gb/s vers le second sur la même prise. C’est ce qui permet de mettre deux écrans Thunderbolt (l’Apple) sur la même prise. Le seul Mac qui le fait pas, à ma connaissance, c’est le MacBook Air 2011 : il a qu’un lien.
En pratique, le truc qui tue le plus les perfs dans une chaîne, c’est la longueur à cause de la latence. Quand on met un truc qui écrit en fin de chaîne, on perd énormément en performances. Donc un GPU doit plutôt être au début, tout comme un SSD, et on peut mettre un disque dur à la fin par exemple.
Sinon, évidemment, les Mac avec un contrôleur ralenti à cause du nombre de lignes. Sur les 13 pouces TB3, on a que deux lignes d’un côté (au lieu de quatre). Sur certains Dell aussi. Donc y a bien 40 Gb/s au total, mais seulement 16 Gb/s de bande passante data.
Ok, merci
Bonjour, on teste souvent des MacBook Pro. Qu’en est il des iMacs 5K? Peut-on utiliser directement leur écran interne car c’est dommage de travailler sur un autre écran qui serait de moindre qualité .
Merci,
Non, le problème est le même que sur le MacBook Pro.
En fait, Mojave le permet un peu, mais c’est pas génial question performances