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+FFT14008565276
328MT7571075569
438LT+FFT5643703115
438MT272283724
648LT+FFT1471071243
648MT483.71184
868LT+FFT5739657
868MT130.9305
8616LT+FFT5149546
8616MT191.1138
8624LT+FFT4838536
8624MT110.977
1288LT+FFT1511265
1288MT1.50.133
12816LT+FFT2115241
12816MT2.10.214
12824LT+FFT1511218
12824MT1.70.19.3
1718LT+FFT5.53.9138
17116LT+FFT7.75.6123
17124LT+FFT4.34.5110
2568LT+FFT1.41.053
25616LT+FFT1.91.344
25624LT+FFT1.51.038

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.22.0+DEV on Tue, 18 Aug 2026 14:54:44.

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.11
- GPUCompiler: 1.23.0
- KernelAbstractions: 0.9.42
- CUDA_Driver_jll: 13.3.1+0
- 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.839 GiB / 79.647 GiB available)
     compiles to sm_90a / PTX 9.3 (LLVM: sm_90a / PTX 9.0)

Models, default setups — gpu-nvidia

ModeltruncationLPhysicsΔtSYPDMemory
BarotropicModel321false18002113490.02 KB
ShallowWaterModel321false24001671493.52 KB
PrimitiveDryModel328true2400355661.63 KB
PrimitiveWetModel328true24005708666.76 KB

Shallow water model, resolution — gpu-nvidia

ModeltruncationLRingsΔtSYPDMemory
ShallowWaterModel3214824001727493.52 KB
ShallowWaterModel431641800960825.68 KB
ShallowWaterModel6419612004251.75 MB
ShallowWaterModel8611289002403.03 MB
ShallowWaterModel12811926001076.65 MB
ShallowWaterModel17112564505911.68 MB
ShallowWaterModel25613843002625.96 MB

Primitive wet model, resolution — gpu-nvidia

ModeltruncationLRingsTransformΔtSYPDMemory
PrimitiveWetModel32848default24005276666.76 KB
PrimitiveWetModel43864default180031151.11 MB
PrimitiveWetModel64896default120012432.34 MB
PrimitiveWetModel868128default9006574.04 MB
PrimitiveWetModel1288192default6002658.83 MB
PrimitiveWetModel1718256default45013815.50 MB
PrimitiveWetModel2568384default3005334.43 MB
PrimitiveWetModel8616128default9005465.08 MB
PrimitiveWetModel12816192default60024111.19 MB
PrimitiveWetModel17116256default45012319.69 MB
PrimitiveWetModel25616384default3004443.87 MB
PrimitiveWetModel8624128default9005366.13 MB
PrimitiveWetModel12824192default60021813.55 MB
PrimitiveWetModel17124256default45011023.89 MB
PrimitiveWetModel25624384default3003853.31 MB
PrimitiveWetModel32848matrix24005569581.83 KB
PrimitiveWetModel43864matrix18003724994.76 KB
PrimitiveWetModel64896matrix120011842.17 MB
PrimitiveWetModel868128matrix9003053.81 MB
PrimitiveWetModel1288192matrix600338.50 MB
PrimitiveWetModel8616128matrix9001384.86 MB
PrimitiveWetModel12816192matrix6001410.86 MB
PrimitiveWetModel8624128matrix900775.91 MB
PrimitiveWetModel12824192matrix6009.313.22 MB

Primitive Equation, Float32 vs Float64 — gpu-nvidia

ModelNFtruncationLΔtSYPDMemory
PrimitiveWetModelFloat3232824005243666.76 KB
PrimitiveWetModelFloat6432824004757667.37 KB

Grids — gpu-nvidia

ModeltruncationLGridRingsΔtSYPDMemory
PrimitiveWetModel648FullGaussianGrid96120012882.43 MB
PrimitiveWetModel648FullClenshawGrid127120011354.17 MB
PrimitiveWetModel648OctahedralGaussianGrid96120012792.34 MB
PrimitiveWetModel648OctahedralClenshawGrid12712009114.01 MB
PrimitiveWetModel648HEALPixGrid127120011533.93 MB
PrimitiveWetModel648OctaHEALPixGrid12712009383.98 MB

Number of vertical layers — gpu-nvidia

ModeltruncationLΔtSYPDMemory
PrimitiveWetModel32424005476593.04 KB
PrimitiveWetModel32824005300666.76 KB
PrimitiveWetModel321224004935740.49 KB
PrimitiveWetModel321624004874814.22 KB

PrimitiveDryModel: Physics or dynamics only — gpu-nvidia

ModeltruncationLDynamicsPhysicsΔtSYPDMemory
PrimitiveDryModel328truetrue2400324661.63 KB
PrimitiveDryModel328truefalse2400330661.63 KB
PrimitiveDryModel328falsetrue2400350661.63 KB

PrimitiveWetModel: Physics or dynamics only — gpu-nvidia

ModeltruncationLDynamicsPhysicsΔtSYPDMemory
PrimitiveWetModel328truetrue24005431666.76 KB
PrimitiveWetModel328truefalse24005955666.76 KB
PrimitiveWetModel328falsetrue24007898666.76 KB

Individual dynamics functions — gpu-nvidia

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

FunctionTimeMemoryAllocations
pressure_gradient_flux!226.718 μs14.30 KiB323
linear_virtual_temperature!13.490 μs2.77 KiB52
geopotential!19.740 μs3.73 KiB101
vertical_integration!29.120 μs7.17 KiB141
surface_pressure_tendency!N/AN/AN/A
vertical_velocity!25.250 μs8.45 KiB191
linear_pressure_gradient!13.110 μs2.34 KiB50
vertical_advection!25.509 μ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