Os núcleos CUDA são iguais aos núcleos de renderização em uma GPU?

1

Após ler os núcleos CUDA, estou assumindo que os núcleos CUDA são apenas os núcleos normais da GPU. Eles podem ser usados para realizar cálculos físicos para descarregar a CPU usando o PhysX ou podem ser usados para executar outros trabalhos intensivos de computação, como codificação / renderização, que geralmente é mais lenta em uma CPU. Isso também pressupõe que renderizar gráficos não é nada mais do que muita computação que está correta ao meu conhecimento.

O contexto para perguntar é que eu gostaria de saber se é possível jogar e renderizar / converter coisas ao mesmo tempo, aumentando a produtividade enquanto a minha máquina está ligada.

Os núcleos CUDA são os núcleos funcionais da GPU ou são núcleos separados que podem ser usados exclusivamente para computação?

    
por Remy Baratte 24.12.2014 / 10:50

1 resposta

2

Motores gráficos modernos são baseados em shaders. Shaders são programas que são executados em hardware gráfico para produzir geometria (a cena), imagens (a cena renderizada) e, em seguida, pós-efeitos baseados em pixels.

Do artigo da Wikipedia sobre shaders:

Shaders are simple programs that describe the traits of either a vertex or a pixel. Vertex shaders describe the traits (position, texture coordinates, colors, etc.) of a vertex, while pixel shaders describe the traits (color, z-depth and alpha value) of a pixel. A vertex shader is called for each vertex in a primitive (possibly after tessellation); thus one vertex in, one (updated) vertex out. Each vertex is then rendered as a series of pixels onto a surface (block of memory) that will eventually be sent to the screen.

As placas gráficas modernas têm entre centenas e milhares de núcleos computacionais capazes de executar esses sombreadores. Eles costumavam ser divididos entre shaders de geometria, vértice e pixel, mas a arquitetura agora é unificada, um núcleo é capaz de executar qualquer tipo de shader. Isso permite um uso muito melhor dos recursos, pois um mecanismo de jogo e / ou driver de placa gráfica pode ajustar quantos sombreadores são usados para cada tarefa. Mais núcleos alocados para shaders de geometria podem fornecer mais detalhes na paisagem, mais núcleos alocados para sombreamento de pixel podem oferecer efeitos posteriores como desfoque de movimento ou efeitos de iluminação.

Essencialmente para cada pixel que você vê na tela, vários shaders são executados em vários níveis nos núcleos computacionais disponíveis.

CUDA é simplesmente a API Nvidias, que dá aos desenvolvedores acesso aos núcleos da GPU. Embora eu tenha ouvido o termo "núcleo CUDA", em gráficos, um núcleo CUDA é análogo a um processador de fluxo, que é o tipo de núcleo de processamento que as placas gráficas usam. O CUDA executa programas em os núcleos de gráficos, os programas podem ser shaders ou podem ser tarefas de computação para executar tarefas altamente paralelas, como codificação de vídeo.

Se você diminuir o nível de detalhe em um jogo, você pode reduzir a carga computacional da placa gráfica a um ponto em que você pode usá-la para fazer outras coisas, mas a menos que você saiba outras tarefas para desacelerar também, então elas provavelmente tentarão roubar os núcleos do processador gráfico e tornar seu jogo impossível de jogar.

    
por 24.12.2014 / 15:25