FluidX3D 3.7 β ΠΏΠ°ΠΊΠ΅Ρ Π·Π° ΠΈΠ·ΡΠΈΡΠ»ΠΈΡΠ΅Π»Π½Π° Ρ ΠΈΠ΄ΡΠΎΠ΄ΠΈΠ½Π°ΠΌΠΈΠΊΠ°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π° Π Π΅ΡΠ΅ΡΡΡΠ½ΠΈΡΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π½Π° ΠΠΎΠ»ΡΠΌΠ°Π½ (LBM) ΠΈ OpenCL. ΠΡΠΎΠ΅ΠΊΡΡΡ Π΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠ°Π½ ΠΊΠ°ΡΠΎ Π²ΠΈΡΠΎΠΊΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅Π½ ΠΈ ΠΈΠΊΠΎΠ½ΠΎΠΌΠΈΡΠ΅Π½ ΠΏΠΎ ΠΏΠ°ΠΌΠ΅Ρ CFD ΠΏΠ°ΠΊΠ΅Ρ, ΡΠΏΠΎΡΠΎΠ±Π΅Π½ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π½Π° GPU ΠΈ CPU Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ ΡΡΠ΅Π· OpenCL.
ΠΠ»Π°Π²Π½Π°ΡΠ° ΠΏΡΠΎΠΌΡΠ½Π° Π² Π²Π΅ΡΡΠΈΡ 3.7 Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π·Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΈΠ·ΠΎΠΏΠΎΠ²ΡΡΡ Π½ΠΎΡΡΠΈΡΠ΅ Ρ Q-ΠΊΡΠΈΡΠ΅ΡΠΈΠΉ (graphics_q()), ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΎ Π·Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π²ΠΈΡ ΡΠΎΠ²ΠΈΡΠ΅ ΡΡΡΡΠΊΡΡΡΠΈ Π² ΠΏΠΎΡΠΎΠΊΠ°. Π ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΄ΡΠΎΡΠΎ Π·Π°ΡΠ΅ΠΆΠ΄Π°ΡΠ΅ ΠΎΡ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΠ΅ΡΡΠ° ΡΠ΅ΠΆΡΠΊ ΠΌΠΎΠ΄Π΅Π» ΠΎΡ 32 ΡΡΠΈΠΈΠ·ΠΌΠ΅ΡΠ½ΠΈ ΡΠΊΠΎΡΠΎΡΡΠΈ Π·Π° Π²ΡΡΠΊΠ° ΠΊΠ»Π΅ΡΠΊΠ° ΠΎΡ ΡΠ΅ΡΠ΅ΡΠΊΠ°ΡΠ°. Π‘Π΅Π³Π° ΡΠ°Π±ΠΎΡΠ½Π°ΡΠ° Π³ΡΡΠΏΠ° ΠΎΡ ΠΏΠΎΡΠΎΡΠΈ Ρ ΡΠ°Π·ΠΌΠ΅Ρ 8Γ8Γ8 Π·Π°ΡΠ΅ΠΆΠ΄Π° Π±Π»ΠΎΠΊ ΠΎΡ 11Γ11Γ11 ΡΠΊΠΎΡΠΎΡΡΠΈ Π² 16 ΠΠ Π»ΠΎΠΊΠ°Π»Π½Π° ΠΏΠ°ΠΌΠ΅Ρ ΠΎΡ ΠΏΡΡΠ²ΠΎ Π½ΠΈΠ²ΠΎ, ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΠ΅Π΄Π½ΠΈΡΠ΅ ΠΏΠΎΡΠΎΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ. Π‘ΠΏΠΎΡΠ΅Π΄ ΠΎΡΠ΅Π½ΠΊΠΈΡΠ΅ Π½Π° Π°Π²ΡΠΎΡΠ°, ΡΠΎΠ²Π° Π½Π°ΠΌΠ°Π»ΡΠ²Π° Π±ΡΠΎΡ Π½Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½ΠΈΡΡΠ° ΠΎΡ VRAM ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ 12 ΠΏΡΡΠΈ β Π΄ΠΎ 2.6 ΡΠΊΠΎΡΠΎΡΡΠΈ Π½Π° ΠΊΠ»Π΅ΡΠΊΠ° β ΠΈ ΠΏΡΠ΅Ρ Π²ΡΡΠ»Ρ ΡΠ΄ΡΠΎΡΠΎ ΠΎΡ ΡΠ΅ΠΆΠΈΠΌ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ Ρ ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΠ΅Π»Π½Π°ΡΠ° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°, Π² ΡΠ΅ΠΆΠΈΠΌ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ Ρ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡΡΠ°.
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°ΡΠ° ΠΈΠ·Π³ΠΎΠ΄Π° Π·Π°Π²ΠΈΡΠΈ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΡΠΎ ΠΎΠ±ΠΎΡΡΠ΄Π²Π°Π½Π΅. ΠΠ° Π½ΠΎΠ²ΠΈ GPU Ρ ΡΡΡΠ²ΡΡΡΠ΅Π½ΡΡΠ²Π°Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅, ΡΡΡΠ½Π°ΡΠ° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° Π»ΠΎΠΊΠ°Π»Π½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ ΠΌΠΎΠΆΠ΅ ΠΏΠΎΡΡΠΈ Π΄Π° Π½Π΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π΄ΠΎΡΠΈ Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈ Π»Π΅ΠΊΠΎ ΠΊΠ°Π΄ΡΠΎΠ²Π°ΡΠ° ΡΠ΅ΡΡΠΎΡΠ°. ΠΠ° ΡΠ°ΡΡ ΠΎΡ ΡΡΠ°ΡΠΈΡΠ΅ GPU Π°Π²ΡΠΎΡΡΡ Π΅ ΠΎΡΠΌΠ΅ΡΠΈΠ» ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎ Π΄Π²Π° ΠΏΡΡΠΈ, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΠΌΠΎ Π² ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌ Π½Π° FluidX3D. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅ NVIDIA Titan Xp Π΅ ΡΡΠΊΠΎΡΠΈΠ»Π° ΠΎΡ 7 Π½Π° 13 ΠΊΠ°Π΄ΡΡΠ°/Ρ, Intel UHD 770 β ΠΎΡ 8 Π½Π° 14 ΠΊΠ°Π΄ΡΡΠ°/Ρ Π² Π΅Π΄ΠΈΠ½ ΠΎΡ ΡΠ΅ΠΆΠΈΠΌΠΈΡΠ΅, Π° Intel Arc A750 β ΠΎΡ 22 Π½Π° 26 ΠΊΠ°Π΄ΡΡΠ°/Ρ.
ΠΠ° ΡΡΠ°ΡΠΈ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ GPU Π΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅Π½ ΠΎΡΠΊΠ°Ρ ΠΊΡΠΌ ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ: ΡΠ°ΡΡ ΠΎΡ ΡΠ΅Π·ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π½Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠ°Π±ΠΎΡΠ½ΠΈ Π³ΡΡΠΏΠΈ Ρ ΡΠ°Π·ΠΌΠ΅Ρ 512 ΠΏΠΎΡΠΎΠΊΠ° ΠΈΠ»ΠΈ ΠΈΠΌΠ°Ρ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ 16 ΠΠ Π»ΠΎΠΊΠ°Π»Π½Π° ΠΏΠ°ΠΌΠ΅Ρ L1. Π ΡΠ΅Π·ΠΈ ΡΠ»ΡΡΠ°ΠΈ FluidX3D ΡΠ΅ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΡΠ°ΡΠΈΡ Π²Π°ΡΠΈΠ°Π½Ρ Π½Π° ΡΠ΄ΡΠΎΡΠΎ, Π·Π°ΠΏΠ°Π·Π²Π°ΠΉΠΊΠΈ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΠ°.
Π‘ΡΡΠΎ Π² ΡΠ°Π·ΠΈ Π²Π΅ΡΡΠΈΡ ΡΠ° ΠΎΠΏΡΠΎΡΡΠ΅Π½ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡΡΠ° Π·Π° VR Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ΠΎ Π΅ ΡΠ°Π·Π³ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΈΠΊΠ»ΠΈ Π² ΡΠ°ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡΡΠ° Π·Π° Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° βΡΠΏΠ°Π³Π΅ΡΠΈΡΠ΅β Π² Π°ΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΠΈΡ ΠΈΠ·Ρ ΠΎΠ΄, Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΌΠΈΠΊΡΠΎΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π² convert_triangle/_interpolated(), Π° Π² Π°Π΄Π°ΠΏΡΠ΅ΡΠ° OpenCL Π΅ ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°Π½ΠΎ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° Π³ΡΠ΅ΡΠΊΠ° ΠΏΡΠΈ ΠΏΡΠ°Π·Π½ΠΎ ΠΈΠΌΠ΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° ΡΠ°Π±ΠΎΡΠ½Π°ΡΠ° Π³ΡΡΠΏΠ°.
FluidX3D Π²ΠΊΠ»ΡΡΠ²Π° Π²Π³ΡΠ°Π΄Π΅Π½ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π΅Π½ 3D ΡΠ΅Π½Π΄Π΅ΡΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π³Π»Π΅ΠΆΠ΄Π°Ρ ΠΏΠΎΠ»Ρ Π½Π° ΡΠΊΠΎΡΠΎΡΡ, Π»ΠΈΠ½ΠΈΠΈ Π½Π° ΡΠΎΠΊ, ΠΈΠ·ΠΎΠΏΠΎΠ²ΡΡΡ Π½ΠΎΡΡΠΈ Π½Π° Q-ΠΊΡΠΈΡΠ΅ΡΠΈΡ ΠΈ ΡΡΠ΅Π·ΠΎΠ²Π΅ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ΡΠΎ, Π±Π΅Π· Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π΅Π½ Π΅ΠΊΡΠΏΠΎΡΡ Π² ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° ΠΏΠΎΡΡΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°. FluidX3D ΠΡΠΎΠ΅ΠΊΡΡΡ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΎΠ±ΡΠ²ΡΠ²Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π° ΠΏΠΎΠ²ΡΡΡ Π½ΠΎΡΡ, ΡΠΎΠΏΠ»ΠΈΠ½Π½Π° ΠΊΠΎΠ½Π²Π΅ΠΊΡΠΈΡ, ΠΌΠΎΠ΄Π΅Π» Π½Π° ΡΡΡΠ±ΡΠ»Π΅Π½ΡΠ½ΠΎΡΡ Smagorinsky-Lilly, ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°ΡΡΠΈΡΠΈ, Π΅ΠΊΡΠΏΠΎΡΡ VTK ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ GPU.
ΠΡΠ΄Π΅Π»Π½ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄ΡΠ΅ΡΡΠ°Π΅ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΎΠ½Π½ΠΈΡΡ ΡΡΠ°ΡΡΡ: ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡΡ ΠΊΠΎΠ΄ Π½Π° FluidX3D Π΅ ΠΎΡΠΊΡΠΈΡ ΠΈ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² GitHub, ΠΎΠ±Π°ΡΠ΅ Π»ΠΈΡΠ΅Π½Π·ΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π΅ Π΅ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π° Π² ΡΡΡΠΎΠ³ΠΈΡ ΡΠΌΠΈΡΡΠ» Π½Π° OSI/FSF. Π’Ρ ΡΠ°Π·ΡΠ΅ΡΠ°Π²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π·Π° ΠΎΠ±ΡΠ΅ΡΡΠ²Π΅Π½ΠΈ ΠΈΠ·ΡΠ»Π΅Π΄Π²Π°Π½ΠΈΡ, ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π»ΠΈΡΠ½ΠΈ ΡΠ΅Π»ΠΈ, Π½ΠΎ Π·Π°Π±ΡΠ°Π½ΡΠ²Π° ΡΡΡΠ³ΠΎΠ²ΡΠΊΠ° ΠΈ Π²ΠΎΠ΅Π½Π½Π° ΡΠΏΠΎΡΡΠ΅Π±Π°, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° AI ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: linux.org.ru
