Benchmarks Performance benchmarks for SpeedyWeather.jl across architectures. This page is auto-generated at doc-build time from SpeedyWeather/benchmark/assets/benchmark_results.json, which itself is updated by SpeedyWeather/benchmark/manual_benchmarking.jl. Running the benchmark script on a new architecture adds a column to the overview table, a series to each comparison figure, and a per-architecture section to this page.
All simulations are benchmarked over several seconds (wallclock time) without output. Benchmarking excludes initialization. Timings can vary by ±50% between runs, so treat the numbers as rough rather than precise.
Overview: PrimitiveWet resolution across architectures Simulated years per wallclock day (SYPD) for the PrimitiveWetModel resolution sweep, one column per architecture. Each (T, L) configuration is reported for both the standard Legendre transform and fast Fourier transform (LT+FFT) and the single matrix transform (MT). Empty cells (—) mean the architecture has either not been benchmarked yet or did not run that specific configuration.
T L Transform cpu-arm cpu-x86 gpu-nvidia 32 8 LT+FFT 1400 856 5257 32 8 MT 757 107 5667 43 8 LT+FFT 564 370 3132 43 8 MT 272 28 3643 64 8 LT+FFT 147 107 1260 64 8 MT 48 3.7 951 86 8 LT+FFT 57 39 650 86 8 MT 13 0.9 262 86 16 LT+FFT 51 49 563 86 16 MT 19 1.1 135 86 24 LT+FFT 48 38 540 86 24 MT 11 0.9 75 128 8 LT+FFT 15 11 264 128 8 MT 1.5 0.1 37 128 16 LT+FFT 21 15 243 128 16 MT 2.1 0.2 15 128 24 LT+FFT 15 11 220 128 24 MT 1.7 0.1 9.5 171 8 LT+FFT 5.5 3.9 138 171 16 LT+FFT 7.7 5.6 122 171 24 LT+FFT 4.3 4.5 110 256 8 LT+FFT 1.4 1.0 52 256 16 LT+FFT 1.9 1.3 45 256 24 LT+FFT 1.5 1.0 39
Architecture: cpu-arm Created for SpeedyWeather.jl v0.21.1+DEV on Tue, 21 Jul 2026 17:31:54.
Machine details — cpu-arm julia julia > versioninfo ()
Julia Version 1.12 . 6
Commit 15346901f00 ( 2026 - 04 - 09 19 : 20 UTC)
Build Info :
Official https :// julialang . org release
Platform Info :
OS : macOS (arm64 - apple - darwin24. 0.0 )
CPU : 8 × Apple M3
WORD_SIZE : 64
LLVM : libLLVM - 18.1 . 7 (ORCJIT, apple - m3)
GC : Built with stock GC
Threads : 1 default, 1 interactive, 1 GC (on 4 virtual cores) Models, default setups — cpu-arm Model T L Physics Δt SYPD Memory BarotropicModel 31 1 false 1800 46826 780.58 KB ShallowWaterModel 31 1 false 2400 35514 962.86 KB PrimitiveDryModel 31 8 true 2400 2222 5.27 MB PrimitiveWetModel 31 8 true 2400 1435 6.22 MB
Shallow water model, resolution — cpu-arm Model T L Rings Δt SYPD Memory ShallowWaterModel 31 1 48 2400 18732 962.86 KB ShallowWaterModel 42 1 64 1800 15114 1.68 MB ShallowWaterModel 63 1 96 1200 3442 3.77 MB ShallowWaterModel 85 1 128 900 1658 6.84 MB ShallowWaterModel 127 1 192 600 392 16.12 MB ShallowWaterModel 170 1 256 450 133 30.33 MB ShallowWaterModel 255 1 384 300 28 76.02 MB
Primitive wet model, resolution — cpu-arm Model T L Rings Transform Δt SYPD Memory PrimitiveWetModel 31 8 48 default 2400 1400 6.22 MB PrimitiveWetModel 42 8 64 default 1800 564 10.51 MB PrimitiveWetModel 63 8 96 default 1200 147 22.34 MB PrimitiveWetModel 85 8 128 default 900 57 38.87 MB PrimitiveWetModel 127 8 192 default 600 15 85.50 MB PrimitiveWetModel 170 8 256 default 450 5.5 151.57 MB PrimitiveWetModel 255 8 384 default 300 1.4 343.69 MB PrimitiveWetModel 85 16 128 default 900 51 67.81 MB PrimitiveWetModel 127 16 192 default 600 21 148.26 MB PrimitiveWetModel 170 16 256 default 450 7.7 261.34 MB PrimitiveWetModel 255 16 384 default 300 1.9 586.14 MB PrimitiveWetModel 85 24 128 default 900 48 96.80 MB PrimitiveWetModel 127 24 192 default 600 15 211.09 MB PrimitiveWetModel 170 24 256 default 450 4.3 371.20 MB PrimitiveWetModel 255 24 384 default 300 1.5 828.73 MB PrimitiveWetModel 31 8 48 matrix 2400 757 48.11 MB PrimitiveWetModel 42 8 64 matrix 1800 272 133.88 MB PrimitiveWetModel 63 8 96 matrix 1200 48 582.80 MB PrimitiveWetModel 85 8 128 matrix 900 13 1.75 GB PrimitiveWetModel 127 8 192 matrix 600 1.5 8.19 GB PrimitiveWetModel 85 16 128 matrix 900 19 1.78 GB PrimitiveWetModel 127 16 192 matrix 600 2.1 8.24 GB PrimitiveWetModel 85 24 128 matrix 900 11 1.80 GB PrimitiveWetModel 127 24 192 matrix 600 1.7 8.30 GB
Primitive Equation, Float32 vs Float64 — cpu-arm Model NF T L Δt SYPD Memory PrimitiveWetModel Float32 31 8 2400 1227 6.22 MB PrimitiveWetModel Float64 31 8 2400 1232 11.35 MB
Grids — cpu-arm Model T L Grid Rings Δt SYPD Memory PrimitiveWetModel 63 8 FullGaussianGrid 96 1200 80 32.40 MB PrimitiveWetModel 63 8 FullClenshawGrid 95 1200 109 32.13 MB PrimitiveWetModel 63 8 OctahedralGaussianGrid 96 1200 158 22.34 MB PrimitiveWetModel 63 8 OctahedralClenshawGrid 95 1200 146 22.06 MB PrimitiveWetModel 63 8 HEALPixGrid 95 1200 219 16.42 MB PrimitiveWetModel 63 8 OctaHEALPixGrid 95 1200 171 19.89 MB
Number of vertical layers — cpu-arm Model T L Δt SYPD Memory PrimitiveWetModel 31 4 2400 2324 3.87 MB PrimitiveWetModel 31 8 2400 1404 6.22 MB PrimitiveWetModel 31 12 2400 1003 8.58 MB PrimitiveWetModel 31 16 2400 771 10.94 MB
PrimitiveDryModel: Physics or dynamics only — cpu-arm Model T L Dynamics Physics Δt SYPD Memory PrimitiveDryModel 31 8 true true 2400 2368 5.27 MB PrimitiveDryModel 31 8 true false 2400 4046 5.27 MB PrimitiveDryModel 31 8 false true 2400 2614 5.27 MB
PrimitiveWetModel: Physics or dynamics only — cpu-arm Model T L Dynamics Physics Δt SYPD Memory PrimitiveWetModel 31 8 true true 2400 1423 6.22 MB PrimitiveWetModel 31 8 true false 2400 3055 6.22 MB PrimitiveWetModel 31 8 false true 2400 1558 6.22 MB
Individual dynamics functions — cpu-arm PrimitiveWetModel | Float32 | T31 L8 | OctahedralGaussianGrid | 48 Rings — cpu-arm Function Time Memory Allocations pressure_gradient_flux! 39.666 μs 31.98 KiB 200 linear_virtual_temperature! 2.056 μs 0 bytes 0 geopotential! 7.562 μs 384 bytes 6 vertical_integration! 14.500 μs 0 bytes 0 surface_pressure_tendency! 11.875 μs 15.66 KiB 96 vertical_velocity! 23.333 μs 0 bytes 0 linear_pressure_gradient! 2.065 μs 0 bytes 0 vertical_advection! 112.500 μs 2.44 KiB 32 vordiv_tendencies! 224.375 μs 231.83 KiB 284 temperature_tendency! 291.583 μs 344.77 KiB 401 humidity_tendency! 279.375 μs 344.09 KiB 396 bernoulli_potential! 93.667 μs 114.30 KiB 129
Architecture: cpu-x86 Created for SpeedyWeather.jl v0.21.1+DEV on Tue, 21 Jul 2026 16:59:17.
Machine details — cpu-x86 julia julia > versioninfo ()
Julia Version 1.12 . 2
Commit ca9b6662be4 ( 2025 - 11 - 20 16 : 25 UTC)
Build Info :
Official https :// julialang . org release
Platform Info :
OS : Linux (x86_64 - linux - gnu)
CPU : 128 × AMD EPYC 9554 64 - Core Processor
WORD_SIZE : 64
LLVM : libLLVM - 18.1 . 7 (ORCJIT, znver4)
GC : Built with stock GC
Threads : 1 default, 1 interactive, 1 GC (on 128 virtual cores)
Environment :
LD_LIBRARY_PATH = / usr /local/ lib :/ usr /local/ lib : Models, default setups — cpu-x86 Model T L Physics Δt SYPD Memory BarotropicModel 31 1 false 1800 10654 780.69 KB ShallowWaterModel 31 1 false 2400 19394 962.97 KB PrimitiveDryModel 31 8 true 2400 1467 5.27 MB PrimitiveWetModel 31 8 true 2400 819 6.22 MB
Shallow water model, resolution — cpu-x86 Model T L Rings Δt SYPD Memory ShallowWaterModel 31 1 48 2400 19308 962.97 KB ShallowWaterModel 42 1 64 1800 8616 1.68 MB ShallowWaterModel 63 1 96 1200 2297 3.77 MB ShallowWaterModel 85 1 128 900 960 6.84 MB ShallowWaterModel 127 1 192 600 231 16.12 MB ShallowWaterModel 170 1 256 450 86 30.33 MB ShallowWaterModel 255 1 384 300 18 76.02 MB
Primitive wet model, resolution — cpu-x86 Model T L Rings Transform Δt SYPD Memory PrimitiveWetModel 31 8 48 default 2400 856 6.22 MB PrimitiveWetModel 42 8 64 default 1800 370 10.51 MB PrimitiveWetModel 63 8 96 default 1200 107 22.34 MB PrimitiveWetModel 85 8 128 default 900 39 38.87 MB PrimitiveWetModel 127 8 192 default 600 11 85.50 MB PrimitiveWetModel 170 8 256 default 450 3.9 151.57 MB PrimitiveWetModel 255 8 384 default 300 1.0 343.69 MB PrimitiveWetModel 85 16 128 default 900 49 67.81 MB PrimitiveWetModel 127 16 192 default 600 15 148.26 MB PrimitiveWetModel 170 16 256 default 450 5.6 261.34 MB PrimitiveWetModel 255 16 384 default 300 1.3 586.14 MB PrimitiveWetModel 85 24 128 default 900 38 96.80 MB PrimitiveWetModel 127 24 192 default 600 11 211.09 MB PrimitiveWetModel 170 24 256 default 450 4.5 371.20 MB PrimitiveWetModel 255 24 384 default 300 1.0 828.73 MB PrimitiveWetModel 31 8 48 matrix 2400 107 48.11 MB PrimitiveWetModel 42 8 64 matrix 1800 28 133.88 MB PrimitiveWetModel 63 8 96 matrix 1200 3.7 582.80 MB PrimitiveWetModel 85 8 128 matrix 900 0.9 1.75 GB PrimitiveWetModel 127 8 192 matrix 600 0.1 8.19 GB PrimitiveWetModel 85 16 128 matrix 900 1.1 1.78 GB PrimitiveWetModel 127 16 192 matrix 600 0.2 8.24 GB PrimitiveWetModel 85 24 128 matrix 900 0.9 1.80 GB PrimitiveWetModel 127 24 192 matrix 600 0.1 8.30 GB
Primitive Equation, Float32 vs Float64 — cpu-x86 Model NF T L Δt SYPD Memory PrimitiveWetModel Float32 31 8 2400 850 6.22 MB PrimitiveWetModel Float64 31 8 2400 767 11.35 MB
Grids — cpu-x86 Model T L Grid Rings Δt SYPD Memory PrimitiveWetModel 63 8 FullGaussianGrid 96 1200 71 32.40 MB PrimitiveWetModel 63 8 FullClenshawGrid 95 1200 74 32.13 MB PrimitiveWetModel 63 8 OctahedralGaussianGrid 96 1200 100 22.34 MB PrimitiveWetModel 63 8 OctahedralClenshawGrid 95 1200 100 22.06 MB PrimitiveWetModel 63 8 HEALPixGrid 95 1200 163 16.42 MB PrimitiveWetModel 63 8 OctaHEALPixGrid 95 1200 119 19.89 MB
Number of vertical layers — cpu-x86 Model T L Δt SYPD Memory PrimitiveWetModel 31 4 2400 1412 3.87 MB PrimitiveWetModel 31 8 2400 851 6.22 MB PrimitiveWetModel 31 12 2400 603 8.58 MB PrimitiveWetModel 31 16 2400 467 10.94 MB
PrimitiveDryModel: Physics or dynamics only — cpu-x86 Model T L Dynamics Physics Δt SYPD Memory PrimitiveDryModel 31 8 true true 2400 1456 5.27 MB PrimitiveDryModel 31 8 true false 2400 2293 5.27 MB PrimitiveDryModel 31 8 false true 2400 1609 5.27 MB
PrimitiveWetModel: Physics or dynamics only — cpu-x86 Model T L Dynamics Physics Δt SYPD Memory PrimitiveWetModel 31 8 true true 2400 852 6.22 MB PrimitiveWetModel 31 8 true false 2400 1773 6.22 MB PrimitiveWetModel 31 8 false true 2400 951 6.22 MB
Individual dynamics functions — cpu-x86 PrimitiveWetModel | Float32 | T31 L8 | OctahedralGaussianGrid | 48 Rings — cpu-x86 Function Time Memory Allocations pressure_gradient_flux! 70.633 μs 31.98 KiB 200 linear_virtual_temperature! 3.278 μs 0 bytes 0 geopotential! 10.260 μs 384 bytes 6 vertical_integration! 13.680 μs 0 bytes 0 surface_pressure_tendency! 18.721 μs 15.66 KiB 96 vertical_velocity! 59.542 μs 0 bytes 0 linear_pressure_gradient! 3.179 μs 0 bytes 0 vertical_advection! 160.256 μs 2.44 KiB 32 vordiv_tendencies! 412.104 μs 218.48 KiB 284 temperature_tendency! 532.669 μs 324.75 KiB 401 humidity_tendency! 507.748 μs 324.08 KiB 396 bernoulli_potential! 174.696 μs 107.62 KiB 129
Architecture: gpu-nvidia Created for SpeedyWeather.jl v0.21.1+DEV on Sat, 08 Aug 2026 12:57:35.
Machine details — gpu-nvidia julia julia > versioninfo ()
Julia Version 1.12 . 2
Commit ca9b6662be4 ( 2025 - 11 - 20 16 : 25 UTC)
Build Info :
Official https :// julialang . org release
Platform Info :
OS : Linux (x86_64 - linux - gnu)
CPU : 128 × AMD EPYC 9554 64 - Core Processor
WORD_SIZE : 64
LLVM : libLLVM - 18.1 . 7 (ORCJIT, znver4)
GC : Built with stock GC
Threads : 1 default, 1 interactive, 1 GC (on 128 virtual cores)
Environment :
LD_LIBRARY_PATH = / usr /local/ lib :/ usr /local/ lib : julia julia > CUDA . versioninfo ()
CUDA toolchain :
- runtime 13.3 . 0 , artifact installation
- driver 580.126 . 9 for 13.3
- compiler 13.3 . 33 , artifact installation
CUDA libraries :
- cuBLAS : 13.6 . 0
- cuSPARSE : 12.8 . 2
- cuSOLVER : 12.2 . 6
- cuFFT : 12.3 . 0
- cuRAND : 10.4 . 3
- CUPTI : 2026.2 . 1 (API 13.3 . 1 )
- NVML : 13.0 . 0 + 580.126 . 9
Julia packages :
- CUDACore : 6.2 . 1
- GPUArrays : 11.5 . 9
- GPUCompiler : 1.23 . 0
- KernelAbstractions : 0.9 . 42
- CUDA_Driver_jll : 13.3 . 0 + 1
- CUDA_Compiler_jll : 0.4 . 4 + 1
- CUDA_Runtime_jll : 0.23 . 0 + 1
- NVPTX_LLVM_Backend_jll : 22.1 . 7 + 1
Toolchain :
- Julia : 1.12 . 2
- LLVM : 18.1 . 7
1 device :
0 : NVIDIA H100 80 GB HBM3 (sm_90, 65.790 GiB / 79.647 GiB available)
compiles to sm_90a / PTX 9.3 (LLVM : sm_90a / PTX 9.0 ) Models, default setups — gpu-nvidia Model T L Physics Δt SYPD Memory BarotropicModel 31 1 false 1800 2124 489.57 KB ShallowWaterModel 31 1 false 2400 1838 493.08 KB PrimitiveDryModel 31 8 true 2400 363 661.18 KB PrimitiveWetModel 31 8 true 2400 5763 666.31 KB
Shallow water model, resolution — gpu-nvidia Model T L Rings Δt SYPD Memory ShallowWaterModel 31 1 48 2400 1737 493.08 KB ShallowWaterModel 42 1 64 1800 968 825.11 KB ShallowWaterModel 63 1 96 1200 432 1.75 MB ShallowWaterModel 85 1 128 900 247 3.03 MB ShallowWaterModel 127 1 192 600 107 6.65 MB ShallowWaterModel 170 1 256 450 60 11.68 MB ShallowWaterModel 255 1 384 300 26 25.96 MB
Primitive wet model, resolution — gpu-nvidia Model T L Rings Transform Δt SYPD Memory PrimitiveWetModel 31 8 48 default 2400 5257 666.31 KB PrimitiveWetModel 42 8 64 default 1800 3132 1.11 MB PrimitiveWetModel 63 8 96 default 1200 1260 2.34 MB PrimitiveWetModel 85 8 128 default 900 650 4.04 MB PrimitiveWetModel 127 8 192 default 600 264 8.83 MB PrimitiveWetModel 170 8 256 default 450 138 15.50 MB PrimitiveWetModel 255 8 384 default 300 52 34.43 MB PrimitiveWetModel 85 16 128 default 900 563 5.08 MB PrimitiveWetModel 127 16 192 default 600 243 11.19 MB PrimitiveWetModel 170 16 256 default 450 122 19.69 MB PrimitiveWetModel 255 16 384 default 300 45 43.86 MB PrimitiveWetModel 85 24 128 default 900 540 6.13 MB PrimitiveWetModel 127 24 192 default 600 220 13.55 MB PrimitiveWetModel 170 24 256 default 450 110 23.88 MB PrimitiveWetModel 255 24 384 default 300 39 53.30 MB PrimitiveWetModel 31 8 48 matrix 2400 5667 581.37 KB PrimitiveWetModel 42 8 64 matrix 1800 3643 994.17 KB PrimitiveWetModel 63 8 96 matrix 1200 951 2.17 MB PrimitiveWetModel 85 8 128 matrix 900 262 3.81 MB PrimitiveWetModel 127 8 192 matrix 600 37 8.50 MB PrimitiveWetModel 85 16 128 matrix 900 135 4.86 MB PrimitiveWetModel 127 16 192 matrix 600 15 10.86 MB PrimitiveWetModel 85 24 128 matrix 900 75 5.91 MB PrimitiveWetModel 127 24 192 matrix 600 9.5 13.22 MB
Primitive Equation, Float32 vs Float64 — gpu-nvidia Model NF T L Δt SYPD Memory PrimitiveWetModel Float32 31 8 2400 5349 666.31 KB PrimitiveWetModel Float64 31 8 2400 5179 666.92 KB
Grids — gpu-nvidia Model T L Grid Rings Δt SYPD Memory PrimitiveWetModel 63 8 FullGaussianGrid 96 1200 1513 2.43 MB PrimitiveWetModel 63 8 FullClenshawGrid 95 1200 1524 2.40 MB PrimitiveWetModel 63 8 OctahedralGaussianGrid 96 1200 1477 2.34 MB PrimitiveWetModel 63 8 OctahedralClenshawGrid 95 1200 1485 2.31 MB PrimitiveWetModel 63 8 HEALPixGrid 95 1200 1703 2.27 MB PrimitiveWetModel 63 8 OctaHEALPixGrid 95 1200 1521 2.30 MB
Number of vertical layers — gpu-nvidia Model T L Δt SYPD Memory PrimitiveWetModel 31 4 2400 5969 592.58 KB PrimitiveWetModel 31 8 2400 5732 666.31 KB PrimitiveWetModel 31 12 2400 5434 740.04 KB PrimitiveWetModel 31 16 2400 5333 813.76 KB
PrimitiveDryModel: Physics or dynamics only — gpu-nvidia Model T L Dynamics Physics Δt SYPD Memory PrimitiveDryModel 31 8 true true 2400 340 661.18 KB PrimitiveDryModel 31 8 true false 2400 347 661.18 KB PrimitiveDryModel 31 8 false true 2400 365 661.18 KB
PrimitiveWetModel: Physics or dynamics only — gpu-nvidia Model T L Dynamics Physics Δt SYPD Memory PrimitiveWetModel 31 8 true true 2400 5971 666.31 KB PrimitiveWetModel 31 8 true false 2400 6544 666.31 KB PrimitiveWetModel 31 8 false true 2400 8685 666.31 KB
Individual dynamics functions — gpu-nvidia PrimitiveWetModel | Float32 | T31 L8 | OctahedralGaussianGrid | 48 Rings — gpu-nvidia Function Time Memory Allocations pressure_gradient_flux! 222.970 μs 14.45 KiB 333 linear_virtual_temperature! 12.700 μs 2.77 KiB 52 geopotential! 19.070 μs 3.73 KiB 101 vertical_integration! 27.140 μs 7.17 KiB 141 surface_pressure_tendency! N/A N/A N/A vertical_velocity! 24.460 μs 8.45 KiB 191 linear_pressure_gradient! 12.540 μs 2.34 KiB 50 vertical_advection! 23.980 μs 9.09 KiB 142 vordiv_tendencies! N/A N/A N/A temperature_tendency! N/A N/A N/A humidity_tendency! N/A N/A N/A bernoulli_potential! N/A N/A N/A