Journal article

FastFlow: GPU Acceleration of Flow and Depression Routing for Landscape Simulation

Guillaume Cordonnier, Bernhard Kerbl, Aryamaan Jain, Brandon Finley, James Gain · 2024 · Wiley

7.3.1. Spatial scaling

We show in Figure 16 the relationship between performance and terrain size, for resolutions ranging (logarithmically) from 64 \times 64 to 8192 \times 8192. We observe that parallelism is limited by the maximum simultaneous threads in our GPU model at around 8192 \times 8192, where performance follows a near-linear trend.

Figure 16: Two line graphs showing performance scaling. The left graph, titled 'Flow routing', plots Time (s) on a log scale (0.0001 to 0.1) against resolution (sqrt(N)) on a log scale (64 to 8192). The right graph, titled 'Dep. Carving' and 'Dep. Jumping', plots Time (s) on a log scale (0.001 to 1) against resolution (sqrt(N)) on a log scale (64 to 8192). Both graphs show three data series: 'Flow routing' (blue line), 'Dep. Carving' (green line), and 'Dep. Jumping' (red line). The 'Flow routing' series shows a sharp increase in time as resolution increases, while the 'Dep. Carving' and 'Dep. Jumping' series show a more gradual increase.
Figure 16: Two line graphs showing performance scaling. The left graph, titled 'Flow routing', plots Time (s) on a log scale (0.0001 to 0.1) against resolution (sqrt(N)) on a log scale (64 to 8192). The right graph, titled 'Dep. Carving' and 'Dep. Jumping', plots Time (s) on a log scale (0.001 to 1) against resolution (sqrt(N)) on a log scale (64 to 8192). Both graphs show three data series: 'Flow routing' (blue line), 'Dep. Carving' (green line), and 'Dep. Jumping' (red line). The 'Flow routing' series shows a sharp increase in time as resolution increases, while the 'Dep. Carving' and 'Dep. Jumping' series show a more gradual increase.

Figure 16: Scaling experiments: (1) flow routing, (2) depression jumping, and (3) depression carving.

Figure 17: Performance of depression jumping (Ours (J)) and carving (Ours (C)) against a parallel CPU implementation [Bar16] and a single-core CPU implementation [CBB19]. The figure consists of four bar charts for terrain resolutions: 512x512, 1024x1024, 2048x2048, and 4096x4096. Each chart compares four methods: Ours (J) (blue), Ours (C) (orange), [Bar16] (grey), and [CBB19] (yellow). The y-axis represents Time in seconds on a logarithmic scale. Ours (J) and Ours (C) consistently show the lowest times across all resolutions and terrain types (Synthetic 1%, 5%, 15%, Real, Flat).
Figure 17: Performance of depression jumping (Ours (J)) and carving (Ours (C)) against a parallel CPU implementation [Bar16] and a single-core CPU implementation [CBB19]. The figure consists of four bar charts for terrain resolutions: 512x512, 1024x1024, 2048x2048, and 4096x4096. Each chart compares four methods: Ours (J) (blue), Ours (C) (orange), [Bar16] (grey), and [CBB19] (yellow). The y-axis represents Time in seconds on a logarithmic scale. Ours (J) and Ours (C) consistently show the lowest times across all resolutions and terrain types (Synthetic 1%, 5%, 15%, Real, Flat).

Figure 17: Performance of depression jumping (Ours (J)) and carving (Ours (C)) against a parallel CPU implementation [Bar16] and a single-core CPU implementation [CBB19].