FluidX3D v3.7

FluidX3D 3.7 – un paquete para la hidrodinámica computacional que utiliza el método de ecuaciones de Boltzmann en red (LBM) y OpenCL. El proyecto se posiciona como un paquete de CFD de alto rendimiento y bajo consumo de memoria, capaz de funcionar en GPU y CPU de diferentes fabricantes a través de OpenCL.

El cambio principal en la versión 3.7 fue la optimización del núcleo de visualización de la superficie isoplana Q-criterio (graphics_q()), utilizada para visualizar estructuras de vórtice en el flujo. En la implementación anterior, el núcleo cargaba desde la memoria de video una pesada plantilla de 32 velocidades tridimensionales para cada celda de la malla. Ahora, el grupo de trabajo de hilos de tamaño 8×8×8 carga un bloque de 11×11×11 velocidades en 16 KB de memoria local de primer nivel, tras lo cual los hilos adyacentes reutilizan estos datos. Según el autor, esto reduce el número de cargas desde la VRAM aproximadamente en 12 veces — a 2.6 velocidades por celda — y cambia el núcleo de un modo limitado por el ancho de banda de memoria a uno limitado por cálculos.

La ganancia práctica depende del hardware específico. En las nuevas GPU con sistemas de caché avanzados, la optimización manual de la memoria local puede casi no aportar beneficios o incluso reducir ligeramente la tasa de imágenes por segundo. En algunas GPU más antiguas, el autor ha registrado un aumento de hasta el doble, lo que es especialmente notable en el modo gráfico interactivo de FluidX3D. Por ejemplo, en las pruebas publicadas, la NVIDIA Titan Xp aceleró de 7 a 13 fotogramas/s, la Intel UHD 770 — de 8 a 14 fotogramas/s en uno de los modos, y la Intel Arc A750 — de 22 a 26 fotogramas/s.

Para las GPU integradas más antiguas, se prevé una reversión automática a la implementación anterior: parte de estos dispositivos no soportan grupos de trabajo de 512 hilos o tienen menos de 16 KB de memoria local L1. En estos casos, FluidX3D seguirá utilizando la versión anterior del núcleo, manteniendo la compatibilidad.

Además, en esta versión se simplificaron las condiciones para la visualización en VR, se desactivó el despliegue de bucles en la rasterización para reducir el 'espagueti' en la salida de ensamblador, se agregó una microoptimización en convert_triangle/_interpolated(), y se corrigió en el adaptador OpenCL la salida de error al tener un nombre de núcleo vacío y un tamaño de grupo de trabajo.

FluidX3D incluye un renderizador 3D interactivo integrado que permite visualizar los campos de velocidad, líneas de flujo, isopantallas del criterio Q y cortes directamente durante el cálculo, sin necesidad de exportar a una herramienta de posprocesamiento separada. FluidX3D El proyecto también declara soporte para superficies libres, convección térmica, el modelo de turbulencia Smagorinsky-Lilly, seguimiento de partículas, exportación VTK y funcionamiento con varias GPU.


Cabe destacar el estado de la licencia: el código fuente de FluidX3D es abierto y está disponible en GitHub, sin embargo, la licencia del proyecto no es libre en el sentido estricto de OSI/FSF. Permite el uso para investigaciones públicas, educación y fines personales, pero prohíbe la aplicación comercial y militar, así como el entrenamiento de modelos de IA sobre el código fuente.

Fuente: linux.org.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster