Choosing Floating- or Double-Precision for Option Pricing
Summary
The document considers whether single precision is adequate for option pricing and related calculations, including Black–Scholes pricing, implied volatility solved by Newton–Raphson, and volatility smile fitting with Levenberg–Marquardt. It frames the decision as a tradeoff between faster computation on some GPUs and the risks of reduced numerical precision.
The answer highlights three practical concerns: rounding can affect option values after scaling by a large notional, iterative solvers may become less stable, and results may not match common validation tools that use double precision. The discussion does not compare specific approximations for the cumulative normal distribution or provide measured performance or error bounds. Suitability therefore depends on the notional sizes, numerical stability requirements, and validation process of the system.
Key ideas
- Single precision may improve performance on some hardware, but its suitability depends on the application.
- Rounding differences in a basic Black–Scholes value can become more visible when multiplied by a large notional.
- Newton–Raphson and Levenberg–Marquardt calculations may be less stable at reduced precision.
- Precision differences from common tools such as spreadsheets can make independent validation harder.
Tags
Full text
# When pricing options, what precision should I work with? # When pricing options, what precision should I work with? I'm wondering if there's any point at all in double-precision calculations, or whether it's ok to just do everything in single-precision, seeing how the difference on non-Tesla GPUs for single and double-precision calculations appears to be large. Some of the operations where this is relevant are: - General option pricing (BS, uses numerical approximation of cumulative normal distribution) - Calculating implied volatility (Newton-Raphson) - Interpolating the volatility smile (Levenberg-Marquardt) In particular I'm interested in whether initial pricing is worth doing using a 'better' CND formula rather the one with just 5 constants in it... I know there are more precise ones with lots more constants, but I've been reticent to use one so far. ## Answer by Andrei (score 5, accepted) https://quant.stackexchange.com/a/3474 When you decide if the performance improvement is worth it you can add these to the downside ow using single precision: - the result of your basic B-S pricer will eventually need to be multiplied with a notional and maybe a discount factor; For a sufficiently large notional you will see different results than the one calculated using double precision. Is that kind of a notional likely to occur in practice in your system? - numerical stability. The straight-forward implementation of many algorithms (Newton-Raphson and probably Levenberg-Marquardt) may be unstable under the reduced precision of a single. Stable versions are slower and add complexity. - validation. Many people use Excel or other similar software to quickly test the final results of a complex calculation. Due to the difference in precision between that and your software the results will not match, leading to head-scratching and an impossibility of validating your results.
Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.