Uploaded July 2022 | Updated September 2026, 2 weeks ago
This is a quick FluidX3D CFD simulation of the Boeing 747. Re=50k, eye-watering 912×1824×456 resolution, 100k time steps, 6h34min compute+render time on an A100 40GB GPU.
Rendering: velocity-colored Q-criterion at Q=0.00002.
My FluidX3D code is standard lattice Boltzmann method (LBM), D3Q19, BGK collision, simple mid-grid bounce-back boundaries. For the box walls I use equilibriium boundaries.
My implementation is ultra (memory) efficient with Esoteric-Pull streaming and FP16 memory compression, reducing memory demand to 55 Bytes/node, 1/3 of other FP32 implementations. This way I can get extremely large resolution even on a single GPU with limited memory capacity.
Esoteric-Pull: doi.org/10.3390/computation10060092
FP32/FP16 mixed precision: researchgate.net/publication/362275548_Accuracy_and_performance_of_the_lattice_Boltzmann_method_with_64-bit_32-bit_and_customized_16-bit_number_formats
FluidX3D: doi.org/10.15495/EPub_UBT_00005400
#FluidX3D #OpenCL #CFD
This is a quick FluidX3D CFD simulation of the Boeing 747. Re=50k, eye-watering 912×1824×456 resolution, 100k time steps, 6h34min compute+render time on an A100 40GB GPU.
Rendering: velocity-colored Q-criterion at Q=0.00002.
My FluidX3D code is standard lattice Boltzmann method (LBM), D3Q19, BGK collision, simple mid-grid bounce-back boundaries. For the box walls I use equilibriium boundaries.
My implementation is ultra (memory) efficient with Esoteric-Pull streaming and FP16 memory compression, reducing memory demand to 55 Bytes/node, 1/3 of other FP32 implementations. This way I can get extremely large resolution even on a single GPU with limited memory capacity.
Esoteric-Pull: doi.org/10.3390/computation10060092
FP32/FP16 mixed precision: researchgate.net/publication/362275548_Accuracy_and_performance_of_the_lattice_Boltzmann_method_with_64-bit_32-bit_and_customized_16-bit_number_formats
FluidX3D: doi.org/10.15495/EPub_UBT_00005400
#FluidX3D #OpenCL #CFD