Cursos e Bibliotecas Ver Mais

Galeria 3D1 Ver Mais

Sarandini   Joinville - SC
kleber3d   Sao Paulo
Thomdubra   Vila Velha ES - ES
Emmanoel   Balneário Camboriú - SC
dpi3d   Recife - PE

Portfólios Ver Mais

DanielMaia   João Pessoa - PB
dpi3d   Recife - PE
g2guilherme   Curitiba-PR - PR

CUDA

Por: SERPA  

Em: 02/07/2021 15:27

Gente.

Essa coisa de CUDA acho que é muito complicada de implementar em softwares 3D.

Estava com o TYFLOW instalado aqui e estava funcionando de boa, reconhecendo minha GPU.

Tive um problema no max que me fez reinstalar tudo.

Conclusão.

Como eu havia pego a nova versão do TYFLOW (vou sempre acompanhar essa ferramenta pra acompanhar as suas atualizações e aproveitá-las).

Acontece que essa nova versão não está reconhecendo minha GPU CUDA. Ativou somente o modo OPENCL dela.

Estava lendo os forums gringos e vi lá em mensagens antigas que o Autor do plugin tinha resolvido tirar o suporte ao CUDA em uma versão anterior alegando instabilidade mas que tinha planos de voltar.

Acho que vou ter que voltar para a versão anterior do TYFLOW que estava funcionando de boa.



