FluidX3D v3.7

FluidX3D 3.7 – balíček pro výpočetní hydrodynamiku, který používá metodu mřížkových Boltzmannových rovnic (LBM) a OpenCL. Projekt je prezentován jako vysoce výkonný a paměťově úsporný CFD balíček, schopný fungovat na GPU a CPU různých výrobců prostřednictvím OpenCL.

Hlavní změnou verze 3.7 byla optimalizace jádra vykreslování izoplochy Q-kritéria (graphics_q()), používaného k vizualizaci vírových struktur v toku. V předchozí implementaci jádro načítalo z grafické paměti těžkou šablonu ze 32 trojrozměrných rychlostí pro každou buněk sítí. Nyní pracovní skupina vláken o velikosti 8×8×8 načítá blok 11×11×11 rychlostí do 16 KB lokální paměti první úrovně, po čemž sousední vlákna tyto údaje opětovně používají. Podle odhadu autora to snižuje počet načtení z VRAM přibližně 12krát — na 2,6 rychlosti na buňku — a převádí jádro z režimu omezeného šířkou pásma paměti do režimu omezeného výpočty.

Praktické výhody závisí na konkrétním vybavení. Na nových GPU s vyspělým systémem ukládání do mezipaměti může ruční optimalizace lokální paměti téměř nepřinést žádný nárůst, nebo dokonce mírně snížit snímkovou frekvenci. Na některých starších GPU autor zaznamenal zrychlení až dvojnásob, což je zvláště patrné v interaktivním grafickém režimu FluidX3D. Například v publikovaných testech NVIDIA Titan Xp zrychlila ze 7 na 13 snímků/s, Intel UHD 770 — z 8 na 14 snímků/s v jednom z režimů, a Intel Arc A750 — z 22 na 26 snímků/s.

Pro starší integrované GPU je zajištěno automatické přepnutí na předchozí implementaci: některá taková zařízení nepodporují pracovní skupiny o velikosti 512 vláken nebo mají méně než 16 KB lokální paměti L1. V těchto případech FluidX3D nadále používá starou verzi jádra, čímž zajišťuje kompatibilitu.

Také v této verzi byly zjednodušeny podmínky pro VR vykreslování, byly zakázány rozbalování smyček v rastrování za účelem snížení "špaget" v assemblerovém výstupu, byla přidána mikrooptimalizace v convert_triangle/_interpolated(), a opraveno hlášení o chybě v adaptéru OpenCL, pokud je jméno jádra prázdné a velikost pracovní skupiny.

FluidX3D zahrnuje vestavěný interaktivní 3D renderer, který umožňuje prohlížení polí rychlosti, tokových linií, izopovrchů Q-kritéria a řezu přímo během výpočtu, bez nutnosti exportu do samostatného nástroje pro postprocessing. FluidX3D V projektu je také deklarována podpora volného povrchu, tepelné konvekce, modelu turbulence Smagorinsky-Lilly, sledování částic, exportu VTK a práce s několika GPU.


Samostatně je třeba zmínit licenční status: zdrojový kód FluidX3D je otevřený a dostupný na GitHubu, nicméně licence projektu není svobodná ve vlastním slova smyslu OSI/FSF. Umožňuje použití pro veřejný výzkum, vzdělání a osobní účely, ale zakazuje komerční a vojenské použití, stejně jako školení AI modelů na zdrojovém kódu.

Zdroj: linux.org.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster