MatLogica AADC delivers 444× faster performance than Basic Python and 4.6× faster Greeks than hand-optimised C++ — while requiring minimal code changes.

For computationally-heavy workloads (which is most of quant finance), AADC delivers superior performance with dramatically less complexity. No low-level expertise needed — AADC handles optimisations and computation of derivatives (AAD) automatically.

1.5×
Faster Greeks than hand-optimised C++
234s
vs 342s hand-tuned
44×
Faster Greeks than NumPy
+31%
Greeks overhead (vs 593%)

AADC Breaks the Trade-off

Traditionally, you choose productivity OR performance. AADC gives you both—and more.

Developer Productivity vs Runtime Performance

Asian Option Monte Carlo - 1000 trades × 500K scenarios - Price + Greeks

Developer Productivity
AVX2
C++ Optimised
342s - 1219 lines
Basic
Basic Python
~18hrs - 739 lines
AADC
AADC Python
234s - 980 lines
Runtime Performance

Three Approaches to Monte Carlo Pricing

1,000 trades × 500K scenarios × 252 timesteps — Price + Greeks

Level 1

Basic Python

Simple but cannot scale

~18hrs* execution time
739 total lines
+302% Greeks overhead
  • Simple, readable Python code
  • Bump & revalue for Greeks (4×)
  • No vectorization
Level 2

C++ Optimised

Fast but complex

342s execution time
1219 total lines
+593% Greeks overhead
  • Manual AVX2 SIMD intrinsics
  • Bump & revalue for Greeks (7×)
  • Weeks of expert work

Greeks: Where AADC Shines

AAD vs traditional bump-and-revalue — Risk calculations require Greeks (Delta, Rho, Vega)

Traditional Method

Bump & Revalue

Requires 4-7 full pricings per trade for Delta, Rho, Vega sensitivities.

Basic Python
+302%
C++ Optimised
+593%
C++ with 1000 trades: 342 seconds
vs

AADC Method

Adjoint Differentiation

Requires just 1 forward + 1 adjoint pass — all Greeks in one sweep.

AADC Python
+31%
AADC with 1000 trades: 75 seconds
4.6× faster than C++

The Same Logic, Three Ways

AADC code is nearly identical to Basic Python (~37 lines added), yet runs 444× faster and delivers 4.6× faster Greeks than hand-optimised C++.

Basic Python → AADC Python +37 lines
# AADC Python - Key additions only
import aadc

# 1. Create active variables
S0_v = aadc.idouble(S0)
S0_arg = S0_v.mark_as_input()

# 2. Record computation graph
funcs = aadc.Functions()
funcs.start_recording()
# ... your existing Python code ...
payoff_res = discounted_payoff.mark_as_output()
funcs.stop_recording()

# 3. Evaluate with automatic Greeks
request = {payoff_res: [S0_arg, r_arg, sigma_arg]}
results = aadc.evaluate(funcs, request, inputs, workers)

# Greeks from single adjoint pass - NO extra pricings!
delta = results[1][payoff_res][S0_arg]
rho = results[1][payoff_res][r_arg]
vega = results[1][payoff_res][sigma_arg]

Greeks via AAD: 1 forward + 1 adjoint pass — +31% overhead vs +593% for bump-and-revalue.

How It Works

From specification to production benchmark in hours

1

Your Model

Use your model or a model developed by AI with your specification. If using AI, be sure to define all parameters, constraints, do's and don'ts.

2

Enable AADC

The AADC-Agent converts your model (Python or C++) to AADC-enabled versions. Works like any Claude task—ask it to fix issues. Choose your language and hardware.

3

Benchmark & Deploy

Get your benchmark in hours, not weeks. See exactly how AADC performs. If AI can't help, MatLogica is always there for expert support.

We don't advise developing quant models using AI, but it's a good way to get started prototyping with AADC.

We don't suggest using AI for production integrations. MatLogica's integration/debugging toolkit should be used for production integrations.

Hardware Specification

Benchmarks executed on enterprise-grade server hardware

System Configuration

CPU2× Intel Xeon Platinum 8280L @ 2.70GHz
Cores56 physical (28 per socket), 112 threads
Architecturex86_64, Cascade Lake
L3 Cache77 MiB (38.5 MiB per socket)
RAM283 GB
OSLinux kernel 6.1.0-13-amd64 (Debian 64-bit)

CPU Features: AVX-512, AVX2, FMA, AES-NI

Test Configuration

Trades1,000
Scenarios500,000
Timesteps252
Threads16
Total Paths500M

Asian Option Monte Carlo with GBM dynamics

Compilers

GCC12.2.0 (Debian)
Clang14.0.6 (Debian)
Python3.11.2 + AADC

Dual-socket server with AVX-512 vectorization

Ready to Try It Yourself?

All benchmarks are transparent, reproducible, and verifiable. Run the code yourself and confirm the results.

Interested in these opportunities?

Let's arrange a free demo for you and your team.

Book a Demo