Benchmarking
The code and configurations are in our benchmarking repository. Run ./run_all.sh from the repository root, or read its README for setup and individual benchmarks.
Running the Benchmarks
The benchmarks are not part of the registered package. Fetch them into benchmark/ (git-ignored) from a cuNumeric.jl checkout:
git clone https://github.com/JuliaLegate/cuNumeric.jl && cd cuNumeric.jl
./scripts/get_benchmarks.sh # latest
./scripts/get_benchmarks.sh <git ref> # or a specific tag/commit, e.g. the one used for a paperThen run a quick smoke pass or the full suite:
cd benchmark
./run_smoke.sh # small sizes, results/smoke/
./run_all.sh # full sizes, results/paper/
./plot_all.shRe-running get_benchmarks.sh updates an existing checkout.
Package Integrations
The Krylov.jl CG and OrdinaryDiffEq.jl heat diffusion benchmarks compare cuNumeric.jl, CUDA.jl, and Dagger.jl arrays. The left panels vary the problem size on one GPU. The right panels show weak scaling, where cuNumeric.jl keeps solve and step times nearly constant as the GPU count grows.
Lower times are better.
cuNumeric Kernels and Applications
These benchmarks are written entirely with cuNumeric.jl and compared against cuPyNumeric and other Julia GPU frameworks. Lower times are better.
Weak Scaling
Time per step on 1–8 GPUs for GEMM, Monte Carlo, Gray-Scott, HPC-CG, and NAS EP, FT, and MG, compared with cuPyNumeric, CUDA.jl, Dagger.jl, and JACC.jl.
Broadcast Fusion
Gray-Scott and Monte Carlo with and without broadcast fusion, compared with cuPyNumeric and ImplicitGlobalGrid.jl.
Problem Size Sweep
Time per step on one GPU as the problem size grows, for Gray-Scott and Monte Carlo. At small sizes, fixed per-task runtime overhead dominates and hand-written CUDA.jl kernels are faster. The gap closes as the problem grows.
Code Complexity vs Performance
Cyclomatic complexity of each implementation against its performance relative to the fastest model on 8 GPUs. Small markers are individual benchmarks and large markers are per-model means. The ideal is the top-left corner.