Rendu GPU

Introduction

Le rendu GPU permet d’utiliser votre

Cycles a deux modes de rendu GPU : CUDA, qui est la méthode préférée pour les cartes graphiques Nvidia et OpenCL, qui prend en charge le rendu sur les cartes graphiques AMD.

Configuration

Pour activer le rendu GPU, allez dans User Preferences, et dans l’onglet System, sélectionnez le(s) Compute Device(s) à utiliser. Pour chaque scène, vous pouvez configurer pour utiliser le rendu CPU ou GPU dans les propriétés de Render.

CUDA

Nvidia CUDA is supported for GPU rendering with Nvidia graphics cards. We support graphics cards starting from GTX 6xx (computing capability from 3.0 to 6.1).

Cycles requiert l’installation de pilotes Nvidia récents, sur tous les systèmes d’exploitation.

Liste de cartes CUDA avec modèle shader.

OpenCL

OpenCL est pris en charge pour le rendu GPU avec les cartes graphiques AMD (nous prenons en charge uniquement les cartes graphiques avec GCN architecture version 2.0 et supérieures). Pour vous assurer que votre GPU est pris en charge, consultez cette page Wikipedia.

Note

Cycles requiert l’installation de pilotes AMD récents, sur tous les systèmes d’exploitation.

Fonctionnalités prises en charge et limitations

Pour une vue d’ensemble des fonctionnalités prises en charge, consultez la comparaison des fonctionnalités.

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

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 à User 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 rend 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

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

On Linux, depending on your GCC version you might get this error. There are two possible solutions:

Use an alternate compiler

If you have an older GCC installed that is compatible with the installed CUDA toolkit version, then you can use it instead of the default compiler. This is done by setting the CYCLES_CUDA_EXTRA_CFLAGS environment variable when starting Blender.

Launch Blender from the command line as follows:

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

(Substitute the name or path of the compatible GCC compiler).

Remove compatibility checks

If the above is unsuccessful, delete the following line in /usr/local/cuda/include/host_config.h

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

This will allow Cycles to successfully compile the CUDA rendering kernel the first time it attempts to use your GPU for rendering. Once the kernel is built successfully, you can launch Blender as you normally would and the CUDA kernel will still be used for rendering.

CUDA Error: Invalid kernel image

Si vous obtenez cette erreur sur MS-Windows 64-bits, assurez-vous que vous utilisez le 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 supportée par la version de Blender et le CUDA toolkit que vous avez installés. Dans ce cas, Blender peut essayer de construire dynamiquement un noyau pour votre carte graphique et échoue.

Dans ce cas vous pouvez :

  1. Vérifier 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, MS-Windows a une limite de temps durant lequel le GPU peut faire les 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.