Rendu GPU

Le rendu GPU rend possible l”“utilisation de votre carte graphique pour le rendu, à la place du CPU. Ceci peut accélérer le rendu car les GPU modernes sont conçus pour faire un grand nombre de calculs numériques. D’un autre côté, ils ont également quelques limitations dans le rendu de scènes complexes, du fait d’une mémoire plus limitée,et des problèmes d’interactivité quand la même carte graphique est utilisée pour l’affichage et le rendu.

To enable GPU rendering, go into the Preferences ‣ System ‣ Cycles Render Devices, and select either CUDA, Optix or OpenCL. Next, you must configure each scene to use GPU rendering in Properties ‣ Render ‣ Device.

Matériel pris en charge

Blender prend en charge deux technologies différentes pour faire le rendu sur le GPU selon la fabrication particulière du GPU.

NVIDIA

CUDA and Optix are supported for GPU rendering with NVIDIA graphics cards.

NVIDIA CUDA est pris en charge pour le rendu GPU avec les cartes graphiques NVIDIA. Blender prend en charge les cartes graphiques avec compute capability 3.0 et ultérieures. Pour vous assurer que votre GPU est pris en charge, consultez la `liste des cartes graphiques de NVIDIA <https://developer.nvidia.com/cuda-gpus>`__avec les compute capabilities et les cartes graphiques prises en charge.

Le rendu GPU de NVIDIA CUDA est pris en charge sous Windows, macOS, et Linux.

Optix requires Geforce or Quadro RTX graphics card with recent NVIDIA drivers, and is supported on Windows and Linux.

AMD

OpenCL is supported for GPU rendering with AMD graphics cards. Blender supports graphics cards with GCN generation 2 and above. To make sure your GPU is supported, see the list of GCN generations with the GCN generation and supported graphics cards.

Le rendu GPU d’AMD OpenCL est pris en charge sous Windows, macOS, et Linux.

Fonctionnalités prises en charge et limitations

Le rendu GPU prend en charge les mêmes fonctions que le rendu CPU, à l’exception de deux :

  • Open Shading Language.
  • Échantillonnage de lumière de volume avancé pour réduire le bruit.

Optix support is experimental and does not yet support the following features:

  • Baking
  • Brachend Path Tracing
  • Ambient Occlusion and Bevel shader nodes
  • Combined CPU + GPU rendering
  • Using CPU memory for bigger scenes

Foire aux questions (FAQ)

Pourquoi Blender n’est-il pas réactif pendant le rendu ?

Pendant qu’une carte graphique fait un rendu, elle ne peut pas redessiner l’interface utilisateur, ce qui rend Blender non réactif. Nous essayons d’éviter ce problème en redonnant le contrôle sur le GPU aussi souvent que possible, mais une interaction complètement ne peut pas être garantie, en particulier sur des scènes lourdes. C’est une limitation des cartes graphiques pour laquelle il n’y a pas de véritable solution, bien que nous puissions améliorer cela quelque peu à l’avenir.

Si possible, il vaut mieux installer plus d’un GPU, en utilisant un pour l’affichage et l’autre (les autres) pour le rendu.

Pourquoi une scène qui rend sur un CPU ne rend pas sur le GPU ?

Il peut y avoir de multiples causes, mais la plus commune est qu’il n’y a pas assez de mémoire sur votre carte graphique. Actuellement nous ne pouvons rendre que des scènes qui rentrent dans la mémoire de la carte graphique, et elle est habituellement plus petite que celle du CPU. Notez, par exemple, que des textures images de 8k, 4k, 2k et 1k prennent respectivement 256 Mo, 64 Mo, 16 Mo et 4 Mo de mémoire.

Nous avons vraiment l’intention d’ajouter un système pour la prise en charge de scènes plus grandes que la mémoire GPU, mais cela ne sera pas pour tout bientôt.

Plusieurs GPU peuvent-ils être utilisés pour le rendu ?

Oui, allez à Preferences ‣ System ‣ Compute Device Panel, et configurez-le selon vos désirs.

Plusieurs GPU augmenteraient-ils la mémoire disponible ?

Non, chaque GPU ne peut accéder qu’à sa propre mémoire.

