Renderização por GPU

Introdução

A renderização GPU torna possível usar sua placa de vídeo para renderização, ao invés da CPU. Isso pode acelerar a renderização, porquê as GPUs modernas são desenhadas para fazer muito processamento de números. Por outro lado, elas também têm algumas limitações na renderização de cenas complexas. devido à memória mais limitada, e questões com interatividade quando usando a mesma placa de vídeo para visualização e renderização.

Cycles possuei dois modos de renderização GPU: CUDA, que é o método preferível para placas gráficas Nvidia; e OpenCL, que suporta renderização em placas gráficas AMD.

Configuração

Para habilitar a renderização GPU, vá nas Preferências do Usuário, na aba Sistema, selecione o Dispositivo de computação para o Cycles para usar. Depois, para cada cena, você pode configurar para usar renderização CPU ou GPU nas propriedades de Renderização.

CUDA

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

Cycles requer drivers recentes Nvidia instalados, em todos sistemas operacionais.

Lista de placas CUDA com modelo de sombreadores.

OpenCL

OpenCL é suportada para renderização GPU com placas gráficas AMD. (Nós suportamos apenas placas gráficas com arquitetura GCN 2.0 e acima). Para garantir que sua GPU é suportada verifique essa página Wikipedia.

Nota

Cycles requer drivers recentes AMD instalados, em todos sistemas operacionais.

Funcionalidades Suportadas e Limitações.

Para uma visão geral de funcionalidade suportadas, verifique a comparação em Funcionalidades.

Limitações do sistema CUDA:
A quantidade máxima de texturas individuais é limitada a imagens de texturas 88 byte (PNG, JPEG, ..) e imagens de texturas 5 float (OpenEXR, 16 bit TIFF, ..) em placas GTX 4xx/5xx. Placas mais novas não tem esse limite.

Perguntas Frequentes

Porquê o Blender não responde durante a renderização?

Enquanto a placa gráfica está renderização, ela não consegue redesenhar a interface do usuário, o que torna o Blender não responsivo. Nós tentamos evitar esse problema devolvendo o controle sobre a GPU assim que possível, mas uma interação suave não pode ser garantida, especialmente em cenas pesadas. Essa é uma limitação de placas gráficas para as quais não há uma solução verdadeira, apesar de que poderemos ser capazes de melhorar isso de alguma forma no futuro.

Se possível, é melhor instalar mais de uma GPU, usando uma para a visualização e outra(s) para renderização.

Por que uma cena que renderiza na CPU não renderiza na GPU?

Pode haver múltiplos casos, mas o mais comum é que não há memória suficiente na sua placa gráfica. Atualmente nós apenas podemos renderizar cenas que cabem na memória da placa de vídeo, e isso geralmente é menor que a do CPU. Note que, por exemplo, texturas de imagem 8k, 4k, 2k e 1k ocupam respectivamente 256MB, 64MB, 16MB e 4MB de memória.

Nós pretendemos adicionar um sistema para suportar cenas maiores que a memória GPU, mas isso não será adicionado logo.

Múltiplas GPUs podem ser usadas para renderização?

Sim, vá até Preferências de Usuário ‣ Sistema ‣ Dispositivo de computação para o Cycles, e configure como quiser.

Múltiplas GPUs aumentam a memória disponível?

Não, cada GPU só pode acessar sua própria memória.

O que renderiza mais rápido, Nvidia ou AMD, CUDA ou OpenCL?

Atualmente Nvidia com CUDA está renderizando mais rápido, mas isso realmente depende do equipamento que você comprar. Atualmente, CUDA e OpenCL são quase o mesmo nas novas GPUs intermediárias. Entretanto CUDA é mais rápido no que diz respeito a GPUs de alto desempenho.

Mensagens de erro

Versão GPU não suportada! gcc 4.7 e acima não são suportadas!

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.

Erro CUDA: imagem kernel inválida

Se você obter esse erro no MS-Windows 64-bit, certifique-se de usar a versão 64-bit do Blender, não a versão 32-bit.

Erro CUDA: Compilação do Kernel falhou

Esse erro pode ocorrer se você tem uma versão nova de placa de vídeo que ainda não é suportada pela versão do Blender e o kit de ferramentas CUDA que você tem instalado. Nesse caso o Blender pode dinamicamente tentar construir um kernel para a sua placa gráfica e falhar.

Neste caso você pode:

  1. Checar se a última versão do Blender (oficial ou versão experimental) suporta sua placa gráfica.
  2. Se você compilar o Blender você mesmo, tente baixar e instalar uma nova versão de desenvolvedor do kit de ferramentas CUDA.

Normalmente usuários não precisam instalar o kit de ferramentas CUDA já que o Blender vem com os kerneis pré compilados.

Erro CUDA: Sem memória

Isso geralmente significa que não há memória suficiente para armazenar a cena na GPU. Nós atualmente podemos apenas renderizar cenas que cabem na memória da placa gráfica, e ela é geralmente menor que a do CPU. Veja acima para mais detalhes.

O driver Nvidia OpenGL perdeu a conexão com o driver de visualização

Se a GPU é usada tanto para visualização e renderização, o MS-Windows não tem limite de tempo que a GPU pode fazer computações da renderização. Se você tem uma cena particularmente pesada, Cycles pode consumir muito tempo de GPU. Reduzir o tamanho do ladrilho no painel Performance pode aliviar essa questão, mas a única solução real é usar uma placa gráfica separada para visualização e renderização.

Outra solução pode ser aumentar o tempo limite, apesar que isso irá fazer a interface do usuário menos responsiva quando renderizando cenas pesadas.`Aprenda Mais Aqui <https://msdn.microsoft.com/en-us/Library/Windows/Hardware/ff570087%28v=vs.85%29.aspx>`__.

Erro CUDA: Erro desconhecido em cuCtxSynchronize()

Um erro desconhecido pode ter muitas causas, mas uma possibilidade é que o tempo se esgotou. Veja acima respostas para soluções.