AAD benchmarks
XAD against CppAD, Adept and autodiff on four finance workloads, with the same code, inputs and machine for every tool and every gradient checked. XAD is the fastest on all four on its own, and further ahead with code generation.
All sensitivities, counted in valuations
Time for the value and every sensitivity, as a multiple of one plain valuation. With code generation, every sensitivity together costs less than one valuation; bumping needs two valuations per input plus one. Log scale.
Time per gradient
Median time for the value and all sensitivities, one thread. The fastest gradient per workload in bold.
| Workload | Sensitivities | One valuation | XAD, code generation | XAD, tape | Adept | CppAD | autodiff | Bumping, estimated |
|---|---|---|---|---|---|---|---|---|
| Swaption portfolio, LMM | 159 | 81.4 ms | 73.2 ms | 313 ms | 356 ms | 1.11 s | 28.7 s | 26.0 s |
| Heston Monte Carlo, 10,000 paths | 7 | 11.8 ms | 4.39 ms | 27.2 ms | 40.5 ms | 98.8 ms | 88.5 ms | 177 ms |
| CVA on a swap portfolio | 39 | 2.08 ms | 753 µs | 12.8 ms | 21.3 ms | 18.1 ms | 112 ms | 164 ms |
| SABR calibration, Jacobian | 1,500 | 1.46 µs | 1.33 µs | 5.33 µs (forward mode) | 22.0 µs | 25.4 µs | 33.7 µs | 45.3 µs |
With code generation, the gradients take less time than bumping by a factor of about 355, 40, 218 and 34, and on all four workloads less time than one plain valuation.
Measured 10 November 2026 on an AMD EPYC (Zen 5), one pinned core, GCC 15.2, Linux. XAD v2.2.0, and XAD with its code generation add-on (vectorised); Adept 2.1.3, CppAD 20250000.2, autodiff 1.1.2 (forward mode). Every tool's gradient matches XAD's to within 1e-10 relative; XAD is also checked against finite differences. XAD code generation evaluates vectorised across paths; it records and compiles once, in untimed set-up like CppAD's tape, so that one-off time is not in the timings. Bumping is estimated as central differences, two valuations per input plus one, not measured. Source, method and raw results: github.com/auto-differentiation/ad-benchmarks. Results will be updated with each XAD release.