Numerical model for simulating shallow water hydrodynamics on the GPU using an Adaptive Mesh Refinment type grid. The model was designed with the goal of simulating inundation (River, Storm surge or tsunami). The model uses a Block Uniform Quadtree approach that runs on the GPU but the adaptive/multi-resolution/AMR is being implemented and not yet operational. The core SWE engine and adaptivity has been inspired and taken from St Venant solver from Basilisk and the CUDA GPU memory model has been inspired by the work from Vacondio _et al._2017)
GNU General Public License v3.0
34
stars
15
forks
source link
Slow runtimes with boundary forcing caused by slow texture fetch #100
Slow runtimes with boundary forcing caused by slow texture fetch.
Using a large file as input to the boundary.
GPU
total runtime with full bnd
total runtime with no bnd
total runtime with trimmed bnd
QP620
207 s
80 s
95 s
A100
128 s
14 s
31 s
possible solutions
Easy but limited effectiveness
automatically trim out bnd values outside of the model running period. (easy in appearance but need to move the texture allocation away )
More tricky
Use a moving windows of texture value
Implement an out of texture technique. It seems overkill to use texture when in reality we are doing simple 1D interpolations. holding interpolation weights in memory might make this supper fast and totally independent of size of the (trim) boundary array.
The problem
Slow runtimes with boundary forcing caused by slow texture fetch. Using a large file as input to the boundary.
possible solutions
Easy but limited effectiveness
More tricky