FluidX3D v3.7

FluidX3D 3.7 – et pakket til beregningsmæssig hydrodynamik, der bruger metoden med Boltzmann-lattice-ligninger (LBM) og OpenCL. Projektet positioneres som et højtydende og hukommelsevenligt CFD-pakke, der kan køre på GPU'er og CPU'er fra forskellige producenter via OpenCL.

Den primære ændring i version 3.7 er optimeringen af kernevisualisering af isopoverflade Q-kriteriet (graphics_q()), der bruges til visualisering af virvler i strømmen. I den tidligere implementering indlæste kernen et tungt mønster af 32 tredimensionelle hastigheder fra videohukommelsen for hver gittercelle. Nu indlæser en arbejdsgroup med tråde i størrelsen 8×8×8 en blok af 11×11×11 hastigheder i 16 KB lokal første-lags hukommelse, hvorefter nærliggende tråde genbruger disse data. Ifølge forfatterens vurdering reducerer dette antallet af indlæsninger fra VRAM med cirka 12 gange — til 2,6 hastigheder pr. celle — og flytter kernen fra en hukommelseshåndteringsbegrænset tilstand til en beregningsbegrænset tilstand.

Den praktiske gevinst afhænger af det konkrete udstyr. På nye GPU'er med et veludviklet cachesystem kan manuel optimering af lokal hukommelse næsten ikke give nogen forbedring eller endda lidt sænke billedhastigheden. På nogle ældre GPU'er har forfatteren registreret hastighedsforøgelse på op til det dobbelte, hvilket især er mærkbar i det interaktive grafiske regime af FluidX3D. For eksempel, i publicerede tests, accelererede NVIDIA Titan Xp fra 7 til 13 billeder/s, Intel UHD 770 fra 8 til 14 billeder/s i en af tilstandene, mens Intel Arc A750 gik fra 22 til 26 billeder/s.

For ældre integrerede GPU'er er der indført automatisk tilbagefald til den gamle implementering: nogle enheder understøtter ikke arbejdsgrupper med 512 tråde eller har mindre end 16 KB lokal hukommelse L1. I disse tilfælde vil FluidX3D fortsætte med at bruge den gamle kerneversion for at bevare kompatibiliteten.

Desuden er betingelserne for VR-visualisering forenklet i denne version, cykeldrejningen ved rasterisering er deaktiveret for at reducere "spaghetti" i assemblerudgangen, der er tilføjet mikrooptimering i convert_triangle/_interpolated(), og i OpenCL-adapteren er fejludgangen ved tomt kerne navn og størrelse af arbejdsgruppe rettet.

FluidX3D inkluderer en indbygget interaktiv 3D-renderer, der gør det muligt at visualisere hastighedsfelter, strømlinjer, isopoverflader for Q-kriteriet og snit direkte under beregningen, uden behov for eksport til et separat efterbehandlingsværktøj. FluidX3D Projektet har også angivet støtte til fri overflade, termisk konvektion, Smagorinsky-Lilly turbulensmodeller, partikelsporing, VTK-eksport og muligheden for at arbejde med flere GPU'er.


Det er værd at bemærke licensstatussen: Kildekoden til FluidX3D er åben og tilgængelig på GitHub, men projektets licens er ikke fri i den strenge mening fra OSI/FSF. Den tillader brug til offentlige undersøgelser, uddannelse og private formål, men forbyder kommerciel og militær anvendelse samt træning af AI-modeller på kildekoden.

Kilde: linux.org.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster