Skip to content

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.

TLTransformcpu-armcpu-x86gpu-nvidia
328LT+FFT14008565257
328MT7571075667
438LT+FFT5643703132
438MT272283643
648LT+FFT1471071260
648MT483.7951
868LT+FFT5739650
868MT130.9262
8616LT+FFT5149563
8616MT191.1135
8624LT+FFT4838540
8624MT110.975
1288LT+FFT1511264
1288MT1.50.137
12816LT+FFT2115243
12816MT2.10.215
12824LT+FFT1511220
12824MT1.70.19.5
1718LT+FFT5.53.9138
17116LT+FFT7.75.6122
17124LT+FFT4.34.5110
2568LT+FFT1.41.052
25616LT+FFT1.91.345
25624LT+FFT1.51.039

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

ModelTLPhysicsΔtSYPDMemory
BarotropicModel311false180046826780.58 KB
ShallowWaterModel311false240035514962.86 KB
PrimitiveDryModel318true240022225.27 MB
PrimitiveWetModel318true240014356.22 MB

Shallow water model, resolution — cpu-arm

ModelTLRingsΔtSYPDMemory
ShallowWaterModel31148240018732962.86 KB
ShallowWaterModel421641800151141.68 MB
ShallowWaterModel63196120034423.77 MB
ShallowWaterModel85112890016586.84 MB
ShallowWaterModel127119260039216.12 MB
ShallowWaterModel170125645013330.33 MB
ShallowWaterModel25513843002876.02 MB

Primitive wet model, resolution — cpu-arm

ModelTLRingsTransformΔtSYPDMemory
PrimitiveWetModel31848default240014006.22 MB
PrimitiveWetModel42864default180056410.51 MB
PrimitiveWetModel63896default120014722.34 MB
PrimitiveWetModel858128default9005738.87 MB
PrimitiveWetModel1278192default6001585.50 MB
PrimitiveWetModel1708256default4505.5151.57 MB
PrimitiveWetModel2558384default3001.4343.69 MB
PrimitiveWetModel8516128default9005167.81 MB
PrimitiveWetModel12716192default60021148.26 MB
PrimitiveWetModel17016256default4507.7261.34 MB
PrimitiveWetModel25516384default3001.9586.14 MB
PrimitiveWetModel8524128default9004896.80 MB
PrimitiveWetModel12724192default60015211.09 MB
PrimitiveWetModel17024256default4504.3371.20 MB
PrimitiveWetModel25524384default3001.5828.73 MB
PrimitiveWetModel31848matrix240075748.11 MB
PrimitiveWetModel42864matrix1800272133.88 MB
PrimitiveWetModel63896matrix120048582.80 MB
PrimitiveWetModel858128matrix900131.75 GB
PrimitiveWetModel1278192matrix6001.58.19 GB
PrimitiveWetModel8516128matrix900191.78 GB
PrimitiveWetModel12716192matrix6002.18.24 GB
PrimitiveWetModel8524128matrix900111.80 GB
PrimitiveWetModel12724192matrix6001.78.30 GB

Primitive Equation, Float32 vs Float64 — cpu-arm

ModelNFTLΔtSYPDMemory
PrimitiveWetModelFloat32318240012276.22 MB
PrimitiveWetModelFloat643182400123211.35 MB

Grids — cpu-arm

ModelTLGridRingsΔtSYPDMemory
PrimitiveWetModel638FullGaussianGrid9612008032.40 MB
PrimitiveWetModel638FullClenshawGrid95120010932.13 MB
PrimitiveWetModel638OctahedralGaussianGrid96120015822.34 MB
PrimitiveWetModel638OctahedralClenshawGrid95120014622.06 MB
PrimitiveWetModel638HEALPixGrid95120021916.42 MB
PrimitiveWetModel638OctaHEALPixGrid95120017119.89 MB

Number of vertical layers — cpu-arm

ModelTLΔtSYPDMemory
PrimitiveWetModel314240023243.87 MB
PrimitiveWetModel318240014046.22 MB
PrimitiveWetModel3112240010038.58 MB
PrimitiveWetModel3116240077110.94 MB

PrimitiveDryModel: Physics or dynamics only — cpu-arm

ModelTLDynamicsPhysicsΔtSYPDMemory
PrimitiveDryModel318truetrue240023685.27 MB
PrimitiveDryModel318truefalse240040465.27 MB
PrimitiveDryModel318falsetrue240026145.27 MB

PrimitiveWetModel: Physics or dynamics only — cpu-arm

ModelTLDynamicsPhysicsΔtSYPDMemory
PrimitiveWetModel318truetrue240014236.22 MB
PrimitiveWetModel318truefalse240030556.22 MB
PrimitiveWetModel318falsetrue240015586.22 MB

Individual dynamics functions — cpu-arm

PrimitiveWetModel | Float32 | T31 L8 | OctahedralGaussianGrid | 48 Rings — cpu-arm

FunctionTimeMemoryAllocations
pressure_gradient_flux!39.666 μs31.98 KiB200
linear_virtual_temperature!2.056 μs0 bytes0
geopotential!7.562 μs384 bytes6
vertical_integration!14.500 μs0 bytes0
surface_pressure_tendency!11.875 μs15.66 KiB96
vertical_velocity!23.333 μs0 bytes0
linear_pressure_gradient!2.065 μs0 bytes0
vertical_advection!112.500 μs2.44 KiB32
vordiv_tendencies!224.375 μs231.83 KiB284
temperature_tendency!291.583 μs344.77 KiB401
humidity_tendency!279.375 μs344.09 KiB396
bernoulli_potential!93.667 μs114.30 KiB129

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

ModelTLPhysicsΔtSYPDMemory
BarotropicModel311false180010654780.69 KB
ShallowWaterModel311false240019394962.97 KB
PrimitiveDryModel318true240014675.27 MB
PrimitiveWetModel318true24008196.22 MB

Shallow water model, resolution — cpu-x86

ModelTLRingsΔtSYPDMemory
ShallowWaterModel31148240019308962.97 KB
ShallowWaterModel42164180086161.68 MB
ShallowWaterModel63196120022973.77 MB
ShallowWaterModel8511289009606.84 MB
ShallowWaterModel127119260023116.12 MB
ShallowWaterModel17012564508630.33 MB
ShallowWaterModel25513843001876.02 MB

Primitive wet model, resolution — cpu-x86

ModelTLRingsTransformΔtSYPDMemory
PrimitiveWetModel31848default24008566.22 MB
PrimitiveWetModel42864default180037010.51 MB
PrimitiveWetModel63896default120010722.34 MB
PrimitiveWetModel858128default9003938.87 MB
PrimitiveWetModel1278192default6001185.50 MB
PrimitiveWetModel1708256default4503.9151.57 MB
PrimitiveWetModel2558384default3001.0343.69 MB
PrimitiveWetModel8516128default9004967.81 MB
PrimitiveWetModel12716192default60015148.26 MB
PrimitiveWetModel17016256default4505.6261.34 MB
PrimitiveWetModel25516384default3001.3586.14 MB
PrimitiveWetModel8524128default9003896.80 MB
PrimitiveWetModel12724192default60011211.09 MB
PrimitiveWetModel17024256default4504.5371.20 MB
PrimitiveWetModel25524384default3001.0828.73 MB
PrimitiveWetModel31848matrix240010748.11 MB
PrimitiveWetModel42864matrix180028133.88 MB
PrimitiveWetModel63896matrix12003.7582.80 MB
PrimitiveWetModel858128matrix9000.91.75 GB
PrimitiveWetModel1278192matrix6000.18.19 GB
PrimitiveWetModel8516128matrix9001.11.78 GB
PrimitiveWetModel12716192matrix6000.28.24 GB
PrimitiveWetModel8524128matrix9000.91.80 GB
PrimitiveWetModel12724192matrix6000.18.30 GB

Primitive Equation, Float32 vs Float64 — cpu-x86

ModelNFTLΔtSYPDMemory
PrimitiveWetModelFloat3231824008506.22 MB
PrimitiveWetModelFloat64318240076711.35 MB

Grids — cpu-x86

ModelTLGridRingsΔtSYPDMemory
PrimitiveWetModel638FullGaussianGrid9612007132.40 MB
PrimitiveWetModel638FullClenshawGrid9512007432.13 MB
PrimitiveWetModel638OctahedralGaussianGrid96120010022.34 MB
PrimitiveWetModel638OctahedralClenshawGrid95120010022.06 MB
PrimitiveWetModel638HEALPixGrid95120016316.42 MB
PrimitiveWetModel638OctaHEALPixGrid95120011919.89 MB

Number of vertical layers — cpu-x86

ModelTLΔtSYPDMemory
PrimitiveWetModel314240014123.87 MB
PrimitiveWetModel31824008516.22 MB
PrimitiveWetModel311224006038.58 MB
PrimitiveWetModel3116240046710.94 MB

PrimitiveDryModel: Physics or dynamics only — cpu-x86

ModelTLDynamicsPhysicsΔtSYPDMemory
PrimitiveDryModel318truetrue240014565.27 MB
PrimitiveDryModel318truefalse240022935.27 MB
PrimitiveDryModel318falsetrue240016095.27 MB

PrimitiveWetModel: Physics or dynamics only — cpu-x86

ModelTLDynamicsPhysicsΔtSYPDMemory
PrimitiveWetModel318truetrue24008526.22 MB
PrimitiveWetModel318truefalse240017736.22 MB
PrimitiveWetModel318falsetrue24009516.22 MB

Individual dynamics functions — cpu-x86

PrimitiveWetModel | Float32 | T31 L8 | OctahedralGaussianGrid | 48 Rings — cpu-x86

FunctionTimeMemoryAllocations
pressure_gradient_flux!70.633 μs31.98 KiB200
linear_virtual_temperature!3.278 μs0 bytes0
geopotential!10.260 μs384 bytes6
vertical_integration!13.680 μs0 bytes0
surface_pressure_tendency!18.721 μs15.66 KiB96
vertical_velocity!59.542 μs0 bytes0
linear_pressure_gradient!3.179 μs0 bytes0
vertical_advection!160.256 μs2.44 KiB32
vordiv_tendencies!412.104 μs218.48 KiB284
temperature_tendency!532.669 μs324.75 KiB401
humidity_tendency!507.748 μs324.08 KiB396
bernoulli_potential!174.696 μs107.62 KiB129

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 80GB 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

ModelTLPhysicsΔtSYPDMemory
BarotropicModel311false18002124489.57 KB
ShallowWaterModel311false24001838493.08 KB
PrimitiveDryModel318true2400363661.18 KB
PrimitiveWetModel318true24005763666.31 KB

Shallow water model, resolution — gpu-nvidia

ModelTLRingsΔtSYPDMemory
ShallowWaterModel3114824001737493.08 KB
ShallowWaterModel421641800968825.11 KB
ShallowWaterModel6319612004321.75 MB
ShallowWaterModel8511289002473.03 MB
ShallowWaterModel12711926001076.65 MB
ShallowWaterModel17012564506011.68 MB
ShallowWaterModel25513843002625.96 MB

Primitive wet model, resolution — gpu-nvidia

ModelTLRingsTransformΔtSYPDMemory
PrimitiveWetModel31848default24005257666.31 KB
PrimitiveWetModel42864default180031321.11 MB
PrimitiveWetModel63896default120012602.34 MB
PrimitiveWetModel858128default9006504.04 MB
PrimitiveWetModel1278192default6002648.83 MB
PrimitiveWetModel1708256default45013815.50 MB
PrimitiveWetModel2558384default3005234.43 MB
PrimitiveWetModel8516128default9005635.08 MB
PrimitiveWetModel12716192default60024311.19 MB
PrimitiveWetModel17016256default45012219.69 MB
PrimitiveWetModel25516384default3004543.86 MB
PrimitiveWetModel8524128default9005406.13 MB
PrimitiveWetModel12724192default60022013.55 MB
PrimitiveWetModel17024256default45011023.88 MB
PrimitiveWetModel25524384default3003953.30 MB
PrimitiveWetModel31848matrix24005667581.37 KB
PrimitiveWetModel42864matrix18003643994.17 KB
PrimitiveWetModel63896matrix12009512.17 MB
PrimitiveWetModel858128matrix9002623.81 MB
PrimitiveWetModel1278192matrix600378.50 MB
PrimitiveWetModel8516128matrix9001354.86 MB
PrimitiveWetModel12716192matrix6001510.86 MB
PrimitiveWetModel8524128matrix900755.91 MB
PrimitiveWetModel12724192matrix6009.513.22 MB

Primitive Equation, Float32 vs Float64 — gpu-nvidia

ModelNFTLΔtSYPDMemory
PrimitiveWetModelFloat3231824005349666.31 KB
PrimitiveWetModelFloat6431824005179666.92 KB

Grids — gpu-nvidia

ModelTLGridRingsΔtSYPDMemory
PrimitiveWetModel638FullGaussianGrid96120015132.43 MB
PrimitiveWetModel638FullClenshawGrid95120015242.40 MB
PrimitiveWetModel638OctahedralGaussianGrid96120014772.34 MB
PrimitiveWetModel638OctahedralClenshawGrid95120014852.31 MB
PrimitiveWetModel638HEALPixGrid95120017032.27 MB
PrimitiveWetModel638OctaHEALPixGrid95120015212.30 MB

Number of vertical layers — gpu-nvidia

ModelTLΔtSYPDMemory
PrimitiveWetModel31424005969592.58 KB
PrimitiveWetModel31824005732666.31 KB
PrimitiveWetModel311224005434740.04 KB
PrimitiveWetModel311624005333813.76 KB

PrimitiveDryModel: Physics or dynamics only — gpu-nvidia

ModelTLDynamicsPhysicsΔtSYPDMemory
PrimitiveDryModel318truetrue2400340661.18 KB
PrimitiveDryModel318truefalse2400347661.18 KB
PrimitiveDryModel318falsetrue2400365661.18 KB

PrimitiveWetModel: Physics or dynamics only — gpu-nvidia

ModelTLDynamicsPhysicsΔtSYPDMemory
PrimitiveWetModel318truetrue24005971666.31 KB
PrimitiveWetModel318truefalse24006544666.31 KB
PrimitiveWetModel318falsetrue24008685666.31 KB

Individual dynamics functions — gpu-nvidia

PrimitiveWetModel | Float32 | T31 L8 | OctahedralGaussianGrid | 48 Rings — gpu-nvidia

FunctionTimeMemoryAllocations
pressure_gradient_flux!222.970 μs14.45 KiB333
linear_virtual_temperature!12.700 μs2.77 KiB52
geopotential!19.070 μs3.73 KiB101
vertical_integration!27.140 μs7.17 KiB141
surface_pressure_tendency!N/AN/AN/A
vertical_velocity!24.460 μs8.45 KiB191
linear_pressure_gradient!12.540 μs2.34 KiB50
vertical_advection!23.980 μs9.09 KiB142
vordiv_tendencies!N/AN/AN/A
temperature_tendency!N/AN/AN/A
humidity_tendency!N/AN/AN/A
bernoulli_potential!N/AN/AN/A