FluidX3D v3.7

FluidX3D 3.7 – en pakke for beregningsmessig hydrodynamikk som bruker metoden for gitterligninger fra Boltzmann (LBM) og OpenCL. Prosjektet posisjonerer seg som en høyytelses og minneeffektiv CFD-pakke, i stand til å kjøre på GPU-er og CPU-er fra forskjellige produsenter via OpenCL.

Den viktigste endringen i versjon 3.7 er optimaliseringen av kjernen som tegner isoplover for Q-kriteriet (graphics_q()), brukt for visualisering av virvelstrukturer i strømningen. I den tidligere implementasjonen lastet kjernen inn en tung mal med 32 tredimensjonale hastigheter fra videominne for hver rutenettcelle. Nå laster en arbeidsgruppe med tråder i størrelse 8×8×8 inn et blokk med 11×11×11 hastigheter i 16 KB lokal første-nivå minne, hvoretter nabotråder gjenbruker disse dataene. Forfatterens estimat indikerer at dette reduserer antall laster fra VRAM med omtrent 12 ganger — ned til 2,6 hastigheter per celle — og flytter kjernen fra en minnebegrenset modus til en beregningsbegrenset modus.

Den praktiske gevinsten avhenger av spesifikk maskinvare. På nye GPU-er med utviklede cache-systemer gir manuell optimalisering av lokal minne nesten ingen økning, eller reduserer til og med bildefrekvensen litt. På enkelte eldre GPU-er har forfatteren registrert en hastighet på opptil to ganger, noe som er spesielt merkbart i det interaktive grafiske moduset til FluidX3D. For eksempel, i publiserte tester har NVIDIA Titan Xp akselerert fra 7 til 13 bilder/s, Intel UHD 770 fra 8 til 14 bilder/s i en av modusene, og Intel Arc A750 fra 22 til 26 bilder/s.

For eldre integrerte GPU-er er det lagt inn en automatisk tilbakeføring til den tidligere implementeringen: enkelte av disse enhetene støtter ikke arbeidsgrupper med 512 tråder, eller har mindre enn 16 KB lokal L1-minne. I slike tilfeller vil FluidX3D fortsette å bruke den gamle versjonen av kjernen for å opprettholde kompatibilitet.

Denne versjonen forenkler også betingelsene for VR-rendering, deaktiverer utvidelsen av løkker i rasterisering for å redusere "spaghetti" i assemblerutgangen, legger til mikrooptimalisering i convert_triangle/_interpolated(), og retter feilmeldingen i OpenCL-adapteren når kjernens navn og størrelsen på arbeidsgruppen er tomme.

FluidX3D inkluderer en innebygd interaktiv 3D-renderer som gjør det mulig å se på hastighetsfelt, strømlinjer, isopoverflater av Q-kriteriet og skjæringer direkte under beregningen, uten behov for eksport til et separat etterbehandlingsverktøy. FluidX3D Prosjektet annonserer også støtte for frie overflater, termisk konveksjon, Smagorinsky-Lilly turbulensmodeller, partikkelsporing, VTK eksport og bruk av flere GPU-er.


Det er også verdt å merke seg lisensstatusen: kildekoden til FluidX3D er åpen og tilgjengelig på GitHub, men prosjektlisensen er ikke fri i den strenge betydningen av OSI/FSF. Den tillater bruk for offentlig forskning, utdanning og personlige formål, men forbyr kommersiell og militær bruk, samt opplæring av AI-modeller på kildekoden.

Kilde: linux.org.ru

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster