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+FFT14008565879
328MT7571075730
438LT+FFT5643703779
438MT272283809
648LT+FFT1471071188
648MT483.71186
868LT+FFT5739659
868MT130.9305
8616LT+FFT5149566
8616MT191.1137
8624LT+FFT4838532
8624MT110.978
1288LT+FFT1511264
1288MT1.50.132
12816LT+FFT2115236
12816MT2.10.214
12824LT+FFT1511219
12824MT1.70.19.2
1718LT+FFT5.53.9138
17116LT+FFT7.75.6120
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.1+DEV on Fri, 28 Aug 2026 13:51:09.

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.2
- GPUArrays: 11.5.13
- 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, 64.265 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
BarotropicModel321false18007932429.08 KB
ShallowWaterModel321false24008926432.58 KB
PrimitiveDryModel328true24006909576.66 KB
PrimitiveWetModel328true24005888581.80 KB

Shallow water model, resolution — gpu-nvidia ​

ModeltruncationLRingsΔtSYPDMemory
ShallowWaterModel3214824008931432.58 KB
ShallowWaterModel4316418002948745.16 KB
ShallowWaterModel6419612009421.63 MB
ShallowWaterModel8611289006953.07 MB
ShallowWaterModel12811926002926.70 MB
ShallowWaterModel171125645012611.74 MB
ShallowWaterModel25613843005026.06 MB

Primitive wet model, resolution — gpu-nvidia ​

ModeltruncationLRingsTransformΔtSYPDMemory
PrimitiveWetModel32848default24005879581.80 KB
PrimitiveWetModel43864default18003779994.73 KB
PrimitiveWetModel64896default120011882.17 MB
PrimitiveWetModel868128default9006594.07 MB
PrimitiveWetModel1288192default6002648.88 MB
PrimitiveWetModel1718256default45013815.56 MB
PrimitiveWetModel2568384default3005334.53 MB
PrimitiveWetModel8616128default9005665.12 MB
PrimitiveWetModel12816192default60023611.24 MB
PrimitiveWetModel17116256default45012019.76 MB
PrimitiveWetModel25616384default3004443.96 MB
PrimitiveWetModel8624128default9005326.17 MB
PrimitiveWetModel12824192default60021913.60 MB
PrimitiveWetModel17124256default45011023.95 MB
PrimitiveWetModel25624384default3003853.40 MB
PrimitiveWetModel32848matrix24005730581.80 KB
PrimitiveWetModel43864matrix18003809994.73 KB
PrimitiveWetModel64896matrix120011862.17 MB
PrimitiveWetModel868128matrix9003053.81 MB
PrimitiveWetModel1288192matrix600328.50 MB
PrimitiveWetModel8616128matrix9001374.86 MB
PrimitiveWetModel12816192matrix6001410.86 MB
PrimitiveWetModel8624128matrix900785.91 MB
PrimitiveWetModel12824192matrix6009.213.22 MB

Primitive Equation, Float32 vs Float64 — gpu-nvidia ​

ModelNFtruncationLΔtSYPDMemory
PrimitiveWetModelFloat3232824005781581.80 KB
PrimitiveWetModelFloat6432824005091582.38 KB

Grids — gpu-nvidia ​

ModeltruncationLGridRingsΔtSYPDMemory
PrimitiveWetModel648FullGaussianGrid9612007662.26 MB
PrimitiveWetModel648FullClenshawGrid12712004813.95 MB
PrimitiveWetModel648OctahedralGaussianGrid96120011912.17 MB
PrimitiveWetModel648OctahedralClenshawGrid12712007663.78 MB
PrimitiveWetModel648HEALPixGrid127120010883.71 MB
PrimitiveWetModel648OctaHEALPixGrid12712008723.76 MB

Number of vertical layers — gpu-nvidia ​

ModeltruncationLΔtSYPDMemory
PrimitiveWetModel32424005931508.07 KB
PrimitiveWetModel32824006154581.80 KB
PrimitiveWetModel321224005900655.52 KB
PrimitiveWetModel321624006330729.25 KB

PrimitiveDryModel: Physics or dynamics only — gpu-nvidia ​

ModeltruncationLDynamicsPhysicsΔtSYPDMemory
PrimitiveDryModel328truetrue24006860576.66 KB
PrimitiveDryModel328truefalse24008572576.66 KB
PrimitiveDryModel328falsetrue240011334576.66 KB

PrimitiveWetModel: Physics or dynamics only — gpu-nvidia ​

ModeltruncationLDynamicsPhysicsΔtSYPDMemory
PrimitiveWetModel328truetrue24006153581.80 KB
PrimitiveWetModel328truefalse24008112581.80 KB
PrimitiveWetModel328falsetrue24009668581.80 KB

Individual dynamics functions — gpu-nvidia ​

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

FunctionTimeMemoryAllocations
pressure_gradient_flux!79.750 μs14.42 KiB348
linear_virtual_temperature!12.640 μs2.77 KiB52
geopotential!18.800 μs3.73 KiB101
vertical_integration!27.230 μs7.17 KiB141
surface_pressure_tendency!N/AN/AN/A
vertical_velocity!24.330 μs8.45 KiB191
linear_pressure_gradient!12.570 μs2.34 KiB50
vertical_advection!24.320 μ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