Abonnez-vous à notre newsletter
Nom     Email


About Technologie

GPU rendering mise en relation cuda nvidia et calcul effectif

 

Le GPU rendering avec Blender Cycles

Bonjour, je viens de terminer quelques mesures ou (benchmark) de certaines cartes GPU nvidia GTX grand public. Le but de l’opération est de mettre en relation la vitesse d’horloge des GPU cuda et de leurs nombres. Avant de procéder à ces quelques mesures, nous n’étions pas sûrs de pouvoir nous baser sur les données techniques du constructeur et d’acquérir à coup sûr la bonne carte pour faire du rendu efficace. Une autre question que je me posais était, avec 3 cartes gtx de la même catégorie, configurées en SLI, est-il possible de tripler exactement la puissance de la machine ? La réponse est oui, parfaitement, 3x plus rapide !!!

Il est à noter que “Cycles” peut fonctionner sans le SLI et c’est une information vraiment importante car cela signifie que l’on peut sans problème dépasser des configurations de plus de 3 cartes graphiques. Je ne connais pas la limite à ce jour, mais j’ai vu sur internet une astuce qui permet de faire fonctionner une carte mère avec 7 cartes graphiques sans problèmes. Sous réserves, je n’ai bien évidement pas encore testé cette config donc attention de ne pas prendre ceci à la lettre.

Voici la carte mère Asus P6T7 WS SuperComputer:

Asus p6t7 ws supercomputer

Et voici un exemple d’utilisation avec 7 cartes graphiques:

Asus p6t7 ws supercomputer

Cette manière de disposer les cartes à l’extérieur permet d’utiliser des cartes beaucoup plus grosses également. Il en existe certaines qui peuvent occuper 3 compartiments !

Il faut être attentif à une petite nouveauté de la Blender 2.64. J’ai pu expérimenter que si l’on ne prend pas garde on peut se faire avoir et perdre en performance au moment du rendu définitif, (non dans “le rendu viewport”) car une nouvelle fonction vient d’être ajoutée. Il s’agit du tile rendering, autrement dit, la fonction de fragmentation en cluster (découpe de l’image pour le calcul du rendu), cela permet d’économiser de la mémoire. Un réglage idéal est de composer son tile en fonction du nombre de cartes soit: 4 cartes graphiques = 4 tiles sur la largeur et 0 sur la hauteur. Si l’on oublie ceci et que l’on lance un rendu full screen, alors le moteur utilise une seule carte graphique contrairement à la 2.63 ! Si non, le moteur commande un tile par carte graphique. Il est aussi envisageable d’utiliser des multiples bien évidement.

Le benchmark a été effectué sur une scène d’architecture d’intérieur sur le logiciel blender 3d et son nouveau moteur de rendu unbiased GPU totalement intégré “Cycles”. Il est donc possible de déduire correctement la vitesse d’une carte et de prédire de manière efficace l’amélioration de la vitesse de rendu que va nous apporter en production, l’achat d’une nouvelle machine. Pour se faire, il suffit uniquement de réaliser une simple règle de trois en utilisant le résultat du calcul de la multiplication du nombre de cuda cores fois la vitesse d’horloge. Une fois ce chiffre obtenu pour chacune des cartes, il est très simple de les mettre en relation. Il est donc essentiel de faire très attention à la vitesse d’horloge de ces cartes qui ont tendance à multiplier les coeurs mais à baisser cruellement leur vitesse de fonctionnement afin de diminuer les problèmes de chaleur.

GPU Rendering result:

nvidia GTX 550 (192 cores*1800 MHz = 345’600 MHz) = 06.20.00 = (6 minutes et 20 secondes)

nvidia GTX 570 (480 cores*1464 MHz = 702’720 MHz) = 03.17.00

nvidia GTX 580 (512 cores*1544 MHz = 790’528 MHz) = 02.09.61

nvidia GTX 580 x 3 sli = 00.52.00

Il est donc possible de prédire que:

nvidia GTX 690 (3072 cores*915 MHz = 2’810’880 MHz) = 00.43.33

Vous trouverez d’autres informations sur le sujet, sur le blog d’un ami Kopilot.ch

Lien vers la définition du gpu rendering

Cuda - GPU rendering - moteur de rendu - nvidia - Blender Cycles
June 17, 2012 by Greg M