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
318LT+FFT14008562225
318MT7571074150
428LT+FFT5643701310
428MT272282290
638LT+FFT147107562
638MT483.7941
858LT+FFT5739320
858MT130.9254
8516LT+FFT5149627
8516MT191.1398
8524LT+FFT4838686
8524MT110.9370
1278LT+FFT1511130
1278MT1.50.152
12716LT+FFT2115304
12716MT2.10.275
12724LT+FFT1511288
12724MT1.70.152
1708LT+FFT5.53.964
17016LT+FFT7.75.6129
17024LT+FFT4.34.5136
2558LT+FFT1.41.021
25516LT+FFT1.91.337
25524LT+FFT1.51.036

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 Tue, 21 Jul 2026 16:51:50.

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.8
- 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.768 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
BarotropicModel311false18002099489.24 KB
ShallowWaterModel311false24001712492.74 KB
PrimitiveDryModel318true2400322648.86 KB
PrimitiveWetModel318true24002321654.00 KB

Shallow water model, resolution — gpu-nvidia

ModelTLRingsΔtSYPDMemory
ShallowWaterModel3114824001660492.74 KB
ShallowWaterModel421641800920824.77 KB
ShallowWaterModel6319612004111.75 MB
ShallowWaterModel8511289002343.03 MB
ShallowWaterModel12711926001046.65 MB
ShallowWaterModel17012564505711.68 MB
ShallowWaterModel25513843002625.96 MB

Primitive wet model, resolution — gpu-nvidia

ModelTLRingsTransformΔtSYPDMemory
PrimitiveWetModel31848default24002225654.00 KB
PrimitiveWetModel42864default180013101.09 MB
PrimitiveWetModel63896default12005622.31 MB
PrimitiveWetModel858128default9003204.00 MB
PrimitiveWetModel1278192default6001308.78 MB
PrimitiveWetModel1708256default4506415.43 MB
PrimitiveWetModel2558384default3002134.33 MB
PrimitiveWetModel8516128default9006275.05 MB
PrimitiveWetModel12716192default60030411.14 MB
PrimitiveWetModel17016256default45012919.63 MB
PrimitiveWetModel25516384default3003743.77 MB
PrimitiveWetModel8524128default9006866.10 MB
PrimitiveWetModel12724192default60028813.50 MB
PrimitiveWetModel17024256default45013623.82 MB
PrimitiveWetModel25524384default3003653.21 MB
PrimitiveWetModel31848matrix24004150581.36 KB
PrimitiveWetModel42864matrix18002290994.16 KB
PrimitiveWetModel63896matrix12009412.17 MB
PrimitiveWetModel858128matrix9002543.81 MB
PrimitiveWetModel1278192matrix600528.50 MB
PrimitiveWetModel8516128matrix9003984.86 MB
PrimitiveWetModel12716192matrix6007510.86 MB
PrimitiveWetModel8524128matrix9003705.91 MB
PrimitiveWetModel12724192matrix6005213.22 MB

Primitive Equation, Float32 vs Float64 — gpu-nvidia

ModelNFTLΔtSYPDMemory
PrimitiveWetModelFloat3231824002181654.00 KB
PrimitiveWetModelFloat6431824001920654.61 KB

Grids — gpu-nvidia

ModelTLGridRingsΔtSYPDMemory
PrimitiveWetModel638FullGaussianGrid9612005802.40 MB
PrimitiveWetModel638FullClenshawGrid9512005742.38 MB
PrimitiveWetModel638OctahedralGaussianGrid9612005772.31 MB
PrimitiveWetModel638OctahedralClenshawGrid9512005382.29 MB
PrimitiveWetModel638HEALPixGrid9512006192.24 MB
PrimitiveWetModel638OctaHEALPixGrid9512005832.27 MB

Number of vertical layers — gpu-nvidia

ModelTLΔtSYPDMemory
PrimitiveWetModel31424002189580.27 KB
PrimitiveWetModel31824002173654.00 KB
PrimitiveWetModel311224002113727.73 KB
PrimitiveWetModel311624002227801.45 KB

PrimitiveDryModel: Physics or dynamics only — gpu-nvidia

ModelTLDynamicsPhysicsΔtSYPDMemory
PrimitiveDryModel318truetrue2400291648.86 KB
PrimitiveDryModel318truefalse2400296648.86 KB
PrimitiveDryModel318falsetrue2400332648.86 KB

PrimitiveWetModel: Physics or dynamics only — gpu-nvidia

ModelTLDynamicsPhysicsΔtSYPDMemory
PrimitiveWetModel318truetrue24002304654.00 KB
PrimitiveWetModel318truefalse24002505654.00 KB
PrimitiveWetModel318falsetrue24006314654.00 KB

Individual dynamics functions — gpu-nvidia

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

FunctionTimeMemoryAllocations
pressure_gradient_flux!1.398 ms182.48 KiB6127
linear_virtual_temperature!13.590 μs2.77 KiB52
geopotential!20.020 μs3.73 KiB101
vertical_integration!29.220 μs7.17 KiB141
surface_pressure_tendency!N/AN/AN/A
vertical_velocity!25.940 μs8.45 KiB191
linear_pressure_gradient!13.390 μs2.34 KiB50
vertical_advection!25.660 μ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