QuoteOriginally posted by: CuchulainnHi ashkar,Thank you for your kind offer. Let's do it!QuoteIn general what i saw was that simple implicit method which require solving a set of linear equations doesnt scale well on cuda (or any parallel proc env) for the problem sizes we face in option pricing. This is due to the elimination part which cannot be parallelised. for example, on a 16core old video card, for a BS const vol, implicit pde with regular mesh sizes, i see the following time-steps and spot-steps i see:Yes. ADI won't be much better I expect. It uses tridiagonal matrices at each ADI/Soviet Splitting leg. I heard GPU for ADI was even slower than sequential, which does not come as a huge surprise to be honest.The good news is that I now use ADE which needs NO matrix LU decomposition, just basic matrix manipulation. I suggest doing the port of this paper by Alan, Paul and myself in a Asian-style PDEhereThe code I have in C++ using Boost uBLAS matrix but this could be replaced by your favourite CUDA matrix. So there is code results in both C++ and Mathematica to compare with; it is a baseline reference case. Hotspots are 1) logistic vol function takes 75% of computation in CPU, 2) computing the volatility surface, we could do on GPU?I don't mind testing it for you
I've been thinking of revisiting tridiag solver type issue again myself since I bought a new cuda card and apparently the back substitution stage should be more efficient on this card partly due to new library version too. I have a parametric vol surface implementation which I fit to market data in advance. Then during computation (for example in local vol) I can compute the parametric vols on the gpu. the simpler the vol function the better since only around 20% of cuda cores can compute special functions like exp, log, sin while other cores queue up so efficiency goes down.Is boost matrix stored as a C array in memory? Either way I can adapt the code. How do you want to send it? I had a brief look at the paper - the sde part. Still need to read the ADE section.