Rendu GPU (Graphics Processing Unit)

Le rendu GPU permet d’utiliser votre carte graphique pour le rendu, au lieu du CPU. Cela peut accélérer le rendu, car les GPU modernes sont conçus pour effectuer beaucoup de calculs. D’autre part, ils ont également certaines limitations dans le rendu de scènes complexes, en raison d’une mémoire plus limitée et des problèmes d’interactivité lors de l’utilisation de la même carte graphique pour l’affichage et le rendu.

Pour activer le rendu GPU, allez dans Preferences ‣ System ‣ Cycles Render Devices et sélectionnez CUDA, OptiX ou OpenCL. Ensuite, vous devez configurer chaque scène pour utiliser le rendu GPU dans Properties ‣ Render ‣ Device.

Note

Le rendu GPU n’est pris en charge que sur Windows et Linux; macOS n’est actuellement pas pris en charge.

Supported Hardware

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

Nvidia

CUDA et OptiX sont pris en charge pour le rendu GPU avec les cartes graphiques Nvidia.

CUDA

CUDA nécessite des cartes graphiques avec des capacités de calcul 3.0 et supérieures. Pour vous assurer que votre GPU est pris en charge, consultez la liste des cartes graphiques Nvidia avec les capacités de calcul et les cartes graphiques prises en charge.

Note

Fonctionnalités non prises en charge:

  • Ouvrir le Shading Language

  • Échantillonnage avancé de la lumière volumique pour réduire le bruit

OptiX

OptiX nécessite des cartes graphiques avec une capacité de calcul 5.0 et supérieure. Pour vous assurer que votre GPU est pris en charge, consultez la liste des cartes graphiques Nvidia. OptiX fonctionne mieux sur les cartes graphiques RTX avec prise en charge du traçage de rayons matériel (par exemple, Turing et supérieur).

Note

Fonctionnalités non prises en charge:

  • Ouvrir le Shading Language

  • Échantillonnage avancé de la lumière volumique pour réduire le bruit

  • Branched Path Tracing

AMD

OpenCL est pris en charge pour le rendu GPU avec les cartes graphiques AMD. Blender prend en charge le rendu GPU sur les cartes graphiques avec GCN génération 2 et supérieur. Pour vous assurer que votre GPU est pris en charge, consultez la liste des générations GCN avec la génération GCN et les cartes graphiques prises en charge.

Sous Windows et Linux, les derniers pilotes Pro doivent être installés à partir du site AMD website.

Note

Fonctionnalités non prises en charge:

  • Ouvrir le Shading Language

  • Échantillonnage avancé de la lumière volumique pour réduire le bruit

Intel

OpenCL est pris en charge pour le rendu GPU avec les cartes graphiques Intel. Blender prend en charge le rendu GPU sur les cartes graphiques Intel Iris et Xe. Actuellement, le rendu OpenCL sur Intel ne fonctionne que sur Windows et Linux, macOS n’est actuellement pas pris en charge.

Note

Fonctionnalités non prises en charge:

  • Ouvrir le Shading Language

  • Échantillonnage avancé de la lumière volumique pour réduire le bruit

Questions fréquemment posées

Pourquoi Blender ne répond-il pas pendant le rendu?

Pendant le rendu d’une carte graphique, elle ne peut pas redessiner l’interface utilisateur, ce qui empêche Blender de répondre. Nous essayons d’éviter ce problème en redonnant le contrôle au GPU le plus souvent possible, mais une interaction totalement fluide ne peut être garantie, en particulier sur les scènes lourdes. Il s’agit d’une limitation des cartes graphiques pour lesquelles aucune véritable solution n’existe, même si nous pourrons peut-être améliorer cela quelque peu à l’avenir.

Si possible, il est préférable d’installer plusieurs GPU, en utilisant l’un pour l’affichage et l’autre (s) pour le rendu.

Pourquoi une scène qui est rendue sur le processeur ne s’affiche-t-elle pas sur le GPU?

Il peut y avoir plusieurs causes, mais la plus courante est qu’il n’y a pas assez de mémoire sur votre carte graphique. En règle générale, le GPU ne peut utiliser que la quantité de mémoire qui se trouve sur le GPU (voir Est-ce que plusieurs GPU augmenteraient la mémoire disponible? pour plus d’informations). C’est généralement beaucoup plus petit que la quantité de mémoire système à laquelle le CPU peut accéder. Avec les appareils CUDA et OptiX, si la mémoire GPU est pleine, Blender essaiera automatiquement d’utiliser la mémoire système. Cela a un impact sur les performances, mais entraînera généralement un rendu plus rapide que l’utilisation du rendu CPU. Cette fonctionnalité ne fonctionne pas pour le rendu OpenCL.

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

