AADC Toolkit FAQ
What is the AADC Toolkit?
The AADC Toolkit is a quantitative development suite built on MatLogica's proprietary JIT graph compiler. It delivers 6-1000x speedups and automatic derivatives with less than 1% code changes. The toolkit includes six core components: AADC Engine (JIT compiler), Integration Scripts, Debugging Toolkit, Branch Manager, AIFT Solver, and Reference Implementations.
How does AADC achieve adjoint factor less than 1?
AADC uses Code Generation AAD technology with a proprietary JIT compiler (not LLVM) that compiles computational graphs to highly optimised machine code with automatic vectorisation (AVX2/AVX512) and multi-threading. This means computing your function plus all derivatives is actually faster than your original code computing just the function alone. Typical adjoint factors range from 0.3-0.8.
What is the AIFT Solver?
The AIFT (Automated Implicit Function Theorem) Solver enables derivatives through optimisation and calibration without code refactoring. It was #1 most-read on Risk.NET for over a quarter and is a key technique for Live Risk implementations. It allows AAD to work through iterative solvers and calibration routines automatically.
What debugging capabilities does AADC provide?
AADC includes a debugging toolkit with a reverse debugger that can compare kernel values against original code, monitor adjoint propagation, detect numerical discrepancies, troubleshoot bump & revalue issues, and track intermediate variables throughout the calculation graph.
How does the Branch Manager handle discontinuous payoffs?
The Branch Manager handles if-statements and discontinuous payoffs (barriers, autocallables) through two mechanisms: static branches are hard-coded into the kernel at compile time, while dynamic branches use bool to ibool conversion for runtime flexibility. It includes automated conversion reports and smooth approximation options for discontinuous payoffs.
What reference implementations are available?
AADC provides open-source reference implementations on GitHub including Phoenix autocallables with full AAD, XVA frameworks, American Monte Carlo using Longstaff-Schwartz, and Python DSL for rapid prototyping. These serve as production-ready blueprints for common quantitative finance applications.
What programming languages does AADC support?
AADC provides full support for C++ and Python, with C# also supported. Java support is currently in progress. The mix-mode execution feature allows unified integration of C++, Python, and C# within a single kernel.
What hardware does AADC support?
AADC runs on Intel and AMD CPUs with automatic vectorisation for AVX2 and AVX512 instruction sets. GPU support is on the product roadmap. The JIT compiler automatically optimises code for available hardware capabilities.
How is AADC licensed?
AADC offers flexible licensing: Enterprise licences for organisation-wide deployment with full support and integration consulting, and Desk/Machine-Bound licences for individual development and prototyping. Free demo licences are available for evaluation, and academic licences for educational institutions.