vendredi 25 mai 2012

[Tuto] CUDA pour tous...

... ou presque pour tous.
Jusqu'à aujourd'hui, la technologie CUDA développée par NVIDIA, permettant de tirer toute la quintessence des processeurs graphiques GPU et ainsi accélérer de façon phénoménale les calculs 3D était réservée aux possesseurs de PC dans un premier temps et surtout aux possesseurs de cartes à base chipset NVIDIA.

Si aujourd'hui il n'importe quel PC est équipé (ou équipable) d'un porcesseur graphique NVIDIA, il n'en va pas de même pour les possesseurs de Mac. Nous savons tous qu'actuellement, les Mac sont équipés de cartes graphiques ATI Radeon, certes optimisées OpenGL, mais restant incompatibles avec CUDA spécifique aux cartes NVIDIA.
Aussi, sachant que AE CS6 est optimisé pour CUDA, les pauvres "Mac addicts" devront se contenter d'une simple accélération OpenGL du CPU. 

Seuls les possesseurs de Mac un peu désuets dont je fais partie comme certains d'entre vous, ont la chance, pourtant de posséder une carte NVIDIA d'ancienne génération... La bonne époque où Apple gardait encore de bonnes relations avec le fabriquant.
Ainsi, pour nous, la partie est loin d'être perdue, et nous pouvons  aisément tirer partie des nuvelles spécificités GPU d'AE CS6 sur nos Mac...

Explications (Wow, ça déchire !)

Mac Os X est conçu pour être plug-n'play... Intension louable de la part du constructeur de Cupertino, mais ça limite tout de même bien les choses : Les drivers des cartes graphiques n'ont pas évolué depuis des lustres et ne sont toujours pas optimisés depuis des années (ça devrait changer avec l'arrivée prochaine de Mountain Lion, le prochain OS de la Pomme). 
Quand on ouvre AE on s'aperçoit que la carte n'est pas prise en compte, CUDA restant grisé.



AE CS6 étant capable de gérer sur PC les GPU Nvidia il est donc necessaire d'installer le driver CUDA pour pouvoir profiter de cette accélération. Or, chacun d'entre nous sait fort bien que les drivers pour nos Mac sont plus que limités par les fabriquants.
En fait, il faut savoir que CUDA sur nos Mac nécessite l'installtion d'un driver en version 4.
Donc, la première chose à faire est donc d'aller chercher le dernier pilote.


Ceci dit, Quand on lance AE, on se rend compte que CUDa n'est pas activé. On en vient donc à la seconde étape : Il faut déclarer notre carte graphique dans AE afin qu'elle soit prise en compte. Pour ça, rien de plus simple :

Dans le Finder, il suffit de faire un clic droit sur l'cône du soft et sélectionner afficher le contenu du paquet.


On ouvre le dossier content et on cherche le fichier de description des cartes supportées, le fichier raytracer_supported_cards.txt

On ouvre le fichier avec un éditeur de texte (il peut demander une autorisation dans ce cas il convient de la lui donner). 

A la base,4 séries sont référencées comme étant compatibles : 

  • GeForce GTX 285
  • Quadro CX
  • Quadro FX 4800
  • Quadro 4000


Personnellement, j'utilise dans mon Mac une GeForce 8800 GT.
Il suffit donc de rajouter la référence de notre carte dans le fichier texte, et sauvegarder en place. 


Ouvrons maintenant AE CS6 et allons dans les préférences dur soft afin de vérifier si notre opération a fonctionné.

After Effects > Préférences > Prévisualisation > Information GPU...


Ô miracle, notre carte GeForce 8800 GT est maintenant activée dans le champ CUDA (Rappelez-vous à la base cette option était grisée)...

On peut donc, maintenant passer en mode 3D avec lancer de rayon


Concrètement à quoi ça nous sert et quelle est son incidence sur un montage ?

Pour ceux d'entre vous qui avez déjà sauté le pas pour AE et avez testé sur vos Mac non optimisés CUDA ce fameux nouveau mode, vous vous serez vite aperçu que travailler dans ce mode devient trèèèèèssss vite insupportable tellement le rafraichissement de l'écran à chaque modification est long comme un jour sans pain... Sans CUDA, c'est le porcesseur du Mac qui va gérer le calcul de la scène. La carte graphique ne sera là que pour afficher le résultat en OpenGL. On se croirait presque revenu 15 ans en arrière dans un soft de 3D... Bref.
Avec CUDA, c'est tout autre chose. Une simple modification de la caméra par exemple va être rafraichie en gardant les propriétés 3D de la scène (éclairage, réflexion, ombres...) avec, cependant une dégradation ponctuelle et temporaire de l'image, liée à la puissance du processeur graphique et du processeur de l'ordinateur. Concrètement, une modification de la scène va se traduire par une pixélisation passagère de l'image le temps que la modification soit faite, comme sur la vignette suivante :


Une fois la modificatin faite, la preview revient instantanément comme ci-dessous :


Voilà. J'espère que ce petit tutoriel rapide permettra à certains nantis d'utiliser l'accélération CUDA sur leur vieux Mac...

Enjoy.

1 commentaire:

zouzou a dit…

top, merci beaucoup