SCALE Benchmarks

Faster than HIP on average, and on par with nvcc.

Results from the Extended OpenDwarfs benchmark suite. Averages are geometric means across every workload. Each result is the median of five independent runs.

AMD

SCALE vs HIP

On an AMD Instinct MI355X, SCALE-compiled code averages 1.14× the performance of HIP at the largest problem size, and is faster on 12 of 16 workloads.

Extended OpenDwarfs: SCALE vs HIP

Performance vs HIP on AMD Instinct MI355X - ROCm 7.14 - SCALE 1.7.4 - October 2026

Every workload at every problem size

Every workload and size: SCALE vs HIP

Performance for each Extended OpenDwarfs workload, from the smallest problem size to the largest.

Workload
tiny
small
medium
large
bfs
1.20
1.15
1.03
1.03
cfd
1.25
1.35
1.04
1.02
crc
1.18
1.01
1.01
1.00
csr
0.97
0.91
0.97
1.06
cwt
1.90
1.15
1.25
1.18
dwt
0.69
2.72
2.31
2.34
fft
1.35
1.69
1.69
1.46
gem
1.07
1.16
0.90
0.98
hmm
1.17
1.14
1.10
1.06
kmeans
0.98
1.09
1.00
1.04
lud
1.42
1.46
1.28
1.14
nqueens
1.47
1.46
1.49
1.08
nw
1.42
1.43
1.33
1.30
srad
1.15
1.07
1.16
0.94
swat
1.09
0.98
1.00
0.99
tdm
1.25
1.21
1.13
1.11
≥ 2x1.04–2x~ parity< 0.98xDeeper shades = further from parity.

NVIDIA

SCALE vs nvcc

On an NVIDIA B300, SCALE-compiled code averages 1.01× the performance of nvcc at the largest problem size, and is faster on 7 of 15 workloads.

Extended OpenDwarfs: SCALE vs nvcc

Performance vs nvcc on NVIDIA B300 - CUDA 13.2 - SCALE 1.7.3 - September 2026

Every workload at every problem size

Every workload and size: SCALE vs nvcc

Performance for each Extended OpenDwarfs workload, from the smallest problem size to the largest.

Workload
tiny
small
medium
large
bfs
1.06
1.06
1.00
1.01
cfd
1.00
1.03
1.06
1.06
crc
0.99
0.99
0.99
0.99
csr
1.02
1.00
1.00
1.01
cwt
0.99
1.00
0.91
1.00
dwt
1.02
1.01
1.00
0.98
gem
1.16
1.00
0.96
0.96
hmm
1.02
1.10
1.03
1.02
kmeans
0.93
1.05
1.08
1.11
lud
0.99
0.99
0.99
1.00
nqueens
1.01
1.03
1.03
1.02
nw
1.01
0.87
1.00
1.06
srad
1.01
0.95
1.02
1.00
swat
1.00
1.00
1.00
1.00
tdm
0.86
0.99
0.97
0.90
≥ 2x1.04–2x~ parity< 0.98xDeeper shades = further from parity.

Methodology

How we measure

The same measurement process was used to evaluate every toolchain shown. Each benchmark was executed five independent times per configuration; where a benchmark's timed region is fast enough that per-run overhead would otherwise dominate, each run additionally repeats that region internally until at least two seconds have elapsed, with the reported time normalised by the internal repeat count. No separate warm-up run is discarded beforehand — the same internal repeat loop absorbs any first-iteration cold-start cost. The reported time is the full, end-to-end cost of one run, covering initialisation, host-side setup, data transfer, and kernel execution together, rather than kernel time in isolation. The statistic used is the median across the five independent runs.

Each benchmark supports four problem sizes — Tiny, Small, Medium, and Large — sized to place increasing pressure on the cache and memory hierarchy (or, for compute-bound benchmarks such as N-Queens, increasing search depth) rather than an arbitrary scaling of input size.

On AMD, the comparison favours HIP: hipcc builds the suite’s HIP port, which was optimised by hand for AMD GPUs, while SCALE compiles the original CUDA code, unmodified. On NVIDIA, SCALE and nvcc compile the same CUDA code.

AMD Instinct MI355X: SCALE 1.7.4 against hipcc using ROCm 7.14, collected 27 October 2026.

NVIDIA B300: SCALE 1.7.3 against nvcc using CUDA 13.2, collected 14 September 2026.