Qu’est-ce qui fait le rendu le plus rapidement, Nvidia ou AMD, CUDA ou OpenCL ?

Actuellement une carte Nvidia avec CUDA est la solution la plus rapide pour le rendu, mais cela dépend réellement du matériel que voua achetez. Actuellement, CUDA et OpenCL sont comparables pour les GPU de moyenne gamme les plus récents. Cependant, CUDA est plus rapide pour les GPU haut de gamme.

Messages d’erreur

In case of problems, be sure to install the official graphics drivers from the NVIDIA or AMD website, or through the package manager on Linux.

Version GNU non supportée ! gcc 4.7 et versions supérieures ne sont pas supportées !

Sous Linux, selon votre version de GCC, vous pourriez obtenir cette erreur. Il existe deux solutions possibles :

Utilisez un autre compilateur

Si vous avez un GCC plus ancien qui est compatible avec la version de toolkit CUDA installée, alora vous pouvez l’utiliser à la place du compilateur par défaut. Ceci est faite en définissant la variable d’environnement CYCLES_CUDA_EXTRA_CFLAGS au lancement de Blender.

Lancez Blender depuis la ligne de commande comme suit :

CYCLES_CUDA_EXTRA_CFLAGS="-ccbin gcc-x.x" blender

(Substituez le nom ou le chemin du compilateur compatible GCC).

Supprimez les vérifications de compabilité

Si la solution ci-dessus est infructueuse, supprimez la ligne suivante dans /usr/local/cuda/include/host_config.h

#error -- unsupported GNU version! gcc 4.7 and up are not supported!

Ceci va permettre à Cycles de compiler avec succès le noyau de rendu CUDA la première fois qu’il tente d’utiliser votre CPU pour le rendu. Une fois le noyau construit avec succès, vous pouvez lancer Blender comme vous le feriez normalement et le noyau CUDA sera toujours utilisé pour le rendu.

CUDA Error: Invalid kernel image

Si vous obtenez cette erreur sur Windows 64-bits, assurez-vous que vous utilisez la version 64 bits de Blender, pas la version 32 bits.

CUDA Error: Kernel compilation failed

Cette erreur peut se produire si vous avez une nouvelle carte graphique Nvidia qui n’est pas encore prise en charge par la version de Blender et le toolkit CUDA que vous avez installés. Dans ce cas, il se peut que Blender essaie de construire dynamiquement un noyau pour votre carte graphique et échoue.

Dans ce cas vous pouvez :

  1. Vérifiez si la toute dernière version de Blender (officielle ou expérimentale) prend en charge votre carte graphique.
  2. Si vous construisez vous-même Blender, essayez de télécharger et installer une version plus récente de CUDA developer toolkit.

Normalement les utilisateurs n’ont pas besoin d’installer le CUDA toolkit car Blender est fourni avec des noyaux précompilés.

CUDA Error: Out of memory

Cela signifie habituellement qu’il n’y a pas assez de mémoire pour enregistrer la scène sur le GPU. Actuellement nous ne pouvons rendre que des scènes qui rentrent dans la mémoire de la carte graphique, et elle est habituellement plus petite que celle du CPU. Voir ci-dessus pour plus de détails.

Le pilote OpenGL de NVIDIA a perdu la connexion avec le pilote d’affichage

Si un GPU est utilisé à la fois pour l’affichage et le rendu, Windows a une limite de temps durant lequel le GPU peut faire des calculs de rendu. Si vous avez une scène particulièrement lourde, Cycles peut prendre trop de temps GPU. La réduction de Tile Size dans le panneau Performance peut lever le problème, mais la seule solution réelle est d’utiliser des cartes graphiques distinctes pour l’affichage et le rendu.

Une autre solution peut être d’augmenter le time-out (délai d’attente), même si cela va rendre l’interface utilisateur moins réactive pendant le rendu de scènes complexes. En apprendre plus ici.

CUDA error: Unknown error in cuCtxSynchronize()

Une erreur inconnue peut avoir plusieurs causes, mais une possibilité est que c’est une expiration de délai d’attente. Voir la réponse ci-dessus pour des solutions.