Comparison of rhs! Performance: CPU vs. GPU

This documentation serves as a supplementary material for JuliaCon 2025.

See the benchmarking file at benchmark.ipynb, and all results are compared between TrixiCUDA.jl v0.1.0-rc.2 and Trixi.jl v0.11.17.

We provide the link to each example in Trixi.jl as it is a more mature and stable package compared to TrixiCUDA.jl. Note that performance varies with different inputs; these benchmark results are provided for reference only.

Linear Advection Equation

Left: Basic linear advection equation (1D, 2D, 3D)
Right: Linear advection equation with mortar method (2D, 3D)

Compressible Euler Equations

Left: Compressible Euler equations with entropy-conservative flux (1D, 2D, 3D) Right: Compressible Euler equations with shock capturing (1D, 2D, 3D)

Hyperbolic Diffusion Equations

Hyperbolic diffusion equations with non-periodic boundary conditions (1D, 2D, 3D)

Ideal GLM-MHD Equations

Upper: Ideal GLM-MHD equations with entropy-conservative flux (1D, 2D, 3D)
Lower left: Ideal GLM-MHD Alfven wave (1D, 2D, 3D)
Lower right: Ideal GLM-MHD Alfven wave with mortar method (2D, 3D)

Shallow Water Equations

Left: Shallow water equations with entropy conservative flux (1D, 2D)
Right: Shallow water equations with source terms (1D, 2D)

Takeaway

For simple cases (for example, if the CPU performance is less than 100 μs), it is not advantageous to run on the GPU, since the overhead of using the GPU outweighs any performance gain. However, for more complex cases (such as when execution time on the CPU exceeds 1,000 μs), running on the GPU can provide significant benefits.

© Trixi-GPU developers. Powered by Franklin.jl and the Julia programming language.