Le support du eGPU avec les Mac Thunderbolt 1 et 2

Depuis la version 10.13.4, macOS supporte officiellement les cartes graphiques externes (eGPU). Ou, plus exactement, macOS le supporte sur les Mac en Thunderbolt 3 et avec quelques GPU seulement. Mais le bridage est largement artificiel.

Le support officiel d’Apple est simple : il faut un Mac Thunderbolt 3 (MacBook Pro, iMac), un boîtier Thunderbolt 3 compatible (pas tous) et un GPU AMD moderne (Radeon RX470/480, RX570/580 ou Vega). Dans les autres cas, nombreux, Apple a décidé de brider artificiellement le support.

Les Mac Thunderbolt 1 et 2

Premier point à prendre, les Mac avec du Thunderbolt 1 ou 2. Ils sont nombreux, mais on peut les diviser en deux catégories : ceux avec un GPU nVidia et ceux avec un GPU AMD ou un GPU Intel. Dans le premier cas, c’est parfois un peu compliqué (il faut désactiver le GPU interne quand c’est possible ou utiliser un autre GPU nVidia), dans le second il n’y a généralement pas de soucis. Le type du boîtier n’a pas vraiment d’importance : vous pouvez utiliser un modèle Thunderbolt 3 avec l’adaptateur Apple (réversible) ou un modèle Thunderbolt 1/2. J’avais fait quelques tests, la perte en Thunderbolt 1 existe, mais n’est pas non plus énorme, sauf sur une chaîne chargée. Dans l’absolu, je vous conseille tout de même du Thunderbolt 2.

J’omets volontairement le choix du boîtier : il dépend du GPU et de votre installation. Cette fois, j’ai testé avec un Razer Core X Thunderbolt 3, qui dispose d’un large espace interne et d’une alimentation de 650 W, et avec un Akitio Thunderbolt 2, qui nécessite généralement une alimentation externe plus puissante (j’utilise une 120 W), une carte courte et – souvent – une seconde alimentation pour alimenter le GPU. Les prix commencent vers 300 € en Thunderbolt 3, et il faut compter 100 € d’adaptateur pour le brancher en Thunderbolt 2 (adaptateur Apple + un câble).

Un boîtier Thunderbolt 2 sur un Mac Thunderbolt 1

Pour le GPU, il existe aussi trois choix. Le plus simple est d’utiliser une carte graphique supportée nativement en eGPU : Radeon RX470/480, RX570/580 ou Vega. La seconde solution passe par une carte plus ancienne de chez AMD. La troisième par une carte nVidia (ça demande plus de boulot et les pilotes sont moyens).

Les scripts

Il y a deux scripts principaux. Le premier pour les machines équipées d’un GPU dédié nVidia. Je ne l’ai pas testé, mais il permet de désactiver le GPU pour forcer l’IGP ou installer une carte graphique AMD en externe. Le second, testé sur un MacBook Air 2012 (Thunderbolt 1), se nomme Purge Wrangler. Il permet d’activer le support des puces AMD supportées nativement ainsi que celui des puces nVidia. La commande pour le lancer est longue, mais ensuite il suffit de suivre les instructions.

curl -L -s https://github.com/mayankk2308/purge-wrangler/releases/download/3.1.1/purge-wrangler.sh > purge-wrangler.sh;chmod +x purge-wrangler.sh;./purge-wrangler.sh;rm purge-wrangler.sh

Le script

Attention, dans les deux cas, vous devez désactivez le SIP de macOS.

Si vous voulez utiliser une carte AMD qui n’est pas supportée – RX 460 ou RX 560, R9, etc. -, il faut en plus ajouter une extension spécifique, disponible là.

Enfin, je suppose que comme d’habitude, chaque mise à jour de macOS va imposer de relancer les scripts, alors que les mises à jour majeures les casseront peut-être.

Le résultat

Sur mon MacBook Air, avec une Radeon RX 570 en Thunderbolt 2 (dans un Akitio) ou une Radeon RX 580 en Thunderbolt 3 (avec l’adaptateur Apple), ça fonctionne. Il suffit de lancer le script, redémarrer, et la machine accepte l’eGPU. Le support natif de macOS High Sierra apporte quelques fonctions : on peut brancher le eGPU à chaud, le débrancher (presque) à chaud en l’éjectant manuellement et (en théorie en tout cas) accélérer la vidéo sur l’écran interne. En fait, la documentation d’Apple indique que c’est possible, un exemple de code le prouve, mais je n’ai pas trouvé d’application compatible. Bien évidemment, la carte est accessible en OpenCL sans écran externe. Enfin, comme d’habitude, les performances dans les jeux dépendront de la carte graphique et du CPU, le pauvre Core i7 basse consommation de mon MacBook Air de 2012 (un Ivy Bridge) est un peu léger pour les jeux modernes.

La Radeon RX 570 détectée


Le bouton d’éjection


En cas de conflit

Dans tous les cas, l’eGPU n’a jamais été aussi abordable, même si vous avez un vieux Mac avec du Thunderbolt 1 ou 2. On peut s’en tirer pour 400 € sans GPU, et donc pour moins de 600 €, il devient possible d’augmenter les performances très significativement.

Techniquement, on peut accélérer de la 3D sur l’écran interne