Un GPU externe sous Mac OS X : trois écrans sur un MacBook Pro

Une carte graphique externe sur un Mac ? Certains en rêvent. D’autres le font. Une société américaine propose en effet des boîtiers ExpressCard capables de contenir une carte graphique ou n’importe quelle carte PCI-Express. Heureux possesseur d’un boîtier de ce type, je vous propose donc un test de ce boîtier, avec évidemment une orientation Mac OS X.

La théorie

Les boîtiers ViDock permettent de brancher une carte graphique en externe, en Express Card. Ce connecteur est disponible sur les MacBook Pro 15 et 17 pouces « aluminium » de 2006, 2007 et 2008. Les MacBook Pro 17 pouces Unibody (2009, 2010 et 2011) sont aussi équipés.

En théorie, il suffit donc de mettre une carte graphique compatible Mac OS X et ça devrait marcher.

La pratique

Ce n’est pas aussi simple dans la réalité. Premièrement, le support dépend fortement du modèle. J’ai testé sur un MacBook Pro 17 pouces 2009 (MacBookPro5,2) et ça fonctionne en partie : le GPU ne peut pas être retiré à chaud, ni branché. En clair, je dois brancher la carte ordinateur éteint. Ca empêche aussi de redémarrer (il faut éteindre) et de mettre en veille.

De ce que j’ai pu voir sur Internet, ça fonctionne bien sur les MacBook Pro 2006 en Core 2 Duo ainsi que sur les MacBook Pro 2011, le Thunderbolt doit aider. Sur les MacBook Pro 2007, 2008 et 2010, je n’ai pas de retour et a priori ça ne fonctionne pas. Sur les MacBook Pro 2006 en Core Duo, ça fonctionne mais ça désactive la carte graphique interne (selon les retours).

Deuxièment, il faut une carte graphique compatible. J’ai un ViDock 3 (alimentation de seulement 75 W) et j’ai donc dû choisir une carte milieu de gamme. Le plus simple sur Mac est d’utiliser une carte de Mac Pro, comme la Radeon HD 2600 XT ou la GeForce GT120. Ca se trouve facilement d’occasion, ça ne consomme pas trop et c’est silencieux. J’ai testé avec les deux modèles et j’utilise la GeForce GT120 au quotidien.

Ensuite, il faut jouer du « hackintosh » : pour que ça fonctionne, j’ai dû installer ATY_Init, un outil qui permet en fait d’injecter la partie « BIOS » de la carte dans les pilotes Mac OS X. Pas besoin d’autres bidouilles, il suffit d’installer le .kext. La carte n’est d’ailleurs pas reconnue comme une GeForce GT120 mais bien comme une GeForce 9500 GT. Bonne nouvelle, les deux sorties fonctionnent bien.

Petite astuce : il faut modifier un jumper sur le boîtier pour le démarrage. Par défaut, la carte démarre en même temps que le Mac et l’EFI n’aime pas ça. Avec le jumper, on peut ajouter un temps d’attente pour que la carte démarre après le Mac mais assez tôt pour que Mac OS X ne plante pas.

Théoriquement, ça doit fonctionner avec n’importe quelle carte compatible Mac OS X (en gros ce qui passe sur un Mac Pro). Il faut juste un boîtier avec une alimentation adaptée, soit un ViDock 4 ou un 4+.

Les performances

Ce n’est pas une solution de joueur. Avec environ 200 Mo/s mesurés, on est en-dessous de ce qui est nécessaire pour simplement afficher une image en 1 280 x 1 024 à 60 images/s. Le bus PCI-Express limite réellement les performances. Dans mon cas, c’est parfaitement utilisable pour de la bureautique ou pour de la vidéo décodée par le GPU (via QuickTime). Par contre, les vidéos en Flash ou via VLC (et ce qui n’utilise pas correctement le GPU en général pour le décodage) sont saccadées en plein écran.

j’utilise deux écrans sur la carte : un 20 pouces en 1 680 x 1 050 et un 22 pouces en 1 600 x 1 024, qui demandent bien plus que les pauvres 200 Mo/s. Les joueurs ne seront pas à la fête, ça rame.

Exemple simple avec Xbench (qui vaut ce qu’il vaut) : le score graphique passe de 163 avec l’IGP (GeForce 9400M) à 171 avec le GPU dédié de mon MacBook Pro (9600M GT). Avec le GPU externe, équivalent au GPU 9600M GT, on descend à seulement 125. L’impact est clair, même sur des trucs légers.

9400M

9600M

GT 120 en externe

Dans mon cas, le fait de travailler avec trois écrans au lieu d’un compense les défauts.

Pour les amateurs, un MacBook Pro 2011 devrait être plus rapide parce que son emplacement ExpressCard est PCI-Express 2.0 (500 Mo/s) et une version Thunderbolt devrait être encore plus efficace avec ses 4 lignes PCI-Express 1.0 (1 Go/s).

Dernière petite chose, il est aussi possible de brancher autre chose qu’un GPU en externe. Une carte SATA, une carte USB 3.0 (il faut évidemment des pilotes), toutes les cartes PCI-Express classiques fonctionnent parfaitement dans le boîtier. J’ai essayé avec une vieille carte PCI-Express x1 SATA (JMicron) et ça fonctionne : les deux ports SATA sont reconnus. Les performances sont moyennes — le bus limite un peu — mais c’est utilisable. De même, une carte USB 3.0 fonctionne avec des pilotes adaptés…