Como resolver isso, eu, realmente, nem imagino, mas eu sei q, essas operações dos CUDA-cores são coisas mais simples (só q divididas em MUITOS cores menores, etc...)... Na verdade o que ocorre é que, quando se usa o processamento-paralelo (na GPU) (geralmente com placas de vídeo), se distribui MUITOS processos de menor complexidade pra MUITOS núcleos de processamento, e, quando se usa o processamento central (o comum, "CPU") se distribui poucos processos (embora q mais altamente elaborados) pra poucos núcleos de processamento... Ou seja, na base, vai ser um código diferente (por exemplo um render GPU divide mesmo a cena (ou faz qualquer outra coisa, etc..) em varios setores q os cudas conseguem lidar, já a CPU renderiza de uma maneira mais linear e é mais indicada pra coisas muito mais complexas (um UNICO CALCULO muito complexo, ao contrario de muitos calculos menos complexos...), etc... 

(Nesse sentido do processamento e força-bruta, vc poderia pensar o processamento-paralelo (GPU) como mandar 24 mil formiguinhas carregarem cada uma 1 grama, ou mandar 6 formigônas brutas super-sayajin (CPU) carregarem 4kg cada... Mas os processos pensados sob um paradigma podem ser bastante diferentes, ante outros. Essa questão do processamento paralelo, pessoalmente, acredito que tenha ainda um bom caminho pela frente... (e ainda tem processos hibridos e tal vai-vêno =3))




Mas é, eu já tinha ouvido falar q é diferente mesmo (a programação dessas coisas), justamente por ter q "dividir as coisas em pedaços menores" e tal (no caso do processamento paralelo (ter 5 mil processos simples simultaneamente ao invés de 1 só processo 1500 vezes mais pesado, rodando de maneira linear, etc...)), mas, a grande questão (até onde eu pude perceber) é q é difícil "particionar essas coisas" e tal XD... Por isso os renders GPU as vezes são bem diferentes dos CPU... Mas o TOP-TOP, hj em dia, eu ainda acho q são os render CPU mesmo, embora q já dê pra trabalhar BEM com render GPU, etc...





@edit: É... é como se a CPU fosse por exemplo uma (1) pessoa pensando, e o processamento paralelo (de muitos CUDA cores e tal) fosse como as abelhas (qdo elas fazem "àquele ritual" e tal, q elas "dançam" tocando umas às outras e obtêm um tipo de "hive-mind" e tal (q é, basicamente, O EXEMPLO do processamento paralelo na Natureza, etc.. etc... esse fenômeno, inclusive, é incrível de se ver...)).. =3










@edit: PUTS! Ah é! XD... Ia até falar isso inicialmente mas esquecí... Vê o modelo da sua placa de video e vê no site da NVidia o driver. Isso geralmente ajuda bastante na questão de reconhecer cuda cores e tal... 
A Beleza está entre a Ética e a Razão!..
Oi Fox, tudo bem?

Eu entendi perfeitamente o que você disse sobre a diferença de processamento da GPU para a CPU, mas a Nvidia está desenvolvendo outros tipos de núcleos de processamento para efetuar cálculos mais complexos em paralelo como os Tensor Core para processar AI.

Atualmente os supercomputadores científicos são lotados de placas Nvidia e graças a isso conseguem fazer coisas que levariam anos através de CPUs.

A programação entre um e outro é diferente, mas o processamento paralelo das GPUs é muito mais eficiente e veloz.

Eu acho que as CPUs diminuiram o ritmo nos últimos anos e as GPUs avançaram mais, você não acha?

Abração e tudo de bom.

André Vieira
Oi Serpa, tudo bem?

Eu não testei as últimas versões do TyFlow, então, não sei como está a questão do CUDA.

De qualquer forma, o CUDA é uma maneira da placa de vídeo acelerar as operações do TyFlow e outros Softs, então, as coisas costumam acontecer mais rapidamente quando rodam em CUDA.

Um problema comum são os Drivers da placa de vídeo, se o programa estiver requerendo recursos que não existem no seu Driver ele acaba descartando e usando a CPU, que é bem mais lenta.

Abração e tudo de bom.

André Vieira
Mas essa coisa de descartar a GPU para usar a GPU.

Outro dia me deparei com um programa que oferece uma opção interessante quanto a isso, não lembro qual é se foi no Marvelous, Houdini.

Ele simplesmente tem a opção lá.

O que você quer que eu faça caso dê erro na GPU, apresente o erro e pare ou pule pra CPU?

Isso ai é legal pra vc identificar e já atualizar o driver.

Não sei pq ainda temos limitações quanto a renderizações via GPU se ela é mais rápida.

Tem determinados efeitos que não são aceitos no VRAY GPU.

Essa coisa de render hybrido (CPU/GPU). Não seria a solução para os casos de um determinado efeito não ser possível na GPU ele automaticamente entregar para a CPU e tudo aquilo que ele precisar de fazer de forma mais rápida jogar pra GPU.

Uma troca de figurinhas. Uma ajudando a outra.

Faltou memória ai na GPU? Usa a minha aqui, tenho 32 GB.

Vai conseguir entregar esse cálculo mais rápido que eu? Não, então me dê aqui que eu faço no CUDA.

Não consegue processar esse efeito? Me dá aqui que eu tenho suporte.

Por falar nisso e aquele tal de AMD Prorender? Está na versão 2.0 ainda.

Nem me lembro se foi essa versão que instalei aqui na época que peguei pra testar.

To pensando em instalar ele novamente.

Aliás eu tenho a impressão que foram eles quem primeiro fizeram essa integração CPU/GPU. Me corrijam se eu estiver errado.






Oi Serpa, tudo bem?

Eu não sou especialista em Hardware, mas parece que muitos programas descartam a GPU e passam a usar a CPU quando a cena não cabe na memória da placa e coisas do tipo.
Por isso que a renderização por GPU não deslanchou logo de cara e deixou a CPU para trás, pois as memórias das placas de vídeo ainda são baixas perto das memórias dos PCs.
Hoje já melhoraram bastante e tem diversas tecnologias diferentes, por exemplo, o V-Ray permite usar a GPU e a CPU juntas e consegue renderizar mais rápido do que usando apenas a GPU.
Agora, desde o início o Redshift aceita renderizar pela GPU cenas maiores do que a memória da placa permite, ele é um renderizador maravilhoso para animação, o mais rápido que já usei no 3ds max.

O problema é que não é tão simples programar para GPU, é muito mais fácil programar para CPU, também não é fácil conseguir o mesmo resultado nos dois métodos, então, complica trabalhar com os dois juntos e não são todos que conseguem.
A velocidade das memórias são diferentes, a forma de armazenamento, tudo, então, as vezes não é viável a conversão dos dados e a transferência para outro sistema, pois pode demorar mais do que deixar na fila para processar quando a GPU liberar.

O ideal mesmo era as placas aumentarem absurdamente a quantidade de memória nelas e os Softs começarem a desprezar a CPU, que parou por volta de 4 Ghz e não avança mais.
Porém, só tem a Nvidia praticamente no mercado, a venda da Radeon para a AMD foi muito ruim para a concorrência e para os usuários, tanto que agora nem conseguimos mais comprar placas de vídeo de ponta porque custam o preço de um carro zero KM.

Sobre o ProRender, eu usei uma vez só para testar e gostei muito, pois ele trabalhava com rasterização e Ray Tracing por cima só onde era necessário, quase igual o Unreal faz, então, conseguia tempos de renderização absurdamente baixos, menores do que o Redshift, mas eu não usei para valer a ponto de saber se ele dá conta de tudo.

Abração e tudo de bom.

André Vieira
Estou para experimentar esse REDSHIT faz tempo.

O Marco Vaz, um cara que manja muito de motion e faz muitos trabalhos lá fora disse que usam ele direto.

Cara!

Quando comprei minha máquina nova com a GTX 1050 primeira coisa que pensei.

Puts, se um processador com 8 núcleos (na verdade 4 núcleos e 4 threads) já renderiza naquela velocidade absurda, imagine uma placa de vídeo com 640 CUDA cores.

Cometi 2 erros na hora de formar esse raciocínio na época.

Primeiro pq relacionei quantidade de núcleos diretamente com mais desempenho. Esquecendo de outros fatores importantes. Clock das memórias, velocidade de clock da placa de vídeo.

Sem contar que a apresentação que eu tinha assistido de render via GPU era feita com o QuickSilver. Ai realmente a velocidade é absurda.

Só que eu não estava me atentando é que o Quicksilver é um scanline melhorado.

Aliás dizem que ele nas versões mais recentes do max tem compatibilidade com materiais OSL. Mas  nem cheguei a mexer nisso e sei que não vai ser no mesmo nível de um VRAY ou Corona.

Ai pensei. Mas se for apenas pra apresentar uma maquete para um cliente não exigente, estudar movimento de câmera ou física, cloth, blz.

Primeito teste que fui fazer com maquete já quebrei a cara pois não consegui fazer um vidro decente.

Pensei em voltar a usar ele agora que comecei meus estudos com o Phoenix PD, mas quando mando renderar a animação, não rola, não sei pq.

Quando peço pra renderizar apenas 1 frame, vai de boa, mas animação que é justamente o propósito pra eu voltar a usá-lo. Não funciona e não faço a menor ideia.

Talvez seja uma incompatibilidade com aquele formato de arquivo cache de malha do Phoenix. Vou ver se tem uma forma de converter para Alembic, pois neste formato tenho quase certeza que rola pois lembro de uma vez ter feito uma importação de um alembic do Realflow pro max e acho que naquela época consegui renderar no quicksilver a animação sem problemas.



Oi Serpa, tudo bem?

O Redshift é excelente, não sei como está a interface agora porque mudaram recentemente, mas na versão 2x que eu usei era praticamente uma mistura do Mental Ray com o V-Ray.
Ele realmente renderiza muito rápido em placas CUDA e permite renderizar cenas maiores do que a memória da placa de vídeo aceita.
Eu creio que é o Render mais indicado para Motion Graphics, tanto que a Maxon comprou os caras.

Sobre a placa de vídeo GTX 1050, é excelente, já vi vários vídeos renderizados em tempo real com o Lumen no Unreal 5 usando a GTX 1050.

Porém, num renderizador convencional como V-Ray ou Arnold você não sente a mesma diferença porque eles não usam tudo que a placa tem para oferecer, a não ser que renderize no V-Ray GPU.
Em aplicações que demandam a GPU intensivamente igual a renderização Real-Time que você sente o poder da GTX 1050.

Sobre o Quick Silver, na verdade ele é uma porcaria, mais uma que a Autodesk enfiou no 3ds max.
Como você percebeu rapidamente, ele não consegue reproduzir transparências corretamente e diversos outros efeitos de materiais e iluminação, vale mais a pena renderizar com AO e iluminação ambiente sem GI no V-Ray se quiser mostrar um projeto rapidamente ou testar movimento de câmera.

Por estas e outras que eu acho maravilhoso animar no Unreal vendo tudo com qualidade final, seja em testes ou para valer, principalmente nestes casos onde apenas a câmera se move, pois a qualidade é muito próxima dos renderizadores convencionais.

O acho que o Quick Silver não vai renderizar a animação do Phoenix porque ele não entende Meshes que mudam a quantidade de vértices a cada Frame, mas se você já renderizou coisas do RealFlow, então não é isso, pode ser mesmo o tipo de Cache do Phoenix.

Abração e tudo de bom.

André Vieira
O VRAY GPU nao reconhceu um recurso que utilizei do tyflow, o tyconform.

Entao, por enquanto estou indo de VRAY CPU mesmo.

Depois verei se acho o redshift para o max 2021.

E vou baixar o prorender novamente para ver em que pé está atualmente.
Oi Serpa, tudo bem?

A renderização por GPU ainda não aceita tudo que a renderização convencional permite, tem a vantagem da velocidade, mas não se tornou um padrão também por causa da limitação da memória das placas de vídeo.
Quando virar padrão vão portar tudo das CPUs para as GPUs, pois ninguém mais vai renderizar por CPU se pode renderizar muito mais rápido pela GPU.

Porém, eu creio que quando isso acontecer, a renderização Real-Time já estará bem estabelecida e ninguém vai querer esperar renderização por GPU se pode renderizar em tempo real. rsrsrsrs

Se você baixar o ProRender e testar, me conta o que achou e as vantagens que ele tem, vou gostar muito de saber, pois faz anos que testei pela última vez.

Abração e tudo de bom.

André Vieira

Faça o login para poder comentar

Usuários conectados

Total de mensagens publicadas pelos membros da comunidade: 707585.

Total de membros registrados: 135209

Últimos membros registrados: yanag, lzfelps, Laurinha33, gustavosaalmeida, IF, DESIGNERS, arqui12, scottbilly103, milesmauro.

Usuário(s) on-line na última hora: 487, sendo 21 membro(s) e 466 visitante(s).

Membro(s) on-line na última hora: Fabio Catelleno, Mauro, gago, Reinaldo Silva, wmiler, yanag, Tomas, Willmitnick, IF, DESIGNERS, biancamsaragao, Ronaldo Junior, Roberto Trevelin, Le_Andro, marcelo de moraes, Duda, Henrique Ribeiro, Felipe Duarte, Adalberto Rocha, Victor Mendonça, Gibran Farfud, mixel.amorim.

Legenda: Administrador, Especial, Moderador, Parceiro .

3D1 © Três D1 © 1999-2024. Todos direitos reservados.