Oui, allez dans Preferences ‣ System ‣ Compute Device Panel et configurez-le comme vous le souhaitez.

Est-ce que plusieurs GPU augmenteraient la mémoire disponible?

En règle générale, non, chaque GPU ne peut accéder qu’à sa propre mémoire, cependant, certains GPU peuvent partager leur mémoire. Ceci peut être activé avec la mémoire distribuée sur tous les périphériques.

Qu’est-ce qui rend plus rapide, Nvidia ou AMD, CUDA, OptiX ou OpenCL?

Cela varie en fonction du matériel utilisé. Différentes technologies ont également des temps de calcul différents en fonction de la scène testée. Pour obtenir les informations les plus récentes sur les performances des différents appareils, parcourez la ressource Blender Open Data.

Messages d’erreur

En cas de problème, assurez-vous d’installer les pilotes graphiques officiels à partir du site Web Nvidia ou AMD, ou via le gestionnaire de paquets sous Linux.

Version GNU non prise en charge

Sous Linux, en fonction de votre version de GCC, vous pouvez obtenir cette erreur. Consultez le Guide d’installation de Nvidia CUDA pour Linux pour une liste des versions de GCC prises en charge. Il existe deux solutions possibles à cette erreur:

Utiliser un autre compilateur

Si vous avez installé un GCC plus ancien compatible avec la version de la boîte à outils CUDA installée, vous pouvez l’utiliser à la place du compilateur par défaut. Cela se fait en définissant la variable d’environnement CYCLES_CUDA_EXTRA_CFLAGS lors du démarrage de Blender.

Lancez Blender à partir de la ligne de commande comme suit:

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

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

Supprimer les vérifications de compatibilité

Si ce qui précède échoue, supprimez la ligne suivante dans /usr/local/cuda/include/host_config.h:

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

Cela permettra à Cycles de compiler avec succès le noyau de rendu CUDA la première fois qu’il tentera d’utiliser votre GPU pour le rendu. Une fois le noyau construit avec succès, vous pourrez lancer Blender comme vous le feriez normalement et le noyau CUDA sera toujours utilisé pour le rendu.

CUDA Error: Kernel compilation failed

Cette erreur peut se produire si vous disposez d’une nouvelle carte graphique Nvidia qui n’est pas encore prise en charge par la version de Blender et la boîte à outils CUDA que vous avez installées. Dans ce cas, Blender peut essayer de construire dynamiquement un noyau pour votre carte graphique et échouer.

Dans ce cas, vous pouvez:

  1. Vérifiez si la dernière version de Blender (versions officielles ou expérimentales) prend en charge votre carte graphique.

  2. Si vous construisez vous-même Blender, essayez de télécharger et d’installer une nouvelle boîte à outils pour développeurs CUDA.

Normalement, les utilisateurs n’ont pas besoin d’installer la boîte à outils CUDA car Blender est livré avec des noyaux précompilés.

CUDA Error: Out of memory

Cela signifie généralement qu’il n’y a pas assez de mémoire pour stocker la scène à utiliser par le GPU.

Note

Une façon de réduire l’utilisation de la mémoire consiste à utiliser des textures de résolution plus petite. Par exemple, les textures d’image 8k, 4k, 2k et 1k occupent respectivement 256 Mo, 64 Mo, 16 Mo et 4 Mo de mémoire.

Le pilote Nvidia OpenGL 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 pendant laquelle le GPU peut effectuer des calculs de rendu. Si vous avez une scène particulièrement lourde, les cycles peuvent prendre trop de temps GPU. La réduction de la taille de la Tile Size dans le panneau Performances peut atténuer le problème, mais la seule vraie solution consiste à utiliser des cartes graphiques distinctes pour l’affichage et le rendu.

Une autre solution peut être d’augmenter le délai d’expiration, bien que cela rende l’interface utilisateur moins réactive lors du rendu de scènes lourdes. En savoir plus ici.

CUDA error: Unknown error in cuCtxSynchronize()

Une erreur inconnue peut avoir de nombreuses causes, mais une possibilité est qu’il s’agit d’un délai d’attente. Voir la réponse ci-dessus pour les solutions.