FluidX3D v3.7

FluidX3D 3.7 – pacote para dinâmica de fluidos computacional, utilizando o método de equações de Boltzmann em grade (LBM) e OpenCL. O projeto é posicionado como um pacote CFD de alto desempenho e econômico em termos de memória, capaz de operar em GPUs e CPUs de diferentes fabricantes através do OpenCL.

A principal mudança na versão 3.7 foi a otimização do núcleo de renderização da isopletura do critério Q (graphics_q()), utilizada para visualizar estruturas vorticais no fluxo. Na implementação anterior, o núcleo carregava da memória de vídeo um pesado template de 32 velocidades tridimensionais para cada célula da grade. Agora, um grupo de trabalho de threads de 8×8×8 carrega um bloco de 11×11×11 velocidades na memória local de primeiro nível de 16 KB, após o qual threads adjacentes reutilizam esses dados. De acordo com o autor, isso reduz o número de carregamentos da VRAM em aproximadamente 12 vezes — para 2,6 velocidades por célula — e move o núcleo de um modo limitado pela largura de banda da memória para um modo limitado por cálculos.

O ganho prático depende do hardware específico. Em novas GPUs com sistema de cache avançado, a otimização manual da memória local pode quase não trazer ganhos ou até reduzir ligeiramente a taxa de quadros. Em algumas GPUs mais antigas, o autor observou acelerações de até duas vezes, especialmente notáveis no modo gráfico interativo do FluidX3D. Por exemplo, em testes publicados, a NVIDIA Titan Xp acelerou de 7 para 13 quadros/s, a Intel UHD 770 de 8 para 14 quadros/s em um dos modos, e a Intel Arc A750 de 22 para 26 quadros/s.

Para GPUs integradas mais antigas, há um retrocesso automático para a implementação anterior: parte desses dispositivos não suporta grupos de trabalho com 512 threads ou possui menos de 16 KB de memória local L1. Nesses casos, o FluidX3D continuará a usar a versão antiga do núcleo, mantendo a compatibilidade.

Nesta versão, também foram simplificadas as condições para renderização em VR, a desdobramento de loops na rasterização foi desativado para reduzir o "spaghetti" na saída de montagem, micro-otimizações foram adicionadas em convert_triangle/_interpolated(), e no adaptador OpenCL foi corrigida a saída de erro ao nome do núcleo estar vazio e ao tamanho do grupo de trabalho.

FluidX3D inclui um renderizador 3D interativo embutido, que permite visualizar campos de velocidade, linhas de corrente, is superfícies do critério Q e cortes durante a simulação, sem a necessidade de exportação para uma ferramenta de pós-processamento separada. FluidX3D O projeto também destaca o suporte a superfícies livres, convecção térmica, modelo de turbulência Smagorinsky-Lilly, rastreamento de partículas, exportação VTK e operação com várias GPUs.


É importante mencionar o status de licença: o código-fonte do FluidX3D é aberto e disponível no GitHub; no entanto, a licença do projeto não é livre no sentido estrito da OSI/FSF. Ela permite o uso para pesquisas públicas, educação e fins pessoais, mas proíbe a aplicação comercial e militar, assim como o treinamento de modelos de IA com o código-fonte.

Fonte: linux.org